40#if defined(EVENT_TRACING)
41#include "FxObject.tmh"
56 m_Globals(FxDriverGlobals)
57#
if FX_CORE_MODE==FX_CORE_USER_MODE
58#ifndef INLINE_WRAPPER_ALLOCATION
76 m_Globals(FxDriverGlobals)
100 if (pTagTracker !=
NULL) {
129 if (pHandleName ==
NULL) {
130 pHandleName =
"WDFOBJECT";
134 "Object was freed using WdfObjectDereference, not WdfObjectDelete\n",
142 "Handle %s %p (raw object %p) was freed using "
143 "WdfObjectDereference(), not WdfObjectDelete()",
167#if ((FX_CORE_MODE)==(FX_CORE_KERNEL_MODE))
172 "this object's type is not listed in FxObjectsInfo\n",
185 pExtension = GetDebugExtension();
201 AllocateTagTracker(m_Type);
306FxObject::operator
delete(
592 status = ParentObject->AddChildObjectInternal(
this);
642 for (ppLast = &
pCur->NextHeader;
646 if (
pCur->ContextTypeInfo ==
Header->ContextTypeInfo) {
749 ASSERT(ChildObject !=
this);
756 if (ChildObject->GetDeviceBase() ==
NULL) {
821 ASSERT(ChildObject->m_ParentObject ==
this);
893 if (parentObject !=
NULL) {
894 parentObject->ADDREF(
Tag);
934 ASSERTMSG(
"Only external objects can call Commit()\n",
981 if (AssignDriverAsDefaultParent &&
1035 if (ObjectHandle !=
NULL) {
1090 *CallbackLock =
NULL;
1091 *CallbackLockObject =
NULL;
1096 if (AutomaticLocking ==
FALSE) {
1110 Callbacks->GetConstraints(&parentLevel, &parentScope);
1133 *CallbackLock =
Callbacks->GetCallbackLockPtr(CallbackLockObject);
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
const struct winhelp_callbacks Callbacks
VOID Add(FxObject *object)
__inline FxDisposeList * GetDisposeList()
FxObjectDebugExtension * GetDebugExtension(VOID)
PFX_DRIVER_GLOBALS m_Globals
_Must_inspect_result_ NTSTATUS AssignParentObject(__in FxObject *ParentObject)
_Must_inspect_result_ NTSTATUS AddChildObjectInternal(__in FxObject *ChildObject)
VOID CallCleanupCallbacks(VOID)
_Must_inspect_result_ NTSTATUS RemoveChildObjectInternal(__in FxObject *ChildObject)
LIST_ENTRY m_ChildListHead
_Must_inspect_result_ NTSTATUS AddContext(__in FxContextHeader *Header, __in PVOID *Context, __in PWDF_OBJECT_ATTRIBUTES Attributes)
PVOID __inline GetObjectHandleUnchecked(VOID)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
SINGLE_LIST_ENTRY m_DisposeSingleEntry
VOID __inline Construct(__in BOOLEAN Embedded)
VOID __inline TraceDroppedEvent(__in FxObjectDroppedEvent Event)
FxObject * m_ParentObject
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)
BOOLEAN ShouldDeferDisposeLocked(__out_opt PKIRQL PreviousIrql=NULL)
VOID ClearEvtCallbacks(VOID)
CfxDeviceBase * GetDeviceBase(VOID)
VOID ProcessDestroy(VOID)
FxTagTracker * GetTagTracker(VOID)
VOID DeleteFromFailedCreate(VOID)
__inline FxContextHeader * GetContextHeader(VOID)
VOID MarkPassiveCallbacks(__in FxObjectLockState State=ObjectLock)
_Must_inspect_result_ FxObject * GetParentObjectReferenced(__in PVOID Tag)
VOID __inline SetObjectStateLocked(__in FxObjectState NewState)
virtual _Must_inspect_result_ NTSTATUS QueryInterface(__in FxQueryInterfaceParams *Params)
BOOLEAN IsCommitted(VOID)
VOID AllocateTagTracker(__in WDFTYPE Type)
_Must_inspect_result_ NTSTATUS Commit(__in_opt PWDF_OBJECT_ATTRIBUTES Attributes, __out_opt WDFOBJECT *ObjectHandle, __in_opt FxObject *Parent=NULL, __in BOOLEAN AssignDriverAsDefaultParent=TRUE)
static _Must_inspect_result_ NTSTATUS __inline CreateAndInitialize(__out FxTagTracker **TagTracker, __in PFX_DRIVER_GLOBALS FxDriverGlobals, __in FxTagTrackerType Type, __in BOOLEAN CaptureStack, __in FxObject *Owner, __in_opt PVOID CreateTag=NULL)
#define STATUS_INVALID_HANDLE
#define NT_SUCCESS(StatCode)
#define InterlockedExchangePointer(Target, Value)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define InitializeListHead(ListHead)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
PFX_DRIVER_GLOBALS pFxDriverGlobals
return pObject GetObjectHandle()
FxObjectHandleGetPtr(GetFxDriverGlobals(DriverGlobals), Fdo, FX_TYPE_DEVICE,(PVOID *)&pFdo)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
_Must_inspect_result_ BOOLEAN FxVerifyObjectTypeInTable(__in USHORT ObjectType)
_Must_inspect_result_ BOOLEAN FxVerifierGetTrackReferences(__in FxObjectDebugInfo *DebugInfo, __in WDFTYPE ObjectType)
PCSTR FxObjectTypeToHandleName(__in WDFTYPE ObjectType)
VOID __inline FxObjectHandleCreate(__in FxObject *Object, __out PWDFOBJECT Handle)
#define FX_VF_METHOD(classname, fnName)
VOID _In_ BOOLEAN Embedded
@ FxObjectStateDeferedDestroy
@ FXOBJECT_FLAGS_HAS_DEBUG
@ FXOBJECT_FLAGS_TRACE_STATE
@ FXOBJECT_FLAGS_HAS_CLEANUP
@ FxObjectDebugExtensionSignature
@ FxObjectDroppedEventAssignParentObject
@ FxObjectDroppedEventAddChildObjectInternal
@ FxObjectDroppedEventRemoveChildObjectInternal
void FxPoolFree(__in_xcount(ptr is at an offset from AllocationStart) PVOID ptr)
#define FxVerifierBugCheck(FxDriverGlobals, Error,...)
GLfloat GLfloat GLfloat GLfloat h
FxContextHeader * pHeader
#define _Must_inspect_result_
#define ASSERTMSG(msg, exp)
#define MEMORY_ALLOCATION_ALIGNMENT
#define UNREFERENCED_PARAMETER(P)
#define STATUS_NOINTERFACE
#define STATUS_DELETE_PENDING
#define STATUS_OBJECT_NAME_EXISTS
#define TRACE_LEVEL_FATAL
#define TRACE_LEVEL_INFORMATION
FxObjectDebugInfo * ObjectDebugInfo
FxTagTracker * TagTracker
FxDriverGlobalsDebugExtension * DebugExtension
struct _SINGLE_LIST_ENTRY * Next
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
FORCEINLINE size_t WDF_ALIGN_SIZE_UP(_In_ size_t Length, _In_ size_t AlignTo)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
@ WdfSynchronizationScopeInheritFromParent
@ WdfSynchronizationScopeNone
@ WdfExecutionLevelPassive
WDF_EXTERN_C_START enum _WDF_EXECUTION_LEVEL WDF_EXECUTION_LEVEL
enum _WDF_SYNCHRONIZATION_SCOPE WDF_SYNCHRONIZATION_SCOPE
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
#define STATUS_WDF_INCOMPATIBLE_EXECUTION_LEVEL
#define STATUS_WDF_PARENT_ALREADY_ASSIGNED
#define STATUS_WDF_PARENT_IS_SELF