ReactOS 0.4.15-dev-7788-g1ad9096
fxobject.hpp File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FxQueryInterfaceParams
 
struct  FxObjectDebugExtension
 
class  FxObject
 

Macros

#define ADDREF(_tag)   AddRef(_tag, __LINE__, __FILE__)
 
#define RELEASE(_tag)   Release(_tag, __LINE__, __FILE__)
 
#define ADDREF_OFFSET(_tag, offset)   AddRefOverride(offset, _tag, __LINE__, __FILE__)
 
#define RELEASE_OFFSET(_tag, offset)   ReleaseOverride(offset, _tag, __LINE__, __FILE__)
 
#define FLAG_TO_BOOL(_Flags, _FlagMask)   (!!((_Flags) & (_FlagMask)))
 
#define DECLARE_INTERNAL_NEW_OPERATOR()
 
#define GET_CONTEXT_HEADER()   WDF_PTR_ADD_OFFSET_TYPE(this, m_ObjectSize, FxContextHeader*)
 

Typedefs

typedef USHORT WDFOBJECT_OFFSET
 
typedef USHORTPWDFOBJECT_OFFSET
 

Enumerations

enum  FxHandleFlags { FxHandleFlagIsOffset = 0x1 , FxHandleFlagMask = 0x7 }
 
enum  FxObjectType : UINT32 { FxObjectTypeInvalid = 0 , FxObjectTypeInternal , FxObjectTypeExternal , FxObjectTypeEmbedded }
 
enum  FxObjectLockState { ObjectDoNotLock = 0 , ObjectLock = 1 }
 
enum  FXOBJECT_FLAGS {
  FXOBJECT_FLAGS_PASSIVE_CALLBACKS = 0x00000001 , FXOBJECT_FLAGS_NODELETEDDI = 0x00000002 , FXOBJECT_FLAGS_DELETECALLED = 0x00000004 , FXOBJECT_FLAGS_COMMITTED = 0x00000008 ,
  FXOBJECT_FLAGS_PASSIVE_DISPOSE = 0x00000010 , FXOBJECT_FLAGS_FORCE_DISPOSE_THREAD = 0x00000020 , FXOBJECT_FLAGS_HAS_DEBUG = 0x00000080 , FXOBJECT_FLAGS_EARLY_DISPOSED_EXT = 0x00000100 ,
  FXOBJECT_FLAGS_TRACE_STATE = 0x00000200 , FXOBJECT_FLAGS_HAS_CLEANUP = 0x00000400 , FXOBJECT_FLAGS_DISPOSE_OVERRIDE = 0x00000800
}
 
enum  FxObjectState {
  FxObjectStateInvalid = 0 , FxObjectStateCreated , FxObjectStateDisposed , FxObjectStateDisposingEarly ,
  FxObjectStateDisposingDisposeChildren , FxObjectStateDeferedDisposing , FxObjectStateDeferedDeleting , FxObjectStateWaitingForEarlyDispose ,
  FxObjectStateWaitingForParentDeleteAndDisposed , FxObjectStateDeletedDisposing , FxObjectStateDeletedAndDisposed , FxObjectStateDeferedDestroy ,
  FxObjectStateDestroyed , FxObjectStateMaximum
}
 
enum  FxObjectDroppedEvent {
  FxObjectDroppedEventAssignParentObject = 0 , FxObjectDroppedEventAddChildObjectInternal , FxObjectDroppedEventRemoveChildObjectInternal , FxObjectDroppedEventDeleteObject ,
  FxObjectDroppedEventPerformEarlyDispose , FxObjectDroppedEventRemoveParentAssignment , FxObjectDroppedEventParentDeleteEvent
}
 
enum  FxObjectDebugExtensionValues { FxObjectDebugExtensionSize = FIELD_OFFSET(FxObjectDebugExtension, AllocationStart) , FxObjectDebugExtensionSignature = 'DOxF' }
 

Functions

typedef DECLSPEC_ALIGN (8) USHORT WDFOBJECT_OFFSET_ALIGNED
 

Variables

DECLSPEC_SELECTANY const ULONG_PTR FxHandleValueMask = (~((ULONG_PTR) FxHandleFlagMask))
 

Macro Definition Documentation

◆ ADDREF

#define ADDREF (   _tag)    AddRef(_tag, __LINE__, __FILE__)

Definition at line 49 of file fxobject.hpp.

◆ ADDREF_OFFSET

#define ADDREF_OFFSET (   _tag,
  offset 
)    AddRefOverride(offset, _tag, __LINE__, __FILE__)

Definition at line 52 of file fxobject.hpp.

◆ DECLARE_INTERNAL_NEW_OPERATOR

