70 "Destroy WDFDPC %p destroyed without calling WdfObjectDelete, or by"
71 " Framework processing DeviceRemove. Possible reference count "
188 Config->AutomaticSerialization,
204 "ParentObject %p can not automatically synchronize callbacks "
205 "with a DPC since it is configured for passive level callback "
206 "constraints. Set AutomaticSerialization to FALSE. %!STATUS!",
242 ParentObject->ADDREF(
this);
virtual void Lock(__out PKIRQL PreviousIrql)=0
virtual void Unlock(__in KIRQL PreviousIrql)=0
static FxDeviceBase * _SearchForDevice(__in FxObject *Object, __out_opt IFxHasCallbacks **Callbacks)
static KDEFERRED_ROUTINE FxDpcThunk
FxDpc(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
BOOLEAN Cancel(__in BOOLEAN Wait)
_Must_inspect_result_ NTSTATUS Initialize(__in PWDF_OBJECT_ATTRIBUTES Attributes, __in PWDF_DPC_CONFIG Config, __in FxObject *ParentObject, __out WDFDPC *Dpc)
FxCallbackLock * m_CallbackLock
VOID DpcHandler(__in PKDPC Dpc, __in PVOID SystemArgument1, __in PVOID SystemArgument2)
virtual BOOLEAN Dispose(VOID)
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_DPC_CONFIG Config, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxObject *ParentObject, __out WDFDPC *Dpc)
FxObject * m_CallbackLockObject
VOID MarkPassiveDispose(__in FxObjectLockState State=ObjectLock)
PVOID __inline GetObjectHandleUnchecked(VOID)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
static _Must_inspect_result_ NTSTATUS _GetEffectiveLock(__in FxObject *Object, __in_opt IFxHasCallbacks *Callbacks, __in BOOLEAN AutomaticLocking, __in BOOLEAN PassiveCallbacks, __out FxCallbackLock **CallbackLock, __out_opt FxObject **CallbackLockObject)
CfxDeviceBase * m_DeviceBase
VOID DeleteFromFailedCreate(VOID)
VOID MarkDisposeOverride(__in FxObjectLockState State=ObjectLock)
_Must_inspect_result_ NTSTATUS Commit(__in_opt PWDF_OBJECT_ATTRIBUTES Attributes, __out_opt WDFOBJECT *ObjectHandle, __in_opt FxObject *Parent=NULL, __in BOOLEAN AssignDriverAsDefaultParent=TRUE)
#define NT_SUCCESS(StatCode)
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
BOOLEAN NTAPI KeRemoveQueueDpc(IN PKDPC Dpc)
VOID NTAPI KeFlushQueuedDpcs(VOID)
#define KeGetCurrentIrql()
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
PFX_DRIVER_GLOBALS pFxDriverGlobals
return pObject GetObjectHandle()
FX_TRACK_DRIVER(fxDriverGlobals)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
return pFxDpc GetDpcPtr()
FORCEINLINE VOID FxPerfTraceDpc(_In_ PVOID DriverCallback)
#define _Must_inspect_result_
#define UNREFERENCED_PARAMETER(P)
#define TRACE_LEVEL_ERROR
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
_In_ WDFDPC _In_ BOOLEAN Wait
#define STATUS_WDF_INCOMPATIBLE_EXECUTION_LEVEL
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
_In_opt_ PVOID DeferredContext
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2