ReactOS  0.4.15-dev-3187-ge372f2b
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, \
}
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
enum FxObjectType UINT32 enum FxWmiInstanceAction UINT32 enum FxDriverObjectUmFlags USHORT enum FxWakeInterruptEvents UINT32 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
#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 };

◆ 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,
151  FXOBJECT_FLAGS_DISPOSE_OVERRIDE = 0x00000800,
152 };

◆ FxObjectDebugExtensionValues

Enumerator
FxObjectDebugExtensionSize 
FxObjectDebugExtensionSignature 

Definition at line 225 of file fxobject.hpp.

◆ 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 };

◆ FxObjectState

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

Definition at line 158 of file fxobject.hpp.

◆ FxObjectType

Enumerator
FxObjectTypeInvalid 
FxObjectTypeInternal 
FxObjectTypeExternal 
FxObjectTypeEmbedded 

Definition at line 117 of file fxobject.hpp.

Function Documentation

◆ DECLSPEC_ALIGN()

typedef DECLSPEC_ALIGN ( )

Definition at line 953 of file ketypes.h.

953  {
954  ULONG64 Mask;
955  ULONG64 Reserved[7];
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
unsigned __int64 ULONG64
Definition: imports.h:198
processorSet Mask
* PXSAVE_AREA_HEADER
Definition: ketypes.h:956
XSAVE_AREA_HEADER
Definition: ketypes.h:956

Variable Documentation

◆ FxHandleValueMask