91 "WorkItem destroyed without calling "
92 "FxSystemWorkItem::Delete, or by Framework "
93 "processing DeviceRemove. "
94 "Possible reference count problem?");
125#if (FX_CORE_MODE == FX_CORE_USER_MODE)
129 "Could not initialize m_WorkItemCompleted event "
130 "status %!status!",
status);
137 "Could not initialize m_RemoveEvent event "
138 "status %!status!",
status);
149 "Could not allocate IoWorkItem, insufficient resources");
196 if (AssertIfAlreadyQueued) {
198 "WorkItem 0x%p already enqueued IoWorkItem 0x%p",
212 "WorkItem 0x%p is already deleted",
this);
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
__drv_restoresIRQL KIRQL __in BOOLEAN Unlock
virtual ULONG Release(__in_opt PVOID Tag=NULL, __in LONG Line=0, __in_opt PSTR File=NULL)
VOID MarkPassiveCallbacks(__in FxObjectLockState State=ObjectLock)
VOID MarkDisposeOverride(__in FxObjectLockState State=ObjectLock)
FxCREvent m_WorkItemCompleted
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PVOID WdmObject, __out FxSystemWorkItem **pObject)
FxSystemWorkItem(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
__inline VOID ReleaseWorkItemQueuedCountAndWait()
__inline VOID IncrementWorkItemQueued()
LONG m_OutStandingWorkItem
ULONG m_WorkItemRunningCount
PFN_WDF_SYSTEMWORKITEM m_Callback
virtual BOOLEAN Dispose(VOID)
_Must_inspect_result_ NTSTATUS Initialize(__in PVOID WdmObject)
__inline VOID DecrementWorkItemQueued()
BOOLEAN EnqueueWorker(__in PFN_WDF_SYSTEMWORKITEM Func, __in PVOID Parameter, __in BOOLEAN AssertIfAlreadyQueued)
static MX_WORKITEM_ROUTINE _WorkItemThunk
virtual ~FxSystemWorkItem()
__inline MdWorkItem GetWorkItem()
__inline VOID Enqueue(__in PMX_WORKITEM_ROUTINE Callback, __in PVOID Context)
_Must_inspect_result_ __inline NTSTATUS Allocate(__in MdDeviceObject DeviceObject, __in_opt PVOID ThreadPoolEnv=NULL)
static __inline KIRQL MxGetCurrentIrql()
#define NT_SUCCESS(StatCode)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
PFX_DRIVER_GLOBALS pFxDriverGlobals
FX_TRACK_DRIVER(fxDriverGlobals)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
EVT_SYSTEMWORKITEM * PFN_WDF_SYSTEMWORKITEM
#define _Must_inspect_result_
#define UNREFERENCED_PARAMETER(P)
#define TRACE_LEVEL_ERROR
NTSTATUS EnterCRAndWaitAndLeave(VOID)
CHECK_RETURN_IF_USER_MODE NTSTATUS Initialize(__in BOOLEAN InitialState=FALSE)
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
_Inout_opt_ PVOID Parameter