/*++ Copyright (c) 1998-2002 Microsoft Corporation Module Name: ioctl.h Abstract: This module contains declarations for various IOCTL handlers. Author: Keith Moore (keithmo) 10-Jun-1998 Revision History: --*/ #ifndef _IOCTL_H_ #define _IOCTL_H_ NTSTATUS UlQueryControlChannelIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlSetControlChannelIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlCreateConfigGroupIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlDeleteConfigGroupIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlQueryConfigGroupIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlSetConfigGroupIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlAddUrlToConfigGroupIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlRemoveUrlFromConfigGroupIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlRemoveAllUrlsFromConfigGroupIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlQueryAppPoolInformationIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlSetAppPoolInformationIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlShutdownAppPoolIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlReceiveHttpRequestIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlReceiveEntityBodyIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlSendHttpResponseIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlSendEntityBodyIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlFlushResponseCacheIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlWaitForDemandStartIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlWaitForDisconnectIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlShutdownFilterIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlFilterAcceptIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlFilterCloseIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlFilterRawReadIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlFilterRawWriteIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlFilterAppReadIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlFilterAppWriteIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlReceiveClientCertIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlGetCountersIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlAddFragmentToCacheIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UlReadFragmentFromCacheIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); // Maximum number of chunks that we'll allow in a response, to prevent // carefully crafted arithmetic overflow errors fooling us into passing 0 // as the buffer length to ProbeForRead. #define UL_MAX_CHUNKS 10000 C_ASSERT(UL_MAX_CHUNKS < (LONG_MAX / sizeof(HTTP_DATA_CHUNK))); // Number of chunks to keep on the stack #define UL_LOCAL_CHUNKS 10 NTSTATUS UcSendRequestIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UcSendEntityBodyIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UcReceiveResponseIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UcSetServerContextInformationIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UcQueryServerContextInformationIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION pIrpSp ); NTSTATUS UcCancelRequestIoctl( IN PIRP pIrp, IN PIO_STACK_LOCATION IrpSp ); #endif // _IOCTL_H_