86 if (FxDriverGlobals->IsVersionGreaterThanOrEqualTo(1, 11)) {
150#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
193 flags = GetVerifierFlagsLocked();
197 "Driver is trying to delete WDFREQUEST 0x%p while it is still "
198 "active on WDFIOTARGET 0x%p. ",
199 GetTraceObjectHandle(), GetTarget()->
GetHandle());
264#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
325 "WDFIOTARGET %p is closed, cannot validate, %!STATUS!",
341 "Could not allocate irp for WDFREQUEST %p for WDFIOTARGET %p,"
366 "Cannot reallocate PIRP for WDFREQUEST %p using WDFIOTARGET %p,"
370 if (pOldIrp !=
NULL) {
372 "Freeing irp %p from WDFREQUEST %p\n",
374 FxIrp oldIrp(pOldIrp);
387 MdIrp pOldIrp, pIrpToFree;
392 if (NewIrp !=
NULL) {
400 if (pOldIrp !=
NULL &&
404 FxIrp oldIrp(pOldIrp);
408 pIrpToFree = pOldIrp;
591 "Request %p, PIRP %p, cancel result %d",
610 "Request %p, PIRP %p, completed synchronously in cancel call, "
618 "Could not cancel request %p, already completed",
this);
718 "Failed to initialize timer for request %p",
this);
725 if (pResult !=
NULL) {
796 "Request %p, did not cancel timer",
this);
806 "Request %p, canceled timer successfully",
this);
#define InterlockedDecrement
WDFIOTARGET GetHandle(VOID)
VOID CompleteCanceledRequest(__in FxRequestBase *Request)
VOID TimerCallback(__in FxRequestBase *Request)
static _Must_inspect_result_ MdIrp AllocateIrp(_In_ CCHAR StackSize, _In_opt_ FxDevice *Device=NULL)
VOID CopyStatus(_Out_ PIO_STATUS_BLOCK StatusBlock)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
VOID MarkDisposeOverride(__in FxObjectLockState State=ObjectLock)
__inline VOID CallCleanup(VOID)
MdIrp SetSubmitIrp(__in_opt MdIrp NewIrp, __in BOOLEAN FreeIrp=TRUE)
WDFOBJECT_OFFSET_ALIGNED m_OutputBufferOffset
SINGLE_LIST_ENTRY m_DrainSingleEntry
VOID __inline SetPriorityBoost(CCHAR PriorityBoost)
LONG m_IrpCompletionReferenceCount
__inline FxIrp * GetSubmitFxIrp(VOID)
virtual ~FxRequestBase(VOID)
DECLSPEC_NORETURN VOID FatalError(__in NTSTATUS Status)
VOID ClearFieldsForReuse(VOID)
__inline PVOID GetTraceObjectHandle(VOID)
WDFCONTEXT m_TargetCompletionContext
VOID CompleteSubmitted(VOID)
FxRequestBase(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in USHORT ObjectSize, __in_opt MdIrp Irp, __in FxRequestIrpOwnership Ownership, __in FxRequestConstructorCaller Caller, __in FxObjectType ObjectType=FxObjectTypeExternal)
UCHAR m_RequestBaseStaticFlags
FxRequestContext * m_RequestContext
__inline MdIrp GetSubmitIrp(VOID)
_Must_inspect_result_ NTSTATUS CreateTimer(VOID)
__inline VOID VerifierClearFormatted(VOID)
VOID ContextReleaseAndRestore(VOID)
VOID CompleteSubmittedNoContext(VOID)
_Must_inspect_result_ BOOLEAN CancelTimer(VOID)
FxRequestCompletionCallback m_CompletionRoutine
_Must_inspect_result_ NTSTATUS ValidateTarget(__in FxIoTarget *Target)
VOID ZeroOutDriverContext(VOID)
BOOLEAN m_NextStackLocationFormatted
BOOLEAN __inline IsAllocatedFromIo(VOID)
virtual BOOLEAN Dispose(VOID)
__inline VOID SetCompleted(__in BOOLEAN Value)
WDFOBJECT_OFFSET_ALIGNED m_SystemBufferOffset
WDFCONTEXT ClearCompletionContext(VOID)
static MdDeferredRoutineType _TimerDPC
PFN_WDF_REQUEST_COMPLETION_ROUTINE ClearCompletionRoutine(VOID)
VOID StartTimer(__in LONGLONG Timeout)
PFN_WDF_REQUEST_COMPLETION_ROUTINE m_Completion
_Must_inspect_result_ __inline BOOLEAN Stop(VOID)
__inline VOID Start(__in LARGE_INTEGER DueTime, __in ULONG TolerableDelay=0)
CHECK_RETURN_IF_USER_MODE __inline NTSTATUS Initialize(__in_opt PVOID TimerContext, __in MdDeferredRoutine TimerCallback, __in LONG Period)
#define NT_SUCCESS(StatCode)
#define InitializeListHead(ListHead)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
FX_TRACK_DRIVER(fxDriverGlobals)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
__inline LONG FxInterlockedIncrementGTZero(__inout LONG volatile *Target)
#define FX_VF_METHOD(classname, fnName)
VOID __inline FxMdlFree(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PMDL Mdl)
@ REQUEST_ALLOCATED_FROM_IO
@ REQUEST_ALLOCATED_DRIVER
@ REQUEST_ALLOCATED_INTERNAL
FxRequestConstructorCaller
@ FxRequestConstructorCallerIsDriver
@ FXREQUEST_FLAG_SENT_TO_TARGET
@ FxRequestCompletionStateNone
#define FxVerifierBugCheck(FxDriverGlobals, Error,...)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum const GLfloat * params
#define InterlockedCompareExchangePointer
#define _Must_inspect_result_
#define DECLSPEC_NORETURN
#define UNREFERENCED_PARAMETER(P)
#define STATUS_REQUEST_NOT_ACCEPTED
#define TRACE_LEVEL_VERBOSE
#define TRACE_LEVEL_ERROR
virtual VOID ReleaseAndRestore(__in FxRequestBase *Request)
WDF_REQUEST_COMPLETION_PARAMS m_CompletionParams
virtual VOID CopyParameters(__in FxRequestBase *Request)
virtual VOID Dispose(VOID)
struct _SINGLE_LIST_ENTRY * Next
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_DEVICE_STATE
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
#define PAGED_CODE_LOCKED()
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2