149 "Created WDFREQUEST %p, %!STATUS!",
237 "Irp %p RequestFreesIrp %d WDFREQUEST %p created",
246#define WDF_REQUEST_REUSE_VALID_FLAGS_V1_9 \
247 (WDF_REQUEST_REUSE_SET_NEW_IRP)
249#define WDF_REQUEST_REUSE_VALID_FLAGS \
250 (WDF_REQUEST_REUSE_SET_NEW_IRP | WDF_REQUEST_REUSE_MUST_COMPLETE)
304 "ReuseParams Size %d, expected %d %!STATUS!",
319 "ReuseParams Flags 0x%x, valid mask 0x%x, %!STATUS!",
433 "Completing WDFREQUEST 0x%p, %!STATUS!",
448WDFEXPORT(WdfRequestCompleteWithPriorityBoost)(
501 "Completing WDFREQUEST 0x%p, %!STATUS!",
517WDFEXPORT(WdfRequestCompleteWithInformation)(
569 "Completing WDFREQUEST 0x%p, %!STATUS!",
631 "Enter: WDFREQUEST 0x%p, Information 0x%p",
767 "Enter: WDFREQUEST 0x%p",
Request);
778 "This call is not valid on the Read request, you should call"
779 " WdfRequestRetrieveOutputMemory to get the Memory for WDFREQUEST "
798WDFEXPORT(WdfRequestRetrieveOutputMemory)(
881 "Enter: WDFREQUEST 0x%p",
Request);
894 "This call is not valid on the Write request, you should call"
895 " WdfRequestRetrieveInputMemory to get the Memory for WDFREQUEST "
1018 "Enter: WDFREQUEST 0x%p",
Request);
1029 "This call is not valid on the read request, you should call"
1030 " WdfRequestRetrieveOutputBuffer to get the buffer for WDFREQUEST "
1044 "WDFREQUEST 0x%p buffer size %I64d is less than RequiredLength "
1065WDFEXPORT(WdfRequestRetrieveOutputBuffer)(
1163 "Enter: WDFREQUEST 0x%p",
Request);
1176 "This call is not valid on write request, you should call"
1177 " WdfRequestRetrieveInputBuffer to get the buffer for WDFREQUEST "
1198 "WDFREQUEST 0x%p buffer size %I64d is less than RequiredLength "
1219WDFEXPORT(WdfRequestRetrieveUnsafeUserInputBuffer)(
1291 "Enter: WDREQUEST 0x%p",
Request);
1337 "This call is not valid on read request, you should call"
1338 " WdfRequestRetrieveUnsafeUserOutputBuffer to get the buffer for "
1349 "This call is not valid on internal-ioctl request, you should call"
1350 " safer WdfRequestRetrieveInputBuffer to get the buffer for "
1364 "WDFREQUEST %p buffer size %d is less than RequiredLength %I64d,"
1388 "WDFREQUEST 0x%p buffer size %d is less than RequiredLength "
1407 "Error: This call is valid only on method-neither "
1408 "ioctl and write WDFREQUEST %p, %!STATUS!",
1423WDFEXPORT(WdfRequestRetrieveUnsafeUserOutputBuffer)(
1522 "Enter: WDFREQUEST 0x%p",
pRequest);
1538 "This call is not valid on Write request, you should call"
1539 " WdfRequestRetrieveUnsafeUserInputBuffer to get the buffer for "
1551 "This call is not valid on an internal IOCTL request, you should call"
1552 " safer WdfRequestRetrieveOutputBuffer to get the buffer for "
1566 "WDFREQUEST 0x%p buffer size %d is less than RequiredLength "
1590 "WDFREQUEST 0x%p buffer size %d is less than RequiredLength "
1610 "Error: This call is valid only on method-neither ioctl and read "
1625WDFEXPORT(WdfRequestRetrieveInputWdmMdl)(
1699 "Enter: WDFREQUEST 0x%p",
Request);
1708 "This call is not valid on the Read request, you should call"
1709 " WdfRequestRetrieveOutputMdl to get the Mdl for WFDREQUEST 0x%p, "
1725WDFEXPORT(WdfRequestRetrieveOutputWdmMdl)(
1800 "Enter: WDFREQUEST 0x%p",
Request);
1810 "This call is not valid on the Write request, you should call"
1811 " WdfRequestRetrieveInputMemory to get the Memory for WDFREQUEST 0x%p, "
1858#define GLOBALS_ACTION(globals) ((ULONG)(ULONG_PTR)(globals))
1859#define PGLOBALS_ACTION(globals) ((PULONG)(PULONG_PTR)(globals))
1861#define GLOBALS_DEVICE(globals) ((FxDevice*)(ULONG_PTR)(globals))
1862#define PGLOBALS_DEVICE(globals) ((FxDevice**)(PULONG_PTR)(globals))
1864#define WDFREQUEST_FXREQUEST(handle) ((FxRequest*)(handle))
1865#define WDFIOTARGET_FXIOTARGET(handle) ((FxIoTarget*)(handle))
1965 "WDFREQUEST %p must be a WDFQUEUE presented request",
1981 "Cannot send-and-forget WDFREQUEST 0x%p with formatted IO"
1982 " context, %!STATUS!",
2033 "WDFREQUEST %p is a WDFQUEUE presented request with no"
2034 " completion routine, %!STATUS!",
2052 "Enter: WDFIOTARGET %p, WDFREQUEST %p",
2100 "Sending FxRequest %p (WDFREQUEST %p), Irp %p",
2184 "Enter: WDFREQUEST %p to be cancelled",
Request);
2235 "Enter: WDFREQUEST %p is from 32 bit process = %d",
2246WDFEXPORT(WdfRequestFormatRequestUsingCurrentType)(
2282 "Enter: WDFREQUEST %p",
Request);
2317WDFEXPORT(WdfRequestWdmFormatUsingStackLocation)(
2363 "Enter: WDFREQUEST %p",
Request);
2398WDFEXPORT(WdfRequestSetCompletionRoutine)(
2424 "Enter: WDFREQUEST %p, Routine %p, Context %p",
2467 "Params size %d incorrect, expected %d",
2487WDFEXPORT(WdfRequestGetCompletionParams)(
2518 "Params Size 0x%x, expected 0x%x",
2578 "Enter: WDFREQUEST 0x%p",
Request);
2585 "WDFREQUEST is already completed 0x%p, %!STATUS!",
2685 "Enter: WDFREQUEST 0x%p",
Request);
2703 "GetFileobject failed with %!STATUS!",
status);
2722WDFEXPORT(WdfRequestProbeAndLockUserBufferForRead)(
2790 "Enter: WDFREQUEST 0x%p",
Request);
2810 "ProbeAndLockForRead failed with %!STATUS!",
status);
2824WDFEXPORT(WdfRequestProbeAndLockUserBufferForWrite)(
2891 "Enter: WDFREQUEST 0x%p",
Request);
2910 "ProbeAndLockForWrite failed with %!STATUS!",
status);
3006 "Enter: WDFREQUEST 0x%p",
Request);
3028 "WDFREQUEST %p doesn't belong to any queue",
3043 "Getting queue handle for Create request is "
3044 "not allowed for WDFREQUEST 0x%p",
pRequest);
3069 FxDriverGlobals->IsVersionGreaterThanOrEqualTo(1,11) ==
FALSE) {
3072 "WDFREQUEST %p doesn't belong to any queue, %!STATUS!",
3081 status =
request->VerifyRequestCanBeCompleted(FxDriverGlobals);
3205 "WDFREQUEST %p doesn't belong to any queue, %!STATUS!",
3229 "IRP %p of WDFREQUEST %p doesn't enough stack "
3230 "locations, %!STATUS!",
3244WDFEXPORT(WdfRequestForwardToParentDeviceIoQueue)(
3320 "ForwardOptions %p Size incorrect, expected %d, "
3321 "got %d, %!STATUS!",
3335 "ForwardOptions %p Flags 0x%x invalid, "
3336 "valid mask is 0x%x, %!STATUS!",
3348 status =
request->GetCurrentQueue()->ForwardRequestToParent(
3415 "Enter: WDFREQUEST 0x%p",
Request);
3424 "WDFREQUEST %p doesn't belong to any queue %!STATUS!",
3482 "Enter: WDFREQUEST 0x%p",
Request);
3487 "WDFREQUEST %p doesn't belong to any queue",
3556 "Enter: WDFREQUEST 0x%p",
Request);
3561 "WDFREQUEST %p doesn't belong to any queue %!STATUS!",
3618 "Enter: WDFREQUEST 0x%p",
Request);
3623 "WDFREQUEST %p doesn't belong to any queue %!STATUS!",
3651 status =
pRequest->VerifyRequestIsNotCancelable(FxDriverGlobals);
3758 "Enter: WDFREQUEST 0x%p",
Request);
__inline WDF_DEVICE_IO_TYPE GetIoType(VOID)
static FxDevice * GetFxDevice(__in MdDeviceObject DeviceObject)
FxPkgGeneral * m_PkgGeneral
__inline WDFFILEOBJECT GetHandle(VOID)
_Must_inspect_result_ NTSTATUS RequestCancelable(__in FxRequest *pRequest, __in BOOLEAN Cancelable, __in_opt PFN_WDF_REQUEST_CANCEL EvtRequestCancel, __in BOOLEAN FailIfIrpIsCancelled)
_Must_inspect_result_ NTSTATUS Requeue(__in FxRequest *pRequest)
UCHAR GetMajorFunction(VOID)
ULONG GetParameterWriteLength(VOID)
MdDeviceObject GetDeviceObject(VOID)
ULONG GetParameterIoctlCodeBufferMethod(VOID)
CCHAR GetCurrentIrpStackLocationIndex()
ULONG GetParameterIoctlOutputBufferLength(VOID)
BOOLEAN HasStack(_In_ UCHAR StackCount)
VOID CopyToNextIrpStackLocation(__in PIO_STACK_LOCATION Stack)
VOID CopyCurrentIrpStackLocationToNext(VOID)
ULONG GetParameterIoctlInputBufferLength(VOID)
PVOID GetParameterIoctlType3InputBuffer(VOID)
ULONG GetParameterReadLength(VOID)
BOOLEAN Is32bitProcess(VOID)
PVOID __inline GetObjectHandle(VOID)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
__drv_restoresIRQL KIRQL __in BOOLEAN Unlock
__inline FxIoQueue * GetDeafultInternalCreateQueue()
__inline FxIrp * GetSubmitFxIrp(VOID)
_Must_inspect_result_ NTSTATUS CreateTimer(VOID)
__inline WDFREQUEST GetHandle(VOID)
_Must_inspect_result_ NTSTATUS ValidateTarget(__in FxIoTarget *Target)
BOOLEAN m_NextStackLocationFormatted
__inline VOID VerifierSetFormatted(VOID)
__inline VOID SetCompletionRoutine(__in_opt PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine=NULL, __in_opt WDFCONTEXT CompletionContext=NULL)
_Must_inspect_result_ NTSTATUS GetMemoryObject(__deref_out IFxMemory **Memory, __out PVOID *Buffer, __out size_t *Length)
__inline NTSTATUS CompleteWithInformation(__in NTSTATUS Status, __in ULONG_PTR Information)
VOID StopAcknowledge(__in BOOLEAN Requeue)
_Must_inspect_result_ FxIoQueue * GetCurrentQueue(VOID)
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in_opt PWDF_OBJECT_ATTRIBUTES RequestAttributes, __in_opt MdIrp Irp, __in_opt FxIoTarget *Target, __in FxRequestIrpOwnership Ownership, __in FxRequestConstructorCaller Caller, __deref_out FxRequest **Request)
_Must_inspect_result_ NTSTATUS GetParameters(__out PWDF_REQUEST_PARAMETERS Parameters)
__inline CfxDevice * GetDevice(VOID)
_Must_inspect_result_ NTSTATUS GetDeviceControlOutputMdl(__out PMDL *pMdl)
__inline NTSTATUS CompleteWithPriority(__in NTSTATUS Status, __in CCHAR PriorityBoost)
KPROCESSOR_MODE GetRequestorMode(VOID)
_Must_inspect_result_ NTSTATUS ProbeAndLockForRead(__in PVOID Buffer, __in ULONG Length, __deref_out FxRequestMemory **pMemoryObject)
NTSTATUS SetInformation(__in ULONG_PTR Information)
__inline NTSTATUS Complete(__in NTSTATUS Status)
_Must_inspect_result_ NTSTATUS GetMdl(__out PMDL *pMdl)
ULONG_PTR GetInformation(VOID)
__inline VOID CopyCompletionParams(__in PWDF_REQUEST_COMPLETION_PARAMS Params)
__inline BOOLEAN IsCancelled(VOID)
_Must_inspect_result_ NTSTATUS ProbeAndLockForWrite(__in PVOID Buffer, __in ULONG Length, __deref_out FxRequestMemory **pMemoryObject)
_Must_inspect_result_ NTSTATUS GetDeviceControlOutputMemoryObject(__deref_out IFxMemory **MemoryObject, __out PVOID *Buffer, __out size_t *Length)
_Must_inspect_result_ NTSTATUS GetIrp(__deref_out MdIrp *ppIrp)
_Must_inspect_result_ NTSTATUS GetFileObject(__deref_out_opt FxFileObject **pFileObject)
__inline BOOLEAN IsReserved()
_Must_inspect_result_ NTSTATUS Reuse(__in PWDF_REQUEST_REUSE_PARAMS ReuseParams)
virtual WDFMEMORY GetHandle(VOID)=0
#define NT_SUCCESS(StatCode)
#define __drv_maxIRQL(irql)
return pObject GetObjectHandle()
PFX_DRIVER_GLOBALS fxDriverGlobals
__inline PFX_DRIVER_GLOBALS GetFxDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
VOID __inline FxObjectHandleGetGlobals(__in PFX_DRIVER_GLOBALS CallersGlobals, __in WDFOBJECT Handle, __out PFX_DRIVER_GLOBALS *ObjectGlobals)
@ SubmitSyncCallCompletion
#define FX_DECLARE_VF_FUNCTION_P1(rt, fnName, at1)
#define FX_VF_FUNCTION(fnName)
#define FxPointerNotNull(FxDriverGlobals, Ptr)
#define WDFIOTARGET_FXIOTARGET(handle)
#define WDF_REQUEST_REUSE_VALID_FLAGS_V1_9
__in WDFREQUEST __in PIO_STACK_LOCATION Stack
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES __in_opt WDFIOTARGET Target
__in WDFREQUEST __in BOOLEAN Requeue
_Must_inspect_result_ __in WDFREQUEST __in size_t RequiredLength
FxVerifierDbgBreakPoint(pFxDriverGlobals)
__in WDFREQUEST __in NTSTATUS __in ULONG_PTR Information
__in WDFREQUEST __in NTSTATUS __in CCHAR PriorityBoost
_Must_inspect_result_ __in WDFREQUEST __out WDFMEMORY * Memory
PFX_DRIVER_GLOBALS cxDriverGlobals
FxObjectHandleGetPtr(pFxDriverGlobals, IoTarget, FX_TYPE_IO_TARGET,(PVOID *)&pTarget)
FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals), Request, FX_TYPE_REQUEST,(PVOID *)&pRequest, &pFxDriverGlobals)
#define WDFREQUEST_FXREQUEST(handle)
__in WDFREQUEST __in PFN_WDF_REQUEST_CANCEL EvtRequestCancel
_Must_inspect_result_ NTSTATUS FX_VF_FUNCTION() VerifyRequestComplete(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_ FxRequest *pRequest)
__in WDFREQUEST __in NTSTATUS RequestStatus
_Must_inspect_result_ __in WDFREQUEST __in size_t __deref_out_bcount Length PVOID * Buffer
__in WDFREQUEST __out PWDF_REQUEST_PARAMETERS Parameters
#define GLOBALS_ACTION(globals)
__in WDFREQUEST __out PWDF_REQUEST_COMPLETION_PARAMS Params
_Must_inspect_result_ __in WDFREQUEST __in WDFIOTARGET __in_opt PWDF_REQUEST_SEND_OPTIONS Options
_Must_inspect_result_ __in WDFREQUEST __in size_t __out WDFMEMORY * MemoryObject
#define WDF_REQUEST_REUSE_VALID_FLAGS
_Must_inspect_result_ __in WDFREQUEST __deref_out PMDL * Mdl
_Must_inspect_result_ __in WDFREQUEST __in WDFQUEUE ParentDeviceQueue
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES __in MdIrp __in BOOLEAN RequestFreesIrp
_Must_inspect_result_ __in WDFREQUEST __in WDFQUEUE DestinationQueue
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES RequestAttributes
void CheckUnionAssumptions(VOID)
_Must_inspect_result_ NTSTATUS FX_VF_FUNCTION() VerifyWdfRequestForwardToIoQueue(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_ FxRequest *request)
_Must_inspect_result_ NTSTATUS FX_VF_FUNCTION() VerifyWdfRequestIsCanceled(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_ FxRequest *pRequest)
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES __in MdIrp Irp
_Must_inspect_result_ NTSTATUS FX_VF_FUNCTION() VerifyWdfRequestForwardToParentDeviceIoQueue(_In_ PFX_DRIVER_GLOBALS fxDriverGlobals, _In_ FxRequest *request)
__in WDFREQUEST __in_opt PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
#define PGLOBALS_ACTION(globals)
_Must_inspect_result_ __in WDFREQUEST __in WDFQUEUE __in PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
_Must_inspect_result_ __in WDFREQUEST __in size_t __deref_out_bcount Length PVOID __out_opt size_t * Length
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_ERROR, TRACINGREQUEST, "Error: This call is valid only on method-neither " "ioctl and write WDFREQUEST %p, %!STATUS!", Request, status)
__in WDFREQUEST __in PWDF_REQUEST_REUSE_PARAMS ReuseParams
_Must_inspect_result_ __in WDFREQUEST __in WDFIOTARGET IoTarget
__in WDFREQUEST __in_opt PFN_WDF_REQUEST_COMPLETION_ROUTINE __in_opt WDFCONTEXT CompletionContext
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES __in_opt WDFIOTARGET __out WDFREQUEST * Request
@ FxRequestConstructorCallerIsDriver
NTSTATUS __inline FxValidateRequestOptions(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_ PWDF_REQUEST_SEND_OPTIONS Options, _In_opt_ FxRequestBase *Request=NULL)
#define FxVerifierBugCheck(FxDriverGlobals, Error,...)
__inline NTSTATUS FxVerifierCheckIrqlLevel(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in KIRQL Irql)
GLuint GLsizei GLsizei * length
#define __deref_out_bcount_opt(size)
#define __deref_out_bcount(size)
#define _Must_inspect_result_
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IRP_MJ_DEVICE_CONTROL
#define STATUS_BUFFER_TOO_SMALL
#define TRACE_LEVEL_VERBOSE
#define TRACE_LEVEL_ERROR
_Must_inspect_result_ BOOLEAN IsVersionGreaterThanOrEqualTo(__in ULONG Major, __in ULONG Minor)
_Must_inspect_result_ BOOLEAN IsVerificationEnabled(__in ULONG Major, __in ULONG Minor, __in FxVerifierDownlevelOption DownLevel)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INVALID_PARAMETER
#define STATUS_INVALID_DEVICE_STATE
#define STATUS_INFO_LENGTH_MISMATCH
@ WDF_REQUEST_FATAL_ERROR
@ WDF_REQUEST_FATAL_ERROR_NO_MORE_STACK_LOCATIONS
@ WDF_REQUEST_FATAL_ERROR_NULL_IRP
_In_ PWDFDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
_Must_inspect_result_ FORCEINLINE BOOLEAN WdfRequestSend(_In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
_In_ WDFREQUEST _In_ PWDF_REQUEST_REUSE_PARAMS ReuseParams
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE _In_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
@ WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
@ WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Out_ WDFMEMORY * MemoryObject
_In_ WDFREQUEST _In_ BOOLEAN Requeue
EVT_WDF_REQUEST_COMPLETION_ROUTINE * PFN_WDF_REQUEST_COMPLETION_ROUTINE
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
@ WDF_REQUEST_FORWARD_OPTION_SEND_AND_FORGET
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP _In_ BOOLEAN RequestFreesIrp
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
EVT_WDF_REQUEST_CANCEL * PFN_WDF_REQUEST_CANCEL
_In_ WDFREQUEST _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE DestinationQueue
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE ParentDeviceQueue
#define IRP_MJ_INTERNAL_DEVICE_CONTROL
#define PAGED_CODE_LOCKED()