33#if (FX_CORE_MODE == FX_CORE_USER_MODE)
93#define FX_DISPATCH_IRP_TO_IO_QUEUE_FLAGS_MASK \
94 (WDF_DISPATCH_IRP_TO_IO_QUEUE_INVOKE_INCALLERCTX_CALLBACK |\
95 WDF_DISPATCH_IRP_TO_IO_QUEUE_PREPROCESSED_IRP)
709#if (FX_CORE_MODE == FX_CORE_USER_MODE)
982#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
1031#if (FX_CORE_MODE==FX_CORE_USER_MODE)
1097#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
1575 if (cxDeviceInfo->
Driver == CxDriver) {
1576 return cxDeviceInfo;
1604 GetFirstCxDeviceInfo(
1620 GetNextCxDeviceInfo(
1644 if (CxDeviceInfo !=
NULL) {
1645 return CxDeviceInfo->Index;
1658 if (CxDeviceInfo !=
NULL) {
1659 return CxDeviceInfo->Driver;
1666#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
1689#elif (FX_CORE_MODE == FX_CORE_USER_MODE)
1695 _In_ IWudfDeviceStack* DeviceStack,
1881#if (FX_CORE_MODE == FX_CORE_USER_MODE)
1943#if (FX_CORE_MODE==FX_CORE_USER_MODE)
1958 UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL
1997 _Out_ UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL *RetrievalMode,
2047 _In_ IWudfDeviceStack * DevStack,
2104 return SystemAddress;
2112 return PseudoAddress;
2119 __in WDF_DEVICE_HWACCESS_TARGET_SIZE
Size
2125 case WdfDeviceHwAccessTargetSizeUchar:
2128 case WdfDeviceHwAccessTargetSizeUshort:
2131 case WdfDeviceHwAccessTargetSizeUlong:
2134 case WdfDeviceHwAccessTargetSizeUlong64:
2146 __in WDF_DEVICE_HWACCESS_TARGET_TYPE
Type
2149 if (
Type == WdfDeviceHwAccessTargetTypeRegister ||
2150 Type == WdfDeviceHwAccessTargetTypeRegisterBuffer) {
2159 __in WDF_DEVICE_HWACCESS_TARGET_TYPE
Type
2162 if (
Type == WdfDeviceHwAccessTargetTypePort ||
2163 Type == WdfDeviceHwAccessTargetTypePortBuffer) {
2172 __in WDF_DEVICE_HWACCESS_TARGET_TYPE
Type
2175 if (
Type == WdfDeviceHwAccessTargetTypeRegisterBuffer ||
2176 Type == WdfDeviceHwAccessTargetTypePortBuffer) {
2185 __in WDF_DEVICE_HWACCESS_TARGET_SIZE
Size,
2191 __in WDF_DEVICE_HWACCESS_TARGET_SIZE
Size,
2199 __in WDF_DEVICE_HWACCESS_TARGET_SIZE
Size,
2206 __in WDF_DEVICE_HWACCESS_TARGET_SIZE
Size,
2294#if (FX_CORE_MODE==FX_CORE_KERNEL_MODE)
#define InterlockedExchange
const struct winhelp_callbacks Callbacks
BOOLEAN HasConnectionResources(VOID)
MxDeviceObject m_AttachedDevice
static FxDeviceBase * _SearchForDevice(__in FxObject *Object, __out_opt IFxHasCallbacks **Callbacks)
FxObject * m_CallbackLockObjectPtr
WDF_SYNCHRONIZATION_SCOPE m_SynchronizationScope
WDF_EXECUTION_LEVEL m_ExecutionLevel
virtual _Must_inspect_result_ NTSTATUS AllocateDmaEnablerList(VOID)
virtual VOID AddChildList(__inout FxChildList *List)
__inline MxDeviceObject * GetMxDeviceObject(VOID)
_Must_inspect_result_ NTSTATUS QueryForInterface(__in const GUID *InterfaceType, __out PINTERFACE Interface, __in USHORT Size, __in USHORT Version, __in PVOID InterfaceSpecificData, __in_opt MdDeviceObject TargetDevice=NULL)
NTSTATUS ConfigureConstraints(__in_opt PWDF_OBJECT_ATTRIBUTES ObjectAttributes)
virtual FxIoTarget * GetDefaultIoTarget(VOID)
_Must_inspect_result_ NTSTATUS AllocateTarget(_Out_ FxIoTarget **Target, _In_ BOOLEAN SelfTarget)
ULONG __inline GetDeviceObjectFlags(VOID)
virtual VOID RemoveDmaEnabler(__inout FxDmaEnabler *Enabler)
MxDeviceObject m_DeviceObject
__inline FxDriver * GetDriver(VOID)
_Must_inspect_result_ NTSTATUS QueryInterface(__inout FxQueryInterfaceParams *Params)
__inline _Must_inspect_result_ NTSTATUS AcquireDmaPacketTransaction(VOID)
virtual VOID SetDeviceTelemetryInfoFlags(_In_ FxDeviceInfoFlags Flag)
virtual _Must_inspect_result_ NTSTATUS AddIoTarget(__inout FxIoTarget *IoTarget)
LONG m_DmaPacketTransactionStatus
VOID __inline SetDeviceObjectFlags(_In_ ULONG Flags)
MdDeviceObject __inline GetPhysicalDevice(VOID)
MxDeviceObject m_PhysicalDevice
WDFDEVICE __inline GetHandle(VOID)
virtual VOID RemoveIoTarget(__inout FxIoTarget *IoTarget)
MdDeviceObject __inline GetAttachedDevice(VOID)
virtual VOID RemoveChildList(__inout FxChildList *List)
__inline MdDeviceObject GetAttachedDeviceReference(VOID)
__inline VOID ReleaseDmaPacketTransaction(VOID)
FxCallbackLock * GetCallbackLockPtr(__out_opt FxObject **LockObject)
VOID GetConstraints(__out_opt WDF_EXECUTION_LEVEL *ExecutionLevel, __out_opt WDF_SYNCHRONIZATION_SCOPE *SynchronizationScope)
ULONG __inline GetAttachedDeviceObjectFlags(VOID)
FxCallbackLock * m_CallbackLockPtr
FxDisposeList * m_DisposeList
MdDeviceObject __inline GetDeviceObject(VOID)
VOID AddToDisposeList(__inout FxObject *Object)
virtual VOID AddDmaEnabler(__inout FxDmaEnabler *Enabler)
virtual _Must_inspect_result_ NTSTATUS AllocateEnumInfo(VOID)
static _Must_inspect_result_ NTSTATUS _QueryProperty(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_opt_ PWDFDEVICE_INIT DeviceInit, _In_opt_ FxDevice *Device, _In_opt_ MdDeviceObject RemotePdo, _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty, _In_ ULONG BufferLength, _Out_opt_ PVOID PropertyBuffer, _Out_opt_ PULONG ResultLength)
size_t m_RequestLookasideListElementSize
__inline BOOLEAN IsPnp(VOID)
__inline BOOLEAN IsExclusive(VOID)
__inline VOID SetCallbackFlagsLocked(__in BYTE Flags)
__inline FxPackage * GetDispatchPackage(__in UCHAR MajorFunction)
__inline VOID SetCallbackFlags(__in BYTE Flags)
BOOL IsPort(__in WDF_DEVICE_HWACCESS_TARGET_TYPE Type)
USHORT m_DeviceTelemetryInfoFlags
WDF_DEVICE_POWER_STATE m_CurrentPowerState
FxCmResList * GetTranslatedResources()
virtual _Must_inspect_result_ NTSTATUS AllocateDmaEnablerList(VOID)
WDF_REGISTER_ACCESS_MODE_TYPE m_RegisterAccessMode
virtual _Must_inspect_result_ NTSTATUS AddIoTarget(__inout FxIoTarget *IoTarget)
NTSTATUS CreateSymbolicLink(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_ PCUNICODE_STRING SymbolicLinkName)
FxWmiIrpHandler * m_PkgWmi
static BOOL TransportQueryId(_In_ IWudfDevice *DeviceObject, _In_ DWORD Id, _In_ PVOID DataBuffer, _In_ SIZE_T cbDataBufferSize)
static WUDF_INTERFACE_CONTEXT RemoteInterfaceArrival(_In_ IWudfDevice *DeviceObject, _In_ LPCGUID DeviceInterfaceGuid, _In_ PCWSTR SymbolicLink)
UNICODE_STRING m_DeviceName
__inline ULONG GetDirectTransferThreshold(VOID)
VOID DeleteSymbolicLink(VOID)
VOID DestructorInternal(VOID)
FxCxDeviceInfo * GetCxDeviceInfo(__in FxDriver *CxDriver)
__inline WDF_DEVICE_IO_TYPE GetIoType(VOID)
VOID ReadRegisterBuffer(__in WDF_DEVICE_HWACCESS_TARGET_SIZE Size, __in PVOID Register, __out_ecount_full(Count) PVOID Buffer, __in ULONG Count)
virtual VOID AddChildList(__inout FxChildList *List)
_Must_inspect_result_ NTSTATUS SetFilter(__in BOOLEAN Value)
PVOID GetSystemAddressFromPseudoAddress(__in PVOID PseudoAddress)
__inline FxPkgFdo * GetFdoPkg(VOID)
__inline VOID SetDevicePnpState(__in WDF_DEVICE_PNP_STATE DeviceState)
VOID WriteRegisterBuffer(__in WDF_DEVICE_HWACCESS_TARGET_SIZE Size, __in PVOID Register, __in_ecount(Count) PVOID Buffer, __in ULONG Count)
virtual FxIoTarget * GetDefaultIoTarget(VOID)
static VOID STDCALL _InterfaceDereferenceNoOp(__in_opt PVOID Context)
VOID WriteRegister(__in WDF_DEVICE_HWACCESS_TARGET_SIZE Size, __in PVOID Register, __in SIZE_T Value)
VOID GetDeviceStackIoType(_Out_ WDF_DEVICE_IO_TYPE *ReadWriteIoType, _Out_ WDF_DEVICE_IO_TYPE *IoControlIoType)
__inline CHAR GetStackSize(VOID)
__inline VOID SetDevicePowerPolicyState(__in WDF_DEVICE_POWER_POLICY_STATE DeviceState)
virtual VOID AddDmaEnabler(__inout FxDmaEnabler *Enabler)
BOOL IsRegister(__in WDF_DEVICE_HWACCESS_TARGET_TYPE Type)
BOOLEAN AreRegistersMappedToUsermode(VOID)
static _Must_inspect_result_ NTSTATUS _QueryPropertyEx(_In_ PFX_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDFDEVICE_INIT DeviceInit, _In_opt_ FxDevice *Device, _In_ PVOID PropertyData, _In_ FxPropertyType FxPropertyType, _In_ ULONG BufferLength, _Out_ PVOID PropertyBuffer, _Out_ PULONG ResultLength, _Out_ PDEVPROPTYPE PropertyType)
USHORT GetDeviceTelemetryInfoFlags(VOID)
WDF_DEVICE_IO_TYPE m_IoctlIoType
VOID WmiPkgDeregister(VOID)
WDF_DEVICE_PNP_STATE m_CurrentPnpState
BOOLEAN IsRemoveLockEnabledForIo(VOID)
_Must_inspect_result_ NTSTATUS DispatchPreprocessedIrp(__in MdIrp Irp, __in PVOID DispatchContext)
BOOLEAN IsDirectHardwareAccessAllowed()
static FxDeviceRemLockAction __inline _RequiresRemLock(__in UCHAR MajorCode, __in UCHAR MinorCode)
static MdCompletionRoutineType _CompletionRoutineForRemlockMaintenance
CfxDevice * m_ParentDevice
__inline PWDF_OBJECT_ATTRIBUTES GetRequestAttributes(VOID)
__inline VOID ClearCallbackFlagsLocked(__in BYTE Flags)
__inline VOID SetParentWaitingOnRemoval(VOID)
VOID ConfigureAutoForwardCleanupClose(__in PWDFDEVICE_INIT DeviceInit)
WDF_OBJECT_ATTRIBUTES m_RequestAttributes
FxInterruptThreadpool * m_InteruptThreadpool
_Must_inspect_result_ NTSTATUS FxValidateInterfacePropertyData(_In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData)
FxDefaultIrpHandler * m_PkgDefault
static NTSTATUS NtStatusFromHr(_In_ IWudfDeviceStack *DevStack, _In_ HRESULT Hr)
__inline UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL GetRetrievalMode(VOID)
__inline BOOLEAN IsCxDriverInIoPath(__in FxDriver *CxDriver)
static FxDevice * GetFxDevice(__in MdDeviceObject DeviceObject)
CHAR m_DefaultPriorityBoost
friend VOID GetTriageInfo(VOID)
NPAGED_LOOKASIDE_LIST m_RequestLookasideList
__inline WDF_DEVICE_POWER_POLICY_STATE GetDevicePowerPolicyState()
static VOID DispatchWithLockUm(_In_ MdDeviceObject DeviceObject, _In_ MdIrp Irp, _In_opt_ IUnknown *Context)
__inline FxDriver * GetCxDriver(__in FxCxDeviceInfo *CxDeviceInfo)
MdDeviceObject __inline GetSafePhysicalDevice(VOID)
__inline BOOLEAN IsPdo(VOID)
_Must_inspect_result_ NTSTATUS OpenSettingsKey(__out HANDLE *Key, __in ACCESS_MASK DesiredAccess=STANDARD_RIGHTS_ALL)
VOID SetCleanupFromFailedCreate(BOOLEAN Value)
FxInterruptThreadpool * GetInterruptThreadpool(VOID)
__inline BYTE GetCallbackFlags(VOID)
static void PoFxDevicePowerRequired(_In_ MdDeviceObject DeviceObject)
UNICODE_STRING m_MofResourceName
_Must_inspect_result_ NTSTATUS PdoInitialize(__in PWDFDEVICE_INIT DeviceInit)
FxMessageDispatch * m_Dispatcher
VOID FinishInitializing(VOID)
FxPkgGeneral * m_PkgGeneral
static FxWdmDeviceExtension * _GetFxWdmExtension(__in MdDeviceObject DeviceObject)
static _Must_inspect_result_ NTSTATUS _AcquireOptinRemoveLock(__in MdDeviceObject DeviceObject, __in MdIrp Irp)
NTSTATUS UpdateInterruptThreadpoolLimits(VOID)
static void RemoteInterfaceRemoval(_In_ IWudfDevice *DeviceObject, _In_ WUDF_INTERFACE_CONTEXT RemoteInterfaceID)
VOID RetrieveDeviceRegistrySettings(VOID)
static void PoFxDevicePowerNotRequired(_In_ MdDeviceObject DeviceObject)
VOID FxLogDeviceStartTelemetryEvent(VOID)
__inline BYTE GetCallbackFlagsLocked(VOID)
static _Must_inspect_result_ NTSTATUS _ValidateOpenKeyParams(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_opt_ PWDFDEVICE_INIT DeviceInit, _In_opt_ FxDevice *Device)
BOOLEAN m_ParentWaitingOnChild
FxIoTargetSelf * GetSelfIoTarget(VOID)
ULONG m_DirectTransferThreshold
BOOLEAN IsInterruptAccessAllowed(VOID)
virtual VOID RemoveDmaEnabler(__inout FxDmaEnabler *Enabler)
WDF_DEVICE_IO_TYPE m_ReadWriteIoType
MdRemoveLock GetRemoveLock(VOID)
VOID InstallPackage(__inout FxPackage *Package)
LIST_ENTRY m_FileObjectListHead
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDFDEVICE_INIT *DeviceInit, __in_opt PWDF_OBJECT_ATTRIBUTES DeviceAttributes, __out FxDevice **Device)
IWudfDeviceStack2 * GetDeviceStack2(VOID)
__inline WDF_DEVICE_IO_TYPE GetPreferredRWTransferMode(VOID)
_Must_inspect_result_ NTSTATUS PostInitialize(VOID)
virtual VOID RemoveIoTarget(__inout FxIoTarget *IoTarget)
static VOID GetPreferredTransferMode(_In_ MdDeviceObject DeviceObject, _Out_ UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL *RetrievalMode, _Out_ WDF_DEVICE_IO_TYPE *RWPreference, _Out_ WDF_DEVICE_IO_TYPE *IoctlPreference)
_Must_inspect_result_ NTSTATUS PreprocessIrp(__in MdIrp Irp)
static _Must_inspect_result_ NTSTATUS STDCALL DispatchWithLock(__in MdDeviceObject DeviceObject, __in MdIrp OriginalIrp)
__inline WDF_DEVICE_POWER_STATE GetDevicePowerState()
__inline CHAR GetDefaultPriorityBoost(VOID)
VOID SetFilterIoType(VOID)
WDF_FILEOBJECT_CLASS m_FileObjectClass
_Must_inspect_result_ NTSTATUS AssignProperty(_In_ PVOID PropertyData, _In_ FxPropertyType FxPropertyType, _In_ DEVPROPTYPE Type, _In_ ULONG BufferLength, _In_opt_ PVOID PropertyBuffer)
__inline BOOLEAN IsLegacy(VOID)
_Must_inspect_result_ NTSTATUS DeleteDeviceFromFailedCreateNoDelete(__in NTSTATUS FailedStatus, __in BOOLEAN UseStateMachine)
BOOLEAN m_DeviceObjectDeleted
BOOLEAN IsInterfaceRegistered(_In_ const GUID *InterfaceClassGUID, _In_opt_ PCUNICODE_STRING RefString)
VOID SetInterruptThreadpool(_In_ FxInterruptThreadpool *Pool)
PVOID GetPseudoAddressFromSystemAddress(__in PVOID SystemAddress)
VOID RetrieveDeviceInfoRegistrySettings(_Out_ PCWSTR *GroupId, _Out_ PUMDF_DRIVER_REGSITRY_INFO DeviceRegInfo)
virtual VOID RemoveChildList(__inout FxChildList *List)
static VOID DispatchUm(_In_ MdDeviceObject DeviceObject, _In_ MdIrp Irp, _In_opt_ IUnknown *Context)
__inline BOOLEAN IsCxInIoPath(VOID)
LIST_ENTRY m_PreprocessInfoListHead
virtual BOOLEAN Dispose(VOID)
__inline BOOLEAN IsFilter()
IWudfDeviceStack * GetDeviceStack(VOID)
static _Must_inspect_result_ NTSTATUS _AllocAndQueryProperty(_In_ PFX_DRIVER_GLOBALS Globals, _In_opt_ PWDFDEVICE_INIT DeviceInit, _In_opt_ FxDevice *Device, _In_opt_ MdDeviceObject RemotePdo, _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty, _In_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, _Out_ WDFMEMORY *PropertyMemory)
NTSTATUS WmiPkgRegister(VOID)
NTSTATUS ProcessWmiPowerQueryOrSetData(_In_ RdWmiPowerAction Action, _Out_ BOOLEAN *QueryResult)
PVOID AllocateRequestMemory(__in_opt PWDF_OBJECT_ATTRIBUTES Attributes)
UNICODE_STRING m_SymbolicLinkName
__inline WDF_DEVICE_IO_TYPE GetIoTypeForReadWriteBufferAccess(VOID)
BOOLEAN m_SelfIoTargetNeeded
BOOLEAN m_CleanupFromFailedCreate
static ULONG __inline GetLength(__in WDF_DEVICE_HWACCESS_TARGET_SIZE Size)
static _Must_inspect_result_ NTSTATUS _AllocAndQueryPropertyEx(_In_ PFX_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDFDEVICE_INIT DeviceInit, _In_opt_ FxDevice *Device, _In_ PVOID PropertyData, _In_ FxPropertyType FxPropertyType, _In_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, _Out_ WDFMEMORY *PropertyMemory, _Out_ PDEVPROPTYPE PropertyType)
WDF_FILE_OBJECT_POLICY_TYPE m_FileObjectPolicy
IWudfDeviceStack * m_DevStack
BOOL IsBufferType(__in WDF_DEVICE_HWACCESS_TARGET_TYPE Type)
virtual _Must_inspect_result_ NTSTATUS AllocateEnumInfo(VOID)
_Must_inspect_result_ NTSTATUS FdoInitialize(__in PWDFDEVICE_INIT DeviceInit)
__inline VOID SetFileObjectClass(__in WDF_FILEOBJECT_CLASS FileObjectClass)
__inline VOID SetStackSize(_In_ CHAR Size)
FxSpinLockTransactionedList m_IoTargetsList
_Must_inspect_result_ NTSTATUS OpenDevicemapKeyWorker(_In_ PFX_DRIVER_GLOBALS pFxDriverGlobals, _In_ PCUNICODE_STRING KeyName, _In_ ACCESS_MASK DesiredAccess, _In_ FxRegKey *pKey)
_Must_inspect_result_ NTSTATUS CreateDevice(__in PWDFDEVICE_INIT DeviceInit)
static __inline CCHAR GetCxDriverIndex(__in FxCxDeviceInfo *CxDeviceInfo)
WDF_FS_CONTEXT_USE_POLICY_TYPE m_FsContextUsePolicy
__inline VOID SetDevicePowerState(__in WDF_DEVICE_POWER_STATE DeviceState)
WDF_DEVICE_POWER_POLICY_STATE m_CurrentPowerPolicyState
SIZE_T ReadRegister(__in WDF_DEVICE_HWACCESS_TARGET_SIZE Size, __in PVOID Register)
BOOLEAN m_PowerPageableCapable
__inline FxPkgPdo * GetPdoPkg(VOID)
__inline WDF_FILEOBJECT_CLASS GetFileObjectClass(VOID)
LIST_ENTRY m_CxDeviceInfoListHead
static __inline NTSTATUS _GetDeviceProperty(_In_ MdDeviceObject DeviceObject, _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty, _In_ ULONG BufferLength, _Out_opt_ PVOID PropertyBuffer, _Out_ PULONG ResultLength)
__inline WDF_DEVICE_IO_TYPE GetPreferredIoctlTransferMode(VOID)
UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL m_RetrievalMode
WDF_DIRECT_HARDWARE_ACCESS_TYPE m_DirectHardwareAccess
VOID ControlDeviceDelete(VOID)
__inline VOID ClearCallbackFlags(__in BYTE Flags)
static _Must_inspect_result_ NTSTATUS _OpenKey(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals, _In_opt_ PWDFDEVICE_INIT DeviceInit, _In_opt_ FxDevice *Device, _In_ ULONG DeviceInstanceKeyType, _In_ ACCESS_MASK DesiredAccess, _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes, _Out_ WDFKEY *Key)
_Must_inspect_result_ NTSTATUS DeleteDeviceFromFailedCreate(__in NTSTATUS FailedStatus, __in BOOLEAN UseStateMachine)
_Must_inspect_result_ NTSTATUS ControlDeviceInitialize(__in PWDFDEVICE_INIT DeviceInit)
VOID FreeRequestMemory(__in FxRequest *Request)
static VOID STDCALL _InterfaceReferenceNoOp(__in_opt PVOID Context)
__inline WDF_DEVICE_PNP_STATE GetDevicePnpState()
__inline BOOLEAN IsPowerPageableCapable(VOID)
__inline BOOLEAN IsFdo(VOID)
BOOLEAN m_AutoForwardCleanupClose
VOID SetInitialState(VOID)
virtual _Must_inspect_result_ NTSTATUS QueryInterface(__inout FxQueryInterfaceParams *Params)
static __inline NTSTATUS _OpenDeviceRegistryKey(_In_ MdDeviceObject DeviceObject, _In_ ULONG DevInstKeyType, _In_ ACCESS_MASK DesiredAccess, _Out_ PHANDLE DevInstRegKey)
static const CHAR m_PriorityBoosts[]
virtual VOID SetDeviceTelemetryInfoFlags(_In_ FxDeviceInfoFlags Flag)
VOID Add(FxObject *object)
virtual FxIoTarget * GetDefaultIoTarget(VOID)
FxIoTarget * m_DefaultTarget
FxMpDevice(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in FxDriver *Driver, __in MdDeviceObject DeviceObject, __in MdDeviceObject AttachedDevice, __in MdDeviceObject PDO)
virtual VOID DeleteObject(VOID)
VOID __inline DestroyChildren(VOID)
__drv_restoresIRQL KIRQL __in BOOLEAN Unlock
VOID MarkDisposeOverride(__in FxObjectLockState State=ObjectLock)
__inline VOID CallCleanup(VOID)
FxCmResList * GetTranslatedResourceList(VOID)
VOID SetStackSize(_In_ CCHAR Size)
__inline MdDeviceObject GetObject(VOID)
VOID SetFlags(ULONG Flags)
static __inline MdDeviceObject MxGetAttachedDeviceReference(__in MdDeviceObject DriverObject)
static __inline VOID MxDereferenceObject(__in PVOID Object)
static __inline VOID MxReferenceObject(__in PVOID Object)
_In_ PTRANSFER_PACKET _In_ ULONG _In_ PIRP OriginalIrp
CLIPBOARD_GLOBALS Globals
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
static const WCHAR SymbolicLink[]
#define IsListEmpty(ListHead)
PFX_DRIVER_GLOBALS pFxDriverGlobals
return pObject GetObjectHandle()
FxDmaPacketTransactionStatus
@ FxDmaPacketTransactionCompleted
@ FxDmaPacketTransactionPending
BOOLEAN __inline FxIsFileObjectOptional(__in WDF_FILEOBJECT_CLASS FileObjectClass)
@ FxDeviceRemLockRequired
@ FxDeviceRemLockTestValid
@ FxDeviceRemLockNotRequired
WDF_FILEOBJECT_CLASS __inline FxFileObjectClassNormalize(__in WDF_FILEOBJECT_CLASS FileObjectClass)
pDevice InvalidateDeviceState()
return pDevice GetDriver() -> GetHandle()
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
_In_ WDFDEVICE _Out_ WDF_DEVICE_IO_TYPE _Out_ WDF_DEVICE_IO_TYPE * IoControlIoType
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG _Out_ PDEVPROPTYPE PropertyType
ioTypeConfig ReadWriteIoType
__in WDFDEVICE __in CONST GUID __in_opt PCUNICODE_STRING RefString
GLuint GLsizei GLsizei * length
#define InterlockedCompareExchange
WUDF_IO_COMPLETION_ROUTINE MdCompletionRoutineType
UINT64 WUDF_INTERFACE_CONTEXT
#define _Must_inspect_result_
#define STANDARD_RIGHTS_ALL
#define UNREFERENCED_PARAMETER(P)
static unsigned __int64 next
#define IRP_MJ_DEVICE_CONTROL
#define __out_ecount_full(size)
ULONG RemoveLockOptionFlags
WUDF_IO_REMOVE_LOCK IoRemoveLock
struct _LIST_ENTRY * Flink
#define LockObject(Object)
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDRIVER Driver
_In_ PWDFDEVICE_INIT DeviceInit
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT _Inout_ PIRP _In_ WDFCONTEXT DispatchContext
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT PhysicalDevice
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG DeviceInstanceKeyType
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
enum _WDF_DEVICE_POWER_STATE WDF_DEVICE_POWER_STATE
enum _WDF_FILEOBJECT_CLASS WDF_FILEOBJECT_CLASS
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
enum _WDF_DEVICE_POWER_POLICY_STATE WDF_DEVICE_POWER_POLICY_STATE
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
_Must_inspect_result_ _Inout_ PWDFDEVICE_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES DeviceAttributes
enum _WDF_DEVICE_IO_TYPE WDF_DEVICE_IO_TYPE
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID * InterfaceClassGUID
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
enum _WDF_DEVICE_PNP_STATE WDF_DEVICE_PNP_STATE
@ WdfFileObjectCanBeOptional
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
WDF_EXTERN_C_START enum _WDF_EXECUTION_LEVEL WDF_EXECUTION_LEVEL
enum _WDF_SYNCHRONIZATION_SCOPE WDF_SYNCHRONIZATION_SCOPE
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
_Must_inspect_result_ _In_ WDFCMRESLIST List
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH * Dispatch
_Must_inspect_result_ _In_ ULONG Flags
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
_In_ ULONG _In_ ACCESS_MASK _Out_ PHANDLE DevInstRegKey
_In_ ULONG DevInstKeyType
#define IRP_MN_REMOVE_DEVICE
#define IRP_MJ_SYSTEM_CONTROL
#define IRP_MJ_INTERNAL_DEVICE_CONTROL