#define DECLARE_INTERNAL_NEW_OPERATOR ( )
Value:
PVOID \
__inline \
operator new( \
__in size_t Size, \
__in PFX_DRIVER_GLOBALS FxDriverGlobals \
) \
{ \
return FxObjectHandleAlloc(FxDriverGlobals, \
Size, \
0, \
0, \
}
#define __in
Definition: dbghelp.h:35
#define NonPagedPool
Definition: env_spec_w32.h:307
PVOID FxObjectHandleAlloc(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in POOL_TYPE PoolType, __in size_t Size, __in ULONG Tag, __in_opt PWDF_OBJECT_ATTRIBUTES Attributes, __in USHORT ExtraSize, __in FxObjectType ObjectType)
Definition: handleapi.cpp:163
@ FxObjectTypeInternal
Definition: fxobject.hpp:119
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
#define WDF_NO_OBJECT_ATTRIBUTES
Definition: wdftypes.h:105

Definition at line 190 of file fxobject.hpp.

◆ FLAG_TO_BOOL

#define FLAG_TO_BOOL (   _Flags,
  _FlagMask 
)    (!!((_Flags) & (_FlagMask)))

Definition at line 125 of file fxobject.hpp.

◆ GET_CONTEXT_HEADER

#define GET_CONTEXT_HEADER ( )    WDF_PTR_ADD_OFFSET_TYPE(this, m_ObjectSize, FxContextHeader*)

Definition at line 591 of file fxobject.hpp.

◆ RELEASE

#define RELEASE (   _tag)    Release(_tag, __LINE__, __FILE__)

Definition at line 50 of file fxobject.hpp.

◆ RELEASE_OFFSET

#define RELEASE_OFFSET (   _tag,
  offset 
)    ReleaseOverride(offset, _tag, __LINE__, __FILE__)

Definition at line 53 of file fxobject.hpp.

Typedef Documentation

◆ PWDFOBJECT_OFFSET

Definition at line 80 of file fxobject.hpp.

◆ WDFOBJECT_OFFSET

Definition at line 80 of file fxobject.hpp.

Enumeration Type Documentation

◆ FxHandleFlags

Enumerator
FxHandleFlagIsOffset 
FxHandleFlagMask 

Definition at line 60 of file fxobject.hpp.

60 {
62 FxHandleFlagMask = 0x7, // bottom 3 bits are free
63};
@ FxHandleFlagIsOffset
Definition: fxobject.hpp:61
@ FxHandleFlagMask
Definition: fxobject.hpp:62

◆ FXOBJECT_FLAGS

Enumerator
FXOBJECT_FLAGS_PASSIVE_CALLBACKS 
FXOBJECT_FLAGS_NODELETEDDI 
FXOBJECT_FLAGS_DELETECALLED 
FXOBJECT_FLAGS_COMMITTED 
FXOBJECT_FLAGS_PASSIVE_DISPOSE 
FXOBJECT_FLAGS_FORCE_DISPOSE_THREAD 
FXOBJECT_FLAGS_HAS_DEBUG 
FXOBJECT_FLAGS_EARLY_DISPOSED_EXT 
FXOBJECT_FLAGS_TRACE_STATE 
FXOBJECT_FLAGS_HAS_CLEANUP 
FXOBJECT_FLAGS_DISPOSE_OVERRIDE 

Definition at line 138 of file fxobject.hpp.

138 {
139 FXOBJECT_FLAGS_PASSIVE_CALLBACKS = 0x00000001, // Object must have all callbacks at passive level
140 // implies passive destroy
141 FXOBJECT_FLAGS_NODELETEDDI = 0x00000002, // The WdfObjectDelete DDI is invalid
142 FXOBJECT_FLAGS_DELETECALLED = 0x00000004, // DeleteObject method called
143 FXOBJECT_FLAGS_COMMITTED = 0x00000008, // Commit called
144 FXOBJECT_FLAGS_PASSIVE_DISPOSE = 0x00000010, // Object must be Dispose()'d at passive level
145 FXOBJECT_FLAGS_FORCE_DISPOSE_THREAD = 0x00000020, // Object is always disposed in the dispose thread
146 // UNUSED = 0x00000040,
147 FXOBJECT_FLAGS_HAS_DEBUG = 0x00000080, // has FxObjectDebugExtension before object pointer
148 FXOBJECT_FLAGS_EARLY_DISPOSED_EXT = 0x00000100, // Early disposed externally to the state machine
149 FXOBJECT_FLAGS_TRACE_STATE = 0x00000200, // log state changes to the IFR
150 FXOBJECT_FLAGS_HAS_CLEANUP = 0x00000400,
152};
@ FXOBJECT_FLAGS_DELETECALLED
Definition: fxobject.hpp:142
@ FXOBJECT_FLAGS_PASSIVE_CALLBACKS
Definition: fxobject.hpp:139
@ FXOBJECT_FLAGS_FORCE_DISPOSE_THREAD
Definition: fxobject.hpp:145
@ FXOBJECT_FLAGS_NODELETEDDI
Definition: fxobject.hpp:141
@ FXOBJECT_FLAGS_DISPOSE_OVERRIDE
Definition: fxobject.hpp:151
@ FXOBJECT_FLAGS_PASSIVE_DISPOSE
Definition: fxobject.hpp:144
@ FXOBJECT_FLAGS_HAS_DEBUG
Definition: fxobject.hpp:147
@ FXOBJECT_FLAGS_TRACE_STATE
Definition: fxobject.hpp:149
@ FXOBJECT_FLAGS_HAS_CLEANUP
Definition: fxobject.hpp:150
@ FXOBJECT_FLAGS_COMMITTED
Definition: fxobject.hpp:143
@ FXOBJECT_FLAGS_EARLY_DISPOSED_EXT
Definition: fxobject.hpp:148

