95{
101
102#if (FX_CORE_MODE == FX_CORE_USER_MODE)
103
104
105
106
107 (
static_cast<IWudfIoIrp2*
>(
Irp))->PrepareToForwardToSelf();
108
109#else
110
111
112
114
115
116
117
119#endif
120
122
123
124
125
127
131 "Send WDFIOTARGET %p, No Dispatch Queue Found for Major Function %d",
135 }
136
137
138
139
140
145 "Only Read/Write/Control/Internal-Control IRPs can be "
146 "forwarded to Self IO Target 0x%p, %!IRPMJ!, "
147 "IRP_MN %x, Device 0x%p, %!STATUS!",
152 }
153
154
155
156
158 queue->GetCxDeviceInfo());
159
160
161
162
163
164
166 return;
167
169
173
174 return;
175}
MdDeviceObject __inline GetDeviceObject(VOID)
__inline FxPackage * GetDispatchPackage(__in UCHAR MajorFunction)
FxIoQueue * GetDispatchQueue(_In_ UCHAR MajorFunction)
UCHAR GetMajorFunction(VOID)
VOID CompleteRequest(__in_opt CCHAR PriorityBoost=IO_NO_INCREMENT)
VOID SetNextIrpStackLocation(VOID)
VOID SetStatus(__in NTSTATUS Status)
VOID SetInformation(__in ULONG_PTR Information)
UCHAR GetMinorFunction(VOID)
VOID SetCurrentDeviceObject(__in MdDeviceObject DeviceObject)
PVOID __inline GetObjectHandle(VOID)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
__inline FxIoInCallerContext * GetIoInCallerContextCallback(__in_opt FxCxDeviceInfo *CxDeviceInfo)
_Must_inspect_result_ NTSTATUS __fastcall DispatchStep2(__inout MdIrp Irp, __in_opt FxIoInCallerContext *IoInCallerCtx, __in_opt FxIoQueue *Queue)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
return pObject GetObjectHandle()
FxIoInCallerContext * ioInCallerCtx
FxVerifierDbgBreakPoint(pFxDriverGlobals)
#define TRACE_LEVEL_ERROR
#define STATUS_INVALID_PARAMETER
#define STATUS_INVALID_DEVICE_STATE