#include "iop.h"Go to the source code of this file.
Defines | |
| #define | IO_FREE_IRP_TYPE_INVALID 1 |
| #define | IO_FREE_IRP_NOT_ASSOCIATED_WITH_THREAD 2 |
| #define | IO_CALL_DRIVER_IRP_TYPE_INVALID 3 |
| #define | IO_CALL_DRIVER_INVALID_DEVICE_OBJECT 4 |
| #define | IO_CALL_DRIVER_IRQL_NOT_EQUAL 5 |
| #define | IO_COMPLETE_REQUEST_INVALID_STATUS 6 |
| #define | IO_COMPLETE_REQUEST_CANCEL_ROUTINE_SET 7 |
| #define | IO_BUILD_FSD_REQUEST_EXCEPTION 8 |
| #define | IO_BUILD_IOCTL_REQUEST_EXCEPTION 9 |
| #define | IO_REINITIALIZING_TIMER_OBJECT 10 |
| #define | IO_INVALID_HANDLE 11 |
| #define | IO_INVALID_STACK_IOSB 12 |
| #define | IO_INVALID_STACK_EVENT 13 |
| #define | IO_COMPLETE_REQUEST_INVALID_IRQL 14 |
| #define | IsKernelHandle(H, M) (((LONG_PTR)(H) < 0) && ((M) == KernelMode) && ((H) != NtCurrentThread()) && ((H) != NtCurrentProcess())) |
| #define | ZeroAndDopeIrpStackLocation(IrpSp) |
Functions | |
| PVOID | VerifierAllocatePoolWithQuotaTag (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag) |
| BOOLEAN | IovpValidateDeviceObject (IN PDEVICE_OBJECT DeviceObject) |
| VOID | IovFreeIrpPrivate (IN PIRP Irp) |
| VOID | IoVerifierInit (IN ULONG VerifierFlags, IN ULONG InitFlags) |
| VOID | IovFreeIrp (IN PIRP Irp) |
| NTSTATUS FASTCALL | IovCallDriver (IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp) |
| VOID FASTCALL | IovCompleteRequest (IN PIRP Irp, IN CCHAR PriorityBoost) |
| PIRP | IovAllocateIrp (IN CCHAR StackSize, IN BOOLEAN ChargeQuota) |
| PIRP | IovBuildAsynchronousFsdRequest (IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID Buffer OPTIONAL, IN ULONG Length OPTIONAL, IN PLARGE_INTEGER StartingOffset OPTIONAL, IN PIO_STATUS_BLOCK IoStatusBlock OPTIONAL) |
| PIRP | IovBuildDeviceIoControlRequest (IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, OUT PIO_STATUS_BLOCK IoStatusBlock) |
| NTSTATUS | IovInitializeTimer (IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context) |
| VOID | IovpCompleteRequest (IN PKAPC Apc, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2) |
| VOID FASTCALL | IovSpecialIrpCompleteRequest (IN PIRP Irp, IN CCHAR PriorityBoost) |
| NTSTATUS FASTCALL | IovSpecialIrpCallDriver (IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp) |
| VOID | IovInitializeIrp (PIRP Irp, USHORT PacketSize, CCHAR StackSize) |
| VOID | IovAttachDeviceToDeviceStack (PDEVICE_OBJECT SourceDevice, PDEVICE_OBJECT TargetDevice) |
| VOID | IovDeleteDevice (PDEVICE_OBJECT DeleteDevice) |
| VOID | IovDetachDevice (PDEVICE_OBJECT TargetDevice) |
| BOOLEAN | IovCancelIrp (PIRP Irp, BOOLEAN *returnValue) |
Variables | |
| BOOLEAN | IopVerifierOn = FALSE |
| ULONG | IovpEnforcementLevel = (ULONG) -1 |
| ULONG | IovpVerifierLevel = (ULONG)0 |
| BOOLEAN | IoVerifierOnByDefault = TRUE |
| LONG | IovpInitCalled = 0 |
| ULONG | IovpMaxSupportedVerifierLevel = 3 |
| ULONG | IovpVerifierFlags = 0 |
|
|
Definition at line 38 of file ioverifier.c. Referenced by IovBuildAsynchronousFsdRequest(). |
|
|
Definition at line 39 of file ioverifier.c. Referenced by IovBuildDeviceIoControlRequest(). |
|
|
Definition at line 34 of file ioverifier.c. Referenced by IovCallDriver(), and IovSpecialIrpCallDriver(). |
|
|
Definition at line 33 of file ioverifier.c. Referenced by IovCallDriver(), and IovSpecialIrpCallDriver(). |
|
|
Definition at line 35 of file ioverifier.c. Referenced by IovCallDriver(), and IovSpecialIrpCallDriver(). |
|
|
Definition at line 37 of file ioverifier.c. Referenced by IovCompleteRequest(). |
|
|
Definition at line 44 of file ioverifier.c. Referenced by IovCompleteRequest(). |
|
|
Definition at line 36 of file ioverifier.c. Referenced by IovCompleteRequest(). |
|
|
Definition at line 32 of file ioverifier.c. Referenced by IovFreeIrpPrivate(). |
|
|
Definition at line 31 of file ioverifier.c. Referenced by IovFreeIrpPrivate(). |
|
|
Definition at line 41 of file ioverifier.c. |
|
|
Definition at line 43 of file ioverifier.c. Referenced by IovpCompleteRequest(). |
|
|
Definition at line 42 of file ioverifier.c. Referenced by IovpCompleteRequest(). |
|
|
Definition at line 40 of file ioverifier.c. Referenced by IovInitializeTimer(). |
|
|
Definition at line 57 of file ioverifier.c. Referenced by NtClose(), NtSetInformationObject(), NtWaitForMultipleObjects(), and ObReferenceObjectByHandle(). |
|
|
Value:
Referenced by IovSpecialIrpCompleteRequest(). |
|
||||||||||||
|
Definition at line 353 of file ioverifier.c. References _IRP::AllocationFlags, ExAllocatePoolWithTagPriority(), EXCEPTION_EXECUTE_HANDLER, HighPoolPrioritySpecialPoolOverrun, IopAllocateIrpPrivate(), IopInitializeIrp, IoSizeOfIrp, IovpVerifierFlags, IRP_ALLOCATED_MUST_SUCCEED, IRP_QUOTA_CHARGED, KernelMode, NonPagedPool, NonPagedPoolMustSucceed, NULL, SPECIALIRP_IO_ALLOCATE_IRP_1, SPECIALIRP_IO_ALLOCATE_IRP_2, and USHORT. Referenced by IoVerifierInit().
|
|
||||||||||||
|
Definition at line 1296 of file ioverifier.c. References IovpVerifierLevel, SPECIALIRP_IO_ATTACH_DEVICE_TO_DEVICE_STACK, and VOID().
|
|
||||||||||||||||||||||||||||
|
Definition at line 455 of file ioverifier.c. References Buffer, EXCEPTION_EXECUTE_HANDLER, IO_BUILD_FSD_REQUEST_EXCEPTION, IoBuildAsynchronousFsdRequest(), Irp, and KeBugCheckEx().
|
|
||||||||||||||||||||||||||||||||||||||||
|
Definition at line 486 of file ioverifier.c. References Event(), EXCEPTION_EXECUTE_HANDLER, IO_BUILD_IOCTL_REQUEST_EXCEPTION, IoBuildDeviceIoControlRequest(), Irp, and KeBugCheckEx().
|
|
||||||||||||
|
Definition at line 248 of file ioverifier.c. References IO_CALL_DRIVER_INVALID_DEVICE_OBJECT, IO_CALL_DRIVER_IRP_TYPE_INVALID, IO_CALL_DRIVER_IRQL_NOT_EQUAL, IO_TYPE_IRP, IopfCallDriver(), IopVerifierOn, IovpValidateDeviceObject(), IovpVerifierLevel, IovSpecialIrpCallDriver(), Irp, KeBugCheckEx(), NTSTATUS(), and _IRP::Type.
|
|
||||||||||||
|
Definition at line 1332 of file ioverifier.c. References FALSE, Irp, SPECIALIRP_IO_CANCEL_IRP, and TRUE.
|
|
||||||||||||
|
Definition at line 297 of file ioverifier.c. References _IRP::CancelRoutine, _IRP::CurrentLocation, DISPATCH_LEVEL, IO_COMPLETE_REQUEST_CANCEL_ROUTINE_SET, IO_COMPLETE_REQUEST_INVALID_IRQL, IO_COMPLETE_REQUEST_INVALID_STATUS, IO_TYPE_IRP, IopfCompleteRequest(), IopVerifierOn, _IRP::IoStatus, IovpVerifierLevel, IovSpecialIrpCompleteRequest(), Irp, KeBugCheckEx(), PriorityBoost, _IRP::StackCount, and _IRP::Type.
|
|
|
Definition at line 1309 of file ioverifier.c. References IovpVerifierLevel, SPECIALIRP_IO_DELETE_DEVICE, and VOID().
|
|
|
Definition at line 1321 of file ioverifier.c. References IovpVerifierLevel, SPECIALIRP_IO_DETACH_DEVICE, and VOID().
|
|
||||||||||||
|
Definition at line 91 of file ioverifier.c. References APC_LEVEL, ASSERT, DIAG_IGNORE_DRIVER_LIST, IopDcControlInitial, IopDcControlLock, IopDcControlOverride, IopDriverCorrectnessTakeLock(), IopVerifierOn, IovAllocateIrp(), IOVERIFIERINIT_PHASE0, IOVERIFIERINIT_VERIFIER_DRIVER_LIST, IoVerifierOnByDefault, IovFreeIrpPrivate(), IovpInitCalled, IovpInitIrpTracking(), IovpMaxSupportedVerifierLevel, IovpVerifierFlags, IovpVerifierLevel, IovSpecialIrpCallDriver(), IovSpecialIrpCompleteRequest(), KeInitializeSpinLock(), pIoAllocateIrp, pIofCallDriver, pIofCompleteRequest, pIoFreeIrp, and TRUE. Referenced by IovpDoAssertIrps(), and MiInitializeDriverVerifierList().
|
|
|
Definition at line 198 of file ioverifier.c. References IovFreeIrpPrivate(), and Irp.
|
|
|
Definition at line 206 of file ioverifier.c. References IO_FREE_IRP_NOT_ASSOCIATED_WITH_THREAD, IO_FREE_IRP_TYPE_INVALID, IO_TYPE_IRP, IopFreeIrp(), IopVerifierOn, Irp, KeBugCheckEx(), SPECIALIRP_IO_FREE_IRP, and _IRP::Type. Referenced by IoVerifierInit(), and IovFreeIrp().
|
|
||||||||||||||||
|
Definition at line 1279 of file ioverifier.c. References IovpVerifierLevel, Irp, SPECIALIRP_IO_INITIALIZE_IRP, and VOID().
|
|
||||||||||||||||
|
Definition at line 524 of file ioverifier.c. References IO_REINITIALIZING_TIMER_OBJECT, IoInitializeTimer(), KeBugCheckEx(), and NTSTATUS().
|
|
||||||||||||||||
|
Definition at line 542 of file ioverifier.c. References IO_INVALID_STACK_EVENT, IO_INVALID_STACK_IOSB, KeBugCheckEx(), KeGetCurrentThread, _IRP::UserEvent, _IRP::UserIosb, and VOID().
|
|
|
Definition at line 184 of file ioverifier.c. References FALSE, IO_TYPE_DEVICE, NULL, and TRUE. Referenced by IovCallDriver(), and IovSpecialIrpCallDriver().
|
|
||||||||||||
|
Definition at line 1159 of file ioverifier.c. References ASSERT, _IRP::CurrentLocation, DbgPrint, _IO_STACK_LOCATION::DeviceObject, FASTCALL, IO_CALL_DRIVER_INVALID_DEVICE_OBJECT, IO_CALL_DRIVER_IRP_TYPE_INVALID, IO_CALL_DRIVER_IRQL_NOT_EQUAL, IO_TYPE_IRP, IOFCALLDRIVER_STACKDATA, IoGetNextIrpStackLocation, IopfCallDriver(), IopVerifierOn, IovpValidateDeviceObject(), Irp, KeBugCheckEx(), _DRIVER_OBJECT::MajorFunction, _IO_STACK_LOCATION::MajorFunction, NTSTATUS(), PDRIVER_DISPATCH, PERFINFO_DRIVER_MAJORFUNCTION_CALL, PERFINFO_DRIVER_MAJORFUNCTION_RETURN, SPECIALIRP_IOF_CALL_1, SPECIALIRP_IOF_CALL_2, _IRP::Tail, and _IRP::Type. Referenced by IovCallDriver(), and IoVerifierInit().
|
|
||||||||||||
|
Definition at line 586 of file ioverifier.c. References FASTCALL, NULL, SL_NOTCOPIED, and ZeroAndDopeIrpStackLocation. Referenced by IovCompleteRequest(), and IoVerifierInit().
|
|
||||||||||||||||
|
Definition at line 1059 of file verifier.c. References ExAllocatePoolWithQuotaTag, ExRaiseStatus(), FALSE, _MI_VERIFIER_DRIVER_ENTRY::Flags, HighPoolPriority, KernelVerifier, NULL, POOL_DRIVER_MASK, POOL_QUOTA_FAIL_INSTEAD_OF_RAISE, RtlGetCallersAddress(), TRUE, VeAllocatePoolWithTagPriority(), VI_VERIFYING_DIRECTLY, and ViLocateVerifierEntry().
|
|
|
Definition at line 82 of file ioverifier.c. Referenced by IoCancelIrp(), IovCallDriver(), IovCompleteRequest(), IoVerifierInit(), IovFreeIrpPrivate(), and IovSpecialIrpCallDriver(). |
|
|
Definition at line 85 of file ioverifier.c. Referenced by IoVerifierInit(). |
|
|
Definition at line 83 of file ioverifier.c. |
|
|
Definition at line 86 of file ioverifier.c. Referenced by IopDriverCorrectnessTakeLock(), and IoVerifierInit(). |
|
|
Definition at line 87 of file ioverifier.c. Referenced by IoVerifierInit(). |
|
|
Definition at line 88 of file ioverifier.c. Referenced by IovAllocateIrp(), and IoVerifierInit(). |
|
|
Definition at line 84 of file ioverifier.c. |
1.3.7