00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef _FLUNKIRP_H_
00025
#define _FLUNKIRP_H_
00026
00027
#ifndef NO_SPECIAL_IRP
00028
00029
00030
00031
00032 BOOLEAN
00033
IovpAssertIsNewRequest(
00034 IN
PIO_STACK_LOCATION IrpLastSp,
00035 IN
PIO_STACK_LOCATION IrpSp
00036 );
00037
00038
VOID
00039
IovpAssertNewIrps(
00040 IN
PIOV_REQUEST_PACKET IrpTrackingData,
00041 IN
PIO_STACK_LOCATION IrpSp,
00042 IN
PIOV_STACK_LOCATION StackLocationData
00043 );
00044
00045
VOID
00046
IovpAssertNewRequest(
00047 IN
PIOV_REQUEST_PACKET IrpTrackingData,
00048 IN
PDEVICE_OBJECT DeviceObject,
00049 IN
PIO_STACK_LOCATION IrpLastSp OPTIONAL,
00050 IN
PIO_STACK_LOCATION IrpSp,
00051 IN
PIOV_STACK_LOCATION StackLocationData
00052 );
00053
00054 BOOLEAN
00055
IovpAssertDoAdvanceStatus(
00056 IN
PIO_STACK_LOCATION IrpSp,
00057 IN NTSTATUS OriginalStatus,
00058 IN OUT NTSTATUS *StatusToAdvance
00059 );
00060
00061
VOID
00062
IovpAssertIrpStackDownward(
00063 IN
PIOV_REQUEST_PACKET IrpTrackingData,
00064 IN
PDEVICE_OBJECT DeviceObject,
00065 IN
PIO_STACK_LOCATION IrpLastSp,
00066 IN
PIO_STACK_LOCATION IrpSp,
00067 IN
PIOV_STACK_LOCATION StackLocationData
00068 );
00069
00070
VOID
00071
IovpAssertIrpStackUpward(
00072 IN
PIOV_REQUEST_PACKET IrpTrackingData,
00073 IN
PIO_STACK_LOCATION IrpSp,
00074 IN
PIOV_STACK_LOCATION StackLocationData,
00075 IN BOOLEAN IsNewlyCompleted,
00076 IN BOOLEAN RequestFinalized
00077 );
00078
00079
VOID
00080
IovpAssertFinalIrpStack(
00081 IN
PIOV_REQUEST_PACKET IrpTrackingData,
00082 IN
PIO_STACK_LOCATION IrpSp
00083 );
00084
00085 BOOLEAN
00086
IovpAssertIsValidIrpStatus(
00087 IN
PIO_STACK_LOCATION IrpSp,
00088 IN NTSTATUS Status
00089 );
00090
00091
VOID
00092
IovpThrowChaffAtStartedPdoStack(
00093 IN
PDEVICE_OBJECT DeviceObject
00094 );
00095
00096
NTSTATUS
00097
IovpThrowBogusSynchronousIrp(
00098 IN
PDEVICE_OBJECT DeviceObject,
00099 IN
PIO_STACK_LOCATION TopStackLocation,
00100 IN OUT OPTIONAL ULONG_PTR Information,
00101 IN OUT ULONG_PTR *InformationOut OPTIONAL,
00102 IN BOOLEAN IsBogus
00103 );
00104
00105 LONG
00106
IovpStartObRefMonitoring(
00107 IN
PDEVICE_OBJECT DeviceObject
00108 );
00109
00110 LONG
00111
IovpStopObRefMonitoring(
00112 IN
PDEVICE_OBJECT DeviceObject,
00113 IN LONG StartSkew
00114 );
00115
00116 BOOLEAN
00117
IovpIsSystemRestrictedIrp(
00118
PIO_STACK_LOCATION IrpSp
00119 );
00120
00121
#endif // NO_SPECIAL_IRP
00122
00123
#endif // _FLUNKIRP_H_
00124