1 // 2 // Copyright (C) Microsoft. All rights reserved. 3 // 4 #ifndef _FXFORWARD_HPP_ 5 #define _FXFORWARD_HPP_ 6 7 typedef struct _FX_DRIVER_GLOBALS *PFX_DRIVER_GLOBALS; 8 9 struct FxAutoIrp; 10 class FxCallback; 11 class FxCallbackLock; 12 class FxCallbackMutexLock; 13 class FxCallbackSpinLock; 14 class FxChildList; 15 class FxCmResList; 16 class FxCollection; 17 struct FxCollectionInternal; 18 class FxCommonBuffer; 19 struct FxContextHeader; 20 class FxDevice; 21 class FxDeviceBase; 22 struct FxDeviceDescriptionEntry; 23 class FxDeviceInterface; 24 struct FxDeviceText; 25 struct FxCxDeviceInfo; 26 class FxDefaultIrpHandler; 27 class FxDisposeList; 28 class FxDmaEnabler; 29 class FxDmaTransactionBase; 30 class FxDmaPacketTransaction; 31 class FxDmaScatterGatherTransaction; 32 class FxDriver; 33 class FxFileObject; 34 struct FxFileObjectInfo; 35 struct FxGlobalsStump; 36 class FxInterrupt; 37 struct FxIoQueueNode; 38 class FxIoQueue; 39 class FxIoResList; 40 class FxIoResReqList; 41 class FxIoTarget; 42 class FxIoTargetSelf; 43 class FxIrp; 44 struct FxIrpPreprocessInfo; 45 struct FxIrpDynamicDispatchInfo; 46 class FxIrpQueue; 47 class FxLock; 48 class FxLookasideList; 49 class FxLookasideListFromPool; 50 class FxMemoryBuffer; 51 class FxMemoryBufferFromLookaside; 52 class FxMemoryBufferFromPool; 53 class FxMemoryBufferFromPoolLookaside; 54 class FxMemoryBufferPreallocated; 55 class FxMemoryObject; 56 class FxNonPagedObject; 57 class FxNPagedLookasideList; 58 class FxNPagedLookasideListFromPool; 59 class FxObject; 60 class FxPackage; 61 class FxPagedLookasideListFromPool; 62 class FxPagedObject; 63 class FxPkgFdo; 64 class FxPkgGeneral; 65 class FxPkgIo; 66 class FxPkgPdo; 67 class FxPkgPnp; 68 struct FxPnpMachine; 69 struct FxPnpStateCallback; 70 struct FxPowerMachine; 71 struct FxPostProcessInfo; 72 class FxPowerIdleMachine; 73 struct FxPowerPolicyMachine; 74 struct FxPowerPolicyStateCallback; 75 struct FxPowerStateCallback; 76 struct FxQueryInterface; 77 class FxRequest; 78 class FxRequestBase; 79 struct FxRequestBuffer; 80 struct FxRequestContext; 81 class FxRequestFromLookaside; 82 class FxRequestMemory; 83 struct FxRequestOutputBuffer; 84 struct FxRequestSystemBuffer; 85 class FxRelatedDevice; 86 class FxRelatedDeviceList; 87 class FxResourceCm; 88 class FxResourceIo; 89 class FxSelfManagedIoMachine; 90 class FxSpinLock; 91 class FxString; 92 struct FxStump; 93 class FxSyncRequest; 94 class FxSystemWorkItem; 95 class FxSystemThread; 96 class FxTagTracker; 97 class FxTimer; 98 struct FxTraceInfo; 99 class FxTransactionedList; 100 struct FxTransactionedEntry; 101 class FxUsbDevice; 102 struct FxUsbIdleInfo; 103 class FxUsbInterface; 104 class FxUsbPipe; 105 struct FxUsbPipeContinuousReader; 106 class FxVerifierLock; 107 struct FxWatchdog; 108 class FxWaitLock; 109 class FxWmiProvider; 110 class FxWmiInstance; 111 class FxWmiInstanceExternal; 112 class FxWmiInstanceInternal; 113 struct FxWmiInstanceInternalCallbacks; 114 class FxWmiIrpHandler; 115 class FxWorkItem; 116 117 class IFxHasCallbacks; 118 class IFxMemory; 119 120 enum FxObjectType : UINT32; 121 enum FxWmiInstanceAction : UINT32; 122 enum FxDriverObjectUmFlags : USHORT; 123 enum FxWakeInterruptEvents : UINT32; 124 125 126 PVOID 127 FxObjectHandleAlloc( 128 __in PFX_DRIVER_GLOBALS FxDriverGlobals, 129 __in POOL_TYPE PoolType, 130 __in size_t Size, 131 __in ULONG Tag, 132 __in_opt PWDF_OBJECT_ATTRIBUTES Attributes, 133 __in USHORT ExtraSize, 134 __in FxObjectType ObjectType 135 ); 136 137 #if (FX_CORE_MODE==FX_CORE_USER_MODE) 138 #include "fxforwardum.hpp" 139 #endif 140 141 #endif // _FXFORWARD_HPP_ 142