◆ FxObjectDebugExtensionValues

Enumerator
FxObjectDebugExtensionSize 
FxObjectDebugExtensionSignature 

Definition at line 225 of file fxobject.hpp.

225 {
228};
@ FxObjectDebugExtensionSignature
Definition: fxobject.hpp:227
@ FxObjectDebugExtensionSize
Definition: fxobject.hpp:226
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255

◆ FxObjectDroppedEvent

Enumerator
FxObjectDroppedEventAssignParentObject 
FxObjectDroppedEventAddChildObjectInternal 
FxObjectDroppedEventRemoveChildObjectInternal 
FxObjectDroppedEventDeleteObject 
FxObjectDroppedEventPerformEarlyDispose 
FxObjectDroppedEventRemoveParentAssignment 
FxObjectDroppedEventParentDeleteEvent 

Definition at line 175 of file fxobject.hpp.

◆ FxObjectLockState

Enumerator
ObjectDoNotLock 
ObjectLock 

Definition at line 127 of file fxobject.hpp.

127 {
128 ObjectDoNotLock = 0,
129 ObjectLock = 1
130};
@ ObjectDoNotLock
Definition: fxobject.hpp:128
@ ObjectLock
Definition: fxobject.hpp:129

◆ FxObjectState

Enumerator
FxObjectStateInvalid 
FxObjectStateCreated 
FxObjectStateDisposed 
FxObjectStateDisposingEarly 
FxObjectStateDisposingDisposeChildren 
FxObjectStateDeferedDisposing 
FxObjectStateDeferedDeleting 
FxObjectStateWaitingForEarlyDispose 
FxObjectStateWaitingForParentDeleteAndDisposed 
FxObjectStateDeletedDisposing 
FxObjectStateDeletedAndDisposed 
FxObjectStateDeferedDestroy 
FxObjectStateDestroyed 
FxObjectStateMaximum 

Definition at line 158 of file fxobject.hpp.

158 {
173};
@ FxObjectStateDeferedDeleting
Definition: fxobject.hpp:165
@ FxObjectStateDestroyed
Definition: fxobject.hpp:171
@ FxObjectStateCreated
Definition: fxobject.hpp:160
@ FxObjectStateDisposed
Definition: fxobject.hpp:161
@ FxObjectStateDisposingDisposeChildren
Definition: fxobject.hpp:163
@ FxObjectStateWaitingForEarlyDispose
Definition: fxobject.hpp:166
@ FxObjectStateDeletedDisposing
Definition: fxobject.hpp:168
@ FxObjectStateWaitingForParentDeleteAndDisposed
Definition: fxobject.hpp:167
@ FxObjectStateDeletedAndDisposed
Definition: fxobject.hpp:169
@ FxObjectStateMaximum
Definition: fxobject.hpp:172
@ FxObjectStateDisposingEarly
Definition: fxobject.hpp:162
@ FxObjectStateDeferedDisposing
Definition: fxobject.hpp:164
@ FxObjectStateDeferedDestroy
Definition: fxobject.hpp:170
@ FxObjectStateInvalid
Definition: fxobject.hpp:159

◆ FxObjectType

Enumerator
FxObjectTypeInvalid 
FxObjectTypeInternal 
FxObjectTypeExternal 
FxObjectTypeEmbedded 

Definition at line 117 of file fxobject.hpp.

117 : UINT32 {
122};
unsigned int UINT32
@ FxObjectTypeInvalid
Definition: fxobject.hpp:118
@ FxObjectTypeEmbedded
Definition: fxobject.hpp:121
@ FxObjectTypeExternal
Definition: fxobject.hpp:120

Function Documentation

◆ DECLSPEC_ALIGN()

typedef DECLSPEC_ALIGN ( )

Definition at line 963 of file ketypes.h.

965 {
967 ULONG64 Reserved[7];
unsigned int Mask
Definition: fpcontrol.c:82
unsigned __int64 ULONG64
Definition: imports.h:198
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
XSAVE_AREA_HEADER
Definition: ketypes.h:968
* PXSAVE_AREA_HEADER
Definition: ketypes.h:968

Variable Documentation

◆ FxHandleValueMask