|
|
/*++
Copyright (c) 1998-2001 Microsoft Corporation
Module Name:
misc.c
Abstract:
User-mode interface to HTTP.SYS.
Author:
Keith Moore (keithmo) 15-Dec-1998
Revision History:
--*/
#include "precomp.h"
//
// Private macros.
//
//
// Private prototypes.
//
//
// Public functions.
//
/***************************************************************************++
Routine Description:
Performs global initialization.
Arguments:
Reserved - Must be zero. May be used in future for interface version negotiation.
Return Value:
ULONG - Completion status.
--***************************************************************************/ ULONG WINAPI HttpInitialize( IN ULONG Reserved ) { ULONG result;
if( Reserved == 0 ) { result = HttpApiInitializeEventCache(); } else { result = ERROR_INVALID_PARAMETER; }
return result;
} // HttpInitialize
/***************************************************************************++
Routine Description:
Performs global termination.
--***************************************************************************/ VOID WINAPI HttpTerminate( VOID ) { ULONG result;
result = HttpApiTerminateEventCache();
} // HttpTerminate
/***************************************************************************++
Routine Description:
Flushes the response cache.
Arguments:
AppPoolHandle - Supplies a handle to a application pool.
pFullyQualifiedUrl - Supplies the fully qualified URL to flush.
Flags - Supplies behavior control flags.
pOverlapped - Supplies an OVERLAPPED structure.
Return Value:
ULONG - Completion status.
--***************************************************************************/ ULONG WINAPI HttpFlushResponseCache( IN HANDLE AppPoolHandle, IN PCWSTR pFullyQualifiedUrl, IN ULONG Flags, IN LPOVERLAPPED pOverlapped ) { NTSTATUS status; HTTP_FLUSH_RESPONSE_CACHE_INFO flushInfo;
//
// Initialize the input structure.
//
RtlInitUnicodeString( &flushInfo.FullyQualifiedUrl, pFullyQualifiedUrl ); flushInfo.Flags = Flags;
//
// Make the request.
//
status = HttpApiDeviceControl( AppPoolHandle, // FileHandle
pOverlapped, // pOverlapped
IOCTL_HTTP_FLUSH_RESPONSE_CACHE, // IoControlCode
&flushInfo, // pInputBuffer
sizeof(flushInfo), // InputBufferLength
NULL, // pOutputBuffer
0, // OutputBufferLength
NULL // pBytesTransferred
);
return HttpApiNtStatusToWin32Status( status );
} // HttpFlushResponseCache
/***************************************************************************++
Routine Description:
Wait for a demand start notification.
Arguments:
AppPoolHandle - Supplies a handle to a application pool.
pBuffer - Unused, must be NULL.
BufferLength - Unused, must be zero.
pBytesReceived - Unused, must be NULL.
pOverlapped - Supplies an OVERLAPPED structure.
Return Value:
ULONG - Completion status.
--***************************************************************************/ ULONG WINAPI HttpWaitForDemandStart( IN HANDLE AppPoolHandle, IN OUT PVOID pBuffer OPTIONAL, IN ULONG BufferLength OPTIONAL, IN PULONG pBytesReceived OPTIONAL, IN LPOVERLAPPED pOverlapped OPTIONAL ) { NTSTATUS status;
//
// Make the request.
//
status = HttpApiDeviceControl( AppPoolHandle, // FileHandle
pOverlapped, // pOverlapped
IOCTL_HTTP_WAIT_FOR_DEMAND_START, // IoControlCode
pBuffer, // pInputBuffer
BufferLength, // InputBufferLength
pBuffer, // pOutputBuffer
BufferLength, // OutputBufferLength
pBytesReceived // pBytesTransferred
);
return HttpApiNtStatusToWin32Status( status );
} // HttpWaitForDemandStart
//
// Private functions.
//
|