00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#include "ioassert.h"
00024
#include "trackirp.h"
00025
#include "flunkirp.h"
00026
#include "hashirp.h"
00027
#include "sessnirp.h"
00028
00029
#ifndef _IOVERIFIER_H_
00030
#define _IOVERIFIER_H_
00031
00032 typedef struct _IOV_INIT_DATA {
00033
00034 ULONG
InitFlags;
00035 ULONG
VerifierFlags;
00036
00037 }
IOV_INIT_DATA, *
PIOV_INIT_DATA;
00038
00039 #define IOVP_COMPLETE_REQUEST(Apc,Sa1,Sa2) \
00040
{ \
00041
if (IopVerifierOn) \
00042
IovpCompleteRequest((Apc), (Sa1), (Sa2)); \
00043
}
00044
00045 #define IOV_INITIALIZE_IRP(Irp, PacketSize, StackSize) \
00046
{ \
00047
if (IopVerifierOn) \
00048
IovInitializeIrp((Irp), (PacketSize), (StackSize)); \
00049
}
00050
00051 #define IOV_DELETE_DEVICE(DeviceObject) \
00052
{ \
00053
if (IopVerifierOn) \
00054
IovDeleteDevice(DeviceObject); \
00055
}
00056
00057 #define IOV_DETACH_DEVICE(DeviceObject) \
00058
{ \
00059
if (IopVerifierOn) \
00060
IovDetachDevice(DeviceObject); \
00061
}
00062
00063 #define IOV_ATTACH_DEVICE_TO_DEVICE_STACK(SourceDeviceObject, TargetDeviceObject) \
00064
{ \
00065
if (IopVerifierOn) \
00066
IovAttachDeviceToDeviceStack((SourceDeviceObject), (TargetDeviceObject)); \
00067
}
00068
00069 #define IOV_CANCEL_IRP(Irp, ReturnValue) \
00070
IovCancelIrp((Irp), (ReturnValue))
00071
00072
NTSTATUS
00073
FASTCALL
00074
IovSpecialIrpCallDriver(
00075 IN
PDEVICE_OBJECT DeviceObject,
00076 IN OUT
PIRP Irp
00077 );
00078
00079
00080
VOID
00081
FASTCALL
00082
IovSpecialIrpCompleteRequest(
00083 IN
PIRP Irp,
00084 IN CCHAR PriorityBoost
00085 );
00086
00087
VOID
00088
IovpSpecialIrpVerifierInitWorker(
00089 IN PVOID Parameter
00090 );
00091
00092
VOID
00093
IovpCompleteRequest(
00094 IN
PKAPC Apc,
00095 IN PVOID *SystemArgument1,
00096 IN PVOID *SystemArgument2
00097 );
00098
00099
VOID
00100
IovInitializeIrp(
00101
PIRP Irp,
00102 USHORT PacketSize,
00103 CCHAR StackSize
00104 );
00105
00106
VOID
00107
IovAttachDeviceToDeviceStack(
00108
PDEVICE_OBJECT SourceDevice,
00109
PDEVICE_OBJECT TargetDevice
00110 );
00111
00112
VOID
00113
IovDeleteDevice(
00114
PDEVICE_OBJECT DeleteDevice
00115 );
00116
00117
VOID
00118
IovDetachDevice(
00119
PDEVICE_OBJECT TargetDevice
00120 );
00121
00122 BOOLEAN
00123
IovCancelIrp(
00124
PIRP Irp,
00125 BOOLEAN *returnValue
00126 );
00127
00128
#endif // _IOVERIFIER_H_