220 event.GetSelfPointer(),
228 event.EnterCRAndWaitAndLeave();
311 return m_Irp->RequestorMode;
330 return m_Irp->Tail.Overlay.DriverContext[
Index];
408 return m_Irp->PendingReturned;
436 return m_Irp->IoStatus.Status;
470 return m_Irp->CancelIrql;
487 return m_Irp->IoStatus.Information;
495 return m_Irp->CurrentLocation;
503 return m_Irp->StackCount;
511 return &
m_Irp->Tail.Overlay.ListEntry;
519 return m_Irp->AssociatedIrp.SystemBuffer;
549 return m_Irp->MdlAddress;
557 return &
m_Irp->MdlAddress;
575 return m_Irp->UserBuffer;
1151 srcStack =
Irp->GetCurrentIrpStackLocation();
1154 *destStack = *srcStack;
1245 return m_Irp->Tail.Overlay.Thread;
1257#if BUILD_WOW64_ENABLED
1259 return IoIs32bitProcess(
m_Irp);
1290 return &
m_Irp->IoStatus;
1299 return m_Irp->Tail.Overlay.DriverContext;
1308 return sizeof(
m_Irp->Tail.Overlay.DriverContext);
1330 sizeof(*StatusBlock));
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
UCHAR GetMajorFunction(VOID)
ULONG GetParameterWriteLength(VOID)
MdEThread GetThread(VOID)
POWER_ACTION GetParameterPowerShutdownType()
PDEVICE_CAPABILITIES GetParameterDeviceCapabilities()
DEVICE_RELATION_TYPE GetParameterQDRType()
SYSTEM_POWER_STATE_CONTEXT GetParameterPowerSystemPowerStateContext()
VOID CompleteRequest(__in_opt CCHAR PriorityBoost=IO_NO_INCREMENT)
MdDeviceObject GetDeviceObject(VOID)
VOID InitNextStackUsingStack(__in FxIrp *Irp)
VOID SetParameterUsageNotificationInPath(__in BOOLEAN InPath)
MdCancelRoutine SetCancelRoutine(__in_opt MdCancelRoutine CancelRoutine)
VOID SetParameterQueryInterfaceSize(__in USHORT Size)
PCM_RESOURCE_LIST GetParameterAllocatedResources()
LCID GetParameterQueryDeviceTextLocaleId()
UCHAR GetCurrentStackFlags(VOID)
DEVICE_TEXT_TYPE GetParameterQueryDeviceTextType()
BOOLEAN GetParameterUsageNotificationInPath()
PVOID * GetNextStackParameterOthersArgument2Pointer()
CHECK_RETURN_IF_USER_MODE NTSTATUS SendIrpSynchronously(__in MdDeviceObject DeviceObject)
ULONG GetParameterIoctlCodeBufferMethod(VOID)
VOID SetMinorFunction(__in UCHAR MinorFunction)
PVOID * GetNextStackParameterOthersArgument4Pointer()
PMDL * GetMdlAddressPointer()
ULONG GetParameterIoctlCode(VOID)
VOID SetSystemBuffer(__in PVOID Value)
static _Must_inspect_result_ MdIrp AllocateIrp(_In_ CCHAR StackSize, _In_opt_ FxDevice *Device=NULL)
VOID ClearNextStack(VOID)
VOID SetCompletionRoutineEx(__in MdDeviceObject DeviceObject, __in MdCompletionRoutine CompletionRoutine, __in PVOID Context, __in BOOLEAN InvokeOnSuccess=TRUE, __in BOOLEAN InvokeOnError=TRUE, __in BOOLEAN InvokeOnCancel=TRUE)
KPROCESSOR_MODE GetRequestorMode(VOID)
BOOLEAN PendingReturned()
VOID SetParameterQueryInterfaceType(__in const GUID *InterfaceType)
CCHAR GetCurrentIrpStackLocationIndex()
VOID SetCancel(__in BOOLEAN Cancel)
MdCompletionRoutine GetNextCompletionRoutine(VOID)
VOID SetMajorFunction(__in UCHAR MajorFunction)
VOID SetParameterIoctlCode(__in ULONG DeviceIoControlCode)
ULONG GetParameterIoctlOutputBufferLength(VOID)
POWER_STATE_TYPE GetParameterPowerType()
BOOLEAN HasStack(_In_ UCHAR StackCount)
static PIO_STACK_LOCATION _GetAndClearNextStackLocation(__in MdIrp Irp)
MdFileObject GetCurrentStackFileObject(VOID)
BUS_QUERY_ID_TYPE GetParameterQueryIdType()
POWER_STATE GetParameterPowerState()
static NTSTATUS STDCALL _IrpSynchronousCompletion(__in MdDeviceObject DeviceObject, __in MdIrp OriginalIrp, __in PVOID Context)
VOID SetNextIrpStackLocation(VOID)
USHORT GetParameterQueryInterfaceSize()
MdFileObject GetFileObject(VOID)
USHORT GetParameterQueryInterfaceVersion()
VOID SetParameterQDRType(__in DEVICE_RELATION_TYPE DeviceRelation)
PCM_RESOURCE_LIST GetParameterAllocatedResourcesTranslated()
VOID SkipCurrentIrpStackLocation(VOID)
VOID SetNextStackFlags(__in UCHAR Flags)
PVOID GetParameterQueryInterfaceInterfaceSpecificData()
VOID PropagatePendingReturned(VOID)
VOID SetStatus(__in NTSTATUS Status)
SYSTEM_POWER_STATE GetParameterPowerStateSystemState()
VOID CopyToNextIrpStackLocation(__in PIO_STACK_LOCATION Stack)
const GUID * GetParameterQueryInterfaceType()
VOID SetNextParameterWriteLength(__in ULONG IoLength)
PVOID * GetNextStackParameterOthersArgument1Pointer()
VOID SetParameterAllocatedResourcesTranslated(__in PCM_RESOURCE_LIST AllocatedResourcesTranslated)
VOID SetParameterQueryInterfaceInterface(__in PINTERFACE Interface)
VOID SetNextStackFileObject(_In_ MdFileObject FileObject)
VOID SetParameterIoctlInputBufferLength(__in ULONG InputBufferLength)
VOID SetParameterQueryInterfaceInterfaceSpecificData(__in PVOID InterfaceSpecificData)
PINTERFACE GetParameterQueryInterfaceInterface()
DEVICE_POWER_STATE GetParameterPowerStateDeviceState()
VOID SetParameterIoctlType3InputBuffer(__in PVOID Type3InputBuffer)
PIO_STACK_LOCATION GetCurrentIrpStackLocation(VOID)
PVOID GetContext(__in ULONG Index)
ULONG GetDriverContextSize()
static MdIrp GetIrpFromListEntry(__in PLIST_ENTRY Ple)
BOOLEAN GetParameterSetLockLock()
VOID CopyCurrentIrpStackLocationToNext(VOID)
VOID CopyParameters(_Out_ PWDF_REQUEST_PARAMETERS Parameters)
ULONG GetCurrentFlags(VOID)
VOID SetInformation(__in ULONG_PTR Information)
PIO_STATUS_BLOCK GetStatusBlock(VOID)
PIO_STACK_LOCATION GetNextIrpStackLocation(VOID)
BOOLEAN IsCurrentIrpStackLocationValid(VOID)
VOID SetCompletionRoutine(__in MdCompletionRoutine CompletionRoutine, __in PVOID Context, __in BOOLEAN InvokeOnSuccess=TRUE, __in BOOLEAN InvokeOnError=TRUE, __in BOOLEAN InvokeOnCancel=TRUE)
VOID SetUserBuffer(__in PVOID Value)
PVOID GetCurrentParametersPointer(VOID)
NTSTATUS PoCallDriver(__in MdDeviceObject DeviceObject)
VOID SetParameterDeviceCapabilities(__in PDEVICE_CAPABILITIES DeviceCapabilities)
UCHAR GetMinorFunction(VOID)
VOID SetParameterIoctlOutputBufferLength(__in ULONG OutputBufferLength)
VOID SetParameterQueryInterfaceVersion(__in USHORT Version)
VOID SetContext(__in ULONG Index, __in PVOID Value)
ULONG GetParameterIoctlInputBufferLength(VOID)
PVOID GetParameterIoctlType3InputBuffer(VOID)
VOID ClearNextStackLocation(VOID)
VOID SetNextStackParameterOthersArgument1(__in PVOID Argument1)
VOID SetParameterAllocatedResources(__in PCM_RESOURCE_LIST AllocatedResources)
ULONG_PTR GetInformation()
VOID SetFlags(__in ULONG Flags)
NTSTATUS CallDriver(__in MdDeviceObject DeviceObject)
VOID SetCurrentDeviceObject(__in MdDeviceObject DeviceObject)
VOID CopyStatus(_Out_ PIO_STATUS_BLOCK StatusBlock)
VOID SetNextParameterWriteByteOffsetQuadPart(__in LONGLONG DeviceOffset)
ULONG GetParameterReadLength(VOID)
static _Must_inspect_result_ NTSTATUS RequestPowerIrp(__in MdDeviceObject DeviceObject, __in UCHAR MinorFunction, __in POWER_STATE PowerState, __in MdRequestPowerComplete CompletionFunction, __in PVOID Context)
LONGLONG GetParameterWriteByteOffsetQuadPart()
VOID Reuse(__in NTSTATUS Status=STATUS_SUCCESS)
BOOLEAN GetNextStackParameterUsageNotificationInPath()
DEVICE_USAGE_NOTIFICATION_TYPE GetParameterUsageNotificationType()
BOOLEAN Is32bitProcess(VOID)
VOID SetMdlAddress(__in PMDL Value)
_In_ PTRANSFER_PACKET _In_ ULONG _In_ PIRP OriginalIrp
#define NT_SUCCESS(StatCode)
IO_COMPLETION_ROUTINE MdCompletionRoutineType
VOID(* PFX_CANCEL_ROUTINE)(__in FxDevice *Device, __in FxIrp *Irp, __in PVOID CancelContext)
NTSTATUS(* PFX_COMPLETION_ROUTINE)(__in FxDevice *Device, __in FxIrp *Irp, __in PVOID Context)
REQUEST_POWER_COMPLETE MdRequestPowerCompleteType
DRIVER_CANCEL MdCancelRoutineType
REQUEST_POWER_COMPLETE * MdRequestPowerComplete
IO_COMPLETION_ROUTINE * MdCompletionRoutine
DRIVER_CANCEL * MdCancelRoutine
NTSTATUS NTAPI IoSetCompletionRoutineEx(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Context, IN BOOLEAN InvokeOnSuccess, IN BOOLEAN InvokeOnError, IN BOOLEAN InvokeOnCancel)
IoSetCancelRoutine(Irp, CancelRoutine)
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
PFILE_OBJECT MdFileObject
WUDF_DRIVER_CANCEL * MdCancelRoutine
REQUEST_POWER_COMPLETE * MdRequestPowerComplete
WUDF_IO_COMPLETION_ROUTINE * MdCompletionRoutine
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResourcesTranslated
#define _Must_inspect_result_
#define UNREFERENCED_PARAMETER(P)
#define IoSkipCurrentIrpStackLocation(Irp)
#define IoCopyCurrentIrpStackLocationToNext(Irp)
#define IoCompleteRequest
PIRP NTAPI IoAllocateIrp(IN CCHAR StackSize, IN BOOLEAN ChargeQuota)
VOID NTAPI IoReuseIrp(IN OUT PIRP Irp, IN NTSTATUS Status)
BOOLEAN NTAPI IoCancelIrp(IN PIRP Irp)
VOID NTAPI IoFreeIrp(IN PIRP Irp)
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
NTSTATUS NTAPI PoRequestPowerIrp(_In_ PDEVICE_OBJECT DeviceObject, _In_ UCHAR MinorFunction, _In_ POWER_STATE PowerState, _In_opt_ PREQUEST_POWER_COMPLETE CompletionFunction, _In_opt_ __drv_aliasesMem PVOID Context, _Outptr_opt_ PIRP *pIrp)
enum _POWER_STATE_TYPE POWER_STATE_TYPE
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
#define STATUS_MORE_PROCESSING_REQUIRED
PDEVICE_OBJECT DeviceObject
struct _IO_STACK_LOCATION::@1579::@1580 DeviceIoControl
struct _IO_STACK_LOCATION::@3978::@4017 Others
union _IO_STACK_LOCATION::@1579 Parameters
struct _IO_STACK_LOCATION::@3978::@4015 StartDevice
struct _IO_STACK_LOCATION::@3978::@4003 QueryDeviceRelations
struct _IO_STACK_LOCATION::@3978::@4004 QueryInterface
struct _IO_STACK_LOCATION::@3978::@3983 Write
struct _IO_STACK_LOCATION::@3978::@4010 QueryDeviceText
PIO_COMPLETION_ROUTINE CompletionRoutine
struct _IO_STACK_LOCATION::@3978::@4005 DeviceCapabilities
struct _IO_STACK_LOCATION::@3978::@4008 SetLock
struct _IO_STACK_LOCATION::@3978::@3982 Read
struct _IO_STACK_LOCATION::@3978::@4009 QueryId
struct _IO_STACK_LOCATION::@3978::@4011 UsageNotification
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define RtlMoveMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
_In_ UCHAR _In_ UCHAR MinorFunction
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG DeviceOffset
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
#define DeviceCapabilities
_Must_inspect_result_ _In_ ULONG Flags
_IRQL_requires_same_ _In_opt_ PVOID Argument1
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
_In_opt_ PDRIVER_CANCEL CancelRoutine
FORCEINLINE VOID IoSetNextIrpStackLocation(_Inout_ PIRP Irp)
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN InvokeOnError
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN InvokeOnCancel
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN InvokeOnSuccess
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
#define METHOD_FROM_CTL_CODE(ctrlCode)
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE
_In_ UCHAR _In_ POWER_STATE _In_opt_ PREQUEST_POWER_COMPLETE CompletionFunction