ReactOS 0.4.15-dev-7788-g1ad9096
fxdeviceapium.cpp File Reference
#include "coreprivshared.hpp"
#include "fxiotarget.hpp"
#include <intsafe.h>
#include "FxDeviceApiUm.tmh"
Include dependency graph for fxdeviceapium.cpp:

Go to the source code of this file.

Functions

 FX_DECLARE_VF_FUNCTION_P4 (NTSTATUS, VerifyWdfDeviceWdmDispatchIrpToIoQueue, _In_ FxDevice *, _In_ MdIrp, _In_ FxIoQueue *, _In_ ULONG)
 
_Must_inspect_result_ __drv_maxIRQL (PASSIVE_LEVEL) NTSTATUS WDFEXPORT(WdfDevicePostEvent)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID _In_ WDF_EVENT_TYPE _In_reads_bytes_ (DataSizeCb) BYTE *Data
 
 FxObjectHandleGetPtrAndGlobals (GetFxDriverGlobals(DriverGlobals), Device, FX_TYPE_DEVICE,(PVOID *) &pDevice, &pFxDriverGlobals)
 
 if (DataSizeCb > 0)
 
 if (WdfEventType !=WdfEventBroadcast)
 
 if (FAILED(hr))
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) WDFAPI NTSTATUS WDFEXPORT(WdfDeviceMapIoSpace)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 Queries information details about a security descriptor.
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK(ERROR_STRING_HW_ACCESS_NOT_ALLOWED,(pDevice->IsDirectHardwareAccessAllowed()==TRUE)), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK_NOT_NULL(PhysicalAddress.QuadPart), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("NumberOfBytes should be > 0",(NumberOfBytes > 0)), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("CacheType incorrect",(CacheType >=MmNonCached &&CacheType< MmMaximumCacheType)), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK_NOT_NULL(PseudoBaseAddress), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Driver attempted to unmap " "incorrect register address, or provided incorrect size", SUCCEEDED(hr)), DriverGlobals->DriverName)
 
if SUCCEEDED (hr)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Incorrect register access mode." " Register mapping to user-mode is not enabled. Set the INF directive" " UmdfRegisterAccessMode to RegisterAccessUsingUserModeMapping" " in driver's INF file to enable Register mapping to user-mode",(pDevice->AreRegistersMappedToUsermode()==TRUE)), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Driver provided incorrect base " "address", SUCCEEDED(hr)), DriverGlobals->DriverName)
 
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _Out_writes_all_opt_ (Count) PVOID Buffer
 
 EventWriteEVENT_UMDF_FX_DDI_READ_FROM_HARDWARE_START (Type, Size, Count)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Incorrect Type parameter",(Type > WdfDeviceHwAccessTargetTypeInvalid &&Type< WdfDeviceHwAccessTargetTypeMaximum)), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Incorrect Size parameter",(Size > WdfDeviceHwAccessTargetSizeInvalid &&Size< WdfDeviceHwAccessTargetSizeMaximum)), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK_NOT_NULL(TargetAddress), DriverGlobals->DriverName)
 
 if (pDevice->IsBufferType(Type))
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Count should be 0",(Count==0)), DriverGlobals->DriverName)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("ULONG64 write is allowed only" "on 64-bit platform",(Size !=WdfDeviceHwAccessTargetSizeUlong64)), DriverGlobals->DriverName)
 
 if (pDevice->IsBufferType(Type) &&pDevice->IsRegister(Type))
 
 if (pDevice->AreRegistersMappedToUsermode() &&pDevice->IsRegister(Type))
 
resources LockResourceTable ()
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Driver attempted to read from invalid port address or " "address range",(SUCCEEDED(hr))), DriverGlobals->DriverName)
 
resources UnlockResourceTable ()
 
deviceStack ReadFromHardware ((UMINT::WDF_DEVICE_HWACCESS_TARGET_TYPE) Type,(UMINT::WDF_DEVICE_HWACCESS_TARGET_SIZE) Size, TargetAddress, &value, Buffer, Count)
 
 EventWriteEVENT_UMDF_FX_DDI_READ_FROM_HARDWARE_END (Type, Size, Count)
 
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _In_ SIZE_T _In_reads_opt_ (Count) PVOID Buffer
 
 EventWriteEVENT_UMDF_FX_DDI_WRITE_TO_HARDWARE_START (Type, Size, Count)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("Driver attempted to write to invalid port address or " "address range",(SUCCEEDED(hr))), DriverGlobals->DriverName)
 
deviceStack WriteToHardware ((UMINT::WDF_DEVICE_HWACCESS_TARGET_TYPE) Type,(UMINT::WDF_DEVICE_HWACCESS_TARGET_SIZE) Size, TargetAddress, Value, Buffer, Count)
 
 EventWriteEVENT_UMDF_FX_DDI_WRITE_TO_HARDWARE_END (Type, Size, Count)
 
 if (!NT_SUCCESS(status))
 
 if (BufferLength==0 &&PropertyBuffer !=NULL)
 
 FxPointerNotNull (pFxDriverGlobals, PropertyMemory)
 
 FxPointerNotNull (pFxDriverGlobals, Type)
 
 FxPointerNotNull (pFxDriverGlobals, ResultLength)
 
 FxPointerNotNull (pFxDriverGlobals, PropertyType)
 
 if (BufferLength !=0 &&PropertyBuffer==NULL)
 
 FxPointerNotNull (pFxDriverGlobals, ReadWriteIoType)
 
 FxPointerNotNull (pFxDriverGlobals, IoControlIoType)
 
pDevice GetDeviceStackIoType (ReadWriteIoType, IoControlIoType)
 
 FxObjectHandleGetPtrAndGlobals (GetFxDriverGlobals(DriverGlobals), Device, FX_TYPE_DEVICE,(PVOID *)&pDevice, &pFxDriverGlobals)
 
 __drv_maxIRQL (DISPATCH_LEVEL) WDFFILEOBJECT WDFEXPORT(WdfDeviceGetFileObject)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
 UNREFERENCED_PARAMETER (FileObject)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), TRAPMSG("The DDI WdfDeviceGetFileObject is not supported for UMDF"), DriverGlobals->DriverName)
 
 FxObjectHandleGetPtr (pFxDriverGlobals, Queue, FX_TYPE_QUEUE,(PVOID *)&pQueue)
 
 FxPointerNotNull (pFxDriverGlobals, Irp)
 
FxIrp fxIrp (Irp)
 
 ASSERT (pDevice->m_ParentDevice !=pQueue->GetDevice())
 
return pDevice m_PkgIo DispatchStep2 (reinterpret_cast< MdIrp >(Irp), NULL, pQueue)
 
 FxPointerNotNull (pFxDriverGlobals, pIrp)
 
 FxPointerNotNull (pFxDriverGlobals, DispatchContext)
 
 FX_VERIFY_WITH_NAME (DRIVER(BadArgument, TODO), CHECK("This function must be called from within a " "EVT_WDFDEVICE_WDM_IRP_DISPATCH callback",((UCHAR) DispatchContext &FX_IN_DISPATCH_CALLBACK)), DriverGlobals->DriverName)
 
return pDevice m_PkgIo DispatchStep1 (reinterpret_cast< MdIrp >(pIrp), DispatchContext)
 

Variables

_Must_inspect_result_ _In_ WDFDEVICE Device
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID EventGuid
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID _In_ WDF_EVENT_TYPE WdfEventType
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID _In_ WDF_EVENT_TYPE _In_ ULONG DataSizeCb
 
NTSTATUS status = pDevice->FxValidateInterfacePropertyData(PropertyData)
 
PFX_DRIVER_GLOBALS pFxDriverGlobals
 
FxDevicepDevice
 
HRESULT hr
 
 else
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PHYSICAL_ADDRESS PhysicalAddress
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PHYSICAL_ADDRESS _In_ SIZE_T NumberOfBytes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PHYSICAL_ADDRESS _In_ SIZE_T _In_ MEMORY_CACHING_TYPE CacheType
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PHYSICAL_ADDRESS _In_ SIZE_T _In_ MEMORY_CACHING_TYPE _Out_ PVOIDPseudoBaseAddress
 
FxCmResListtransResources = pDevice->GetTranslatedResources()
 
IWudfDeviceStack * deviceStack = pDevice->GetDeviceStack()
 
FxCmResListresources = pDevice->GetTranslatedResources()
 
PVOID systemBaseAddress = pDevice->GetSystemAddressFromPseudoAddress(PseudoBaseAddress)
 
 return
 
PVOID usermodeBaseAddress = NULL
 
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE Type
 
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE Size
 
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID TargetAddress
 
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _In_opt_ ULONG Count
 
SIZE_T value = 0
 
PVOID systemAddress = NULL
 
SIZE_T length = 0
 
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _In_ SIZE_T Value
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG BufferLength
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID PropertyBuffer
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ POOL_TYPE PoolType
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory = NULL
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG ResultLength
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG _Out_ PDEVPROPTYPE PropertyType
 
_In_ WDFDEVICE _Out_ WDF_DEVICE_IO_TYPEReadWriteIoType
 
_In_ WDFDEVICE _Out_ WDF_DEVICE_IO_TYPE _Out_ WDF_DEVICE_IO_TYPEIoControlIoType
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN IsPresent
 
IWudfDeviceStack * pDevStack = pDevice->m_DevStack
 
__in WDFDEVICE __in MdFileObject FileObject
 
return NULL
 
_Must_inspect_result_ __in WDFDEVICE __in MdIrp Irp
 
_Must_inspect_result_ __in WDFDEVICE __in MdIrp __in WDFQUEUE Queue
 
_Must_inspect_result_ __in WDFDEVICE __in MdIrp __in WDFQUEUE __in ULONG Flags
 
FxIoQueuepQueue
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP pIrp
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFCONTEXT DispatchContext
 

Function Documentation

◆ __drv_maxIRQL() [1/2]

__drv_maxIRQL ( DISPATCH_LEVEL  )

◆ __drv_maxIRQL() [2/2]

_Must_inspect_result_ __drv_maxIRQL ( PASSIVE_LEVEL  )

◆ _In_reads_bytes_()

◆ _In_reads_opt_()

_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _In_ SIZE_T _In_reads_opt_ ( Count  )

◆ _IRQL_requires_max_()

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 923 of file Messaging.c.

75{
76 PFLT_SERVER_PORT_OBJECT PortObject;
78
79 /* The caller must allow at least one connection */
80 if (MaxConnections == 0)
81 {
83 }
84
85 /* The request must be for a kernel handle */
86 if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87 {
89 }
90
91 /*
92 * Get rundown protection on the target to stop the owner
93 * from unloading whilst this port object is open. It gets
94 * removed in the FltpServerPortClose callback
95 */
97 if (!NT_SUCCESS(Status))
98 {
99 return Status;
100 }
101
102 /* Create the server port object for this filter */
107 NULL,
109 0,
110 0,
111 (PVOID *)&PortObject);
112 if (NT_SUCCESS(Status))
113 {
114 /* Zero out the struct */
115 RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116
117 /* Increment the ref count on the target filter */
119
120 /* Setup the filter port object */
121 PortObject->Filter = Filter;
125 PortObject->Cookie = ServerPortCookie;
126 PortObject->MaxConnections = MaxConnections;
127
128 /* Insert the object */
129 Status = ObInsertObject(PortObject,
130 NULL,
132 0,
133 NULL,
135 if (NT_SUCCESS(Status))
136 {
137 /* Lock the connection list */
139
140 /* Add the new port object to the connection list and increment the count */
143
144 /* Unlock the connection list*/
146 }
147 }
148
149 if (!NT_SUCCESS(Status))
150 {
151 /* Allow the filter to be cleaned up */
153 }
154
155 return Status;
156}
static const INTERNET_PORT ServerPort
Definition: CWebService.cpp:11
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
LONG NTSTATUS
Definition: precomp.h:26
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
#define NULL
Definition: types.h:112
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define InsertTailList(ListHead, Entry)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1877
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1875
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1874
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1876
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
Status
Definition: gdiplustypes.h:25
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
static LONG MaxConnections
#define KernelMode
Definition: asm.h:34
#define FILE_READ_DATA
Definition: nt_native.h:628
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2935
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:1039
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121
LIST_ENTRY mList
Definition: fltmgrint.h:56
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

◆ _Out_writes_all_opt_()

_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _Out_writes_all_opt_ ( Count  )

◆ ASSERT()

ASSERT ( pDevice->m_ParentDevice !  = pQueue->GetDevice())

◆ DispatchStep1()

return pDevice m_PkgIo DispatchStep1 ( reinterpret_cast< MdIrp pIrp,
DispatchContext   
)

◆ DispatchStep2()

return pDevice m_PkgIo DispatchStep2 ( reinterpret_cast< MdIrp Irp,
NULL  ,
pQueue   
)

◆ EventWriteEVENT_UMDF_FX_DDI_READ_FROM_HARDWARE_END()

EventWriteEVENT_UMDF_FX_DDI_READ_FROM_HARDWARE_END ( Type  ,
Size  ,
Count   
)

◆ EventWriteEVENT_UMDF_FX_DDI_READ_FROM_HARDWARE_START()

EventWriteEVENT_UMDF_FX_DDI_READ_FROM_HARDWARE_START ( Type  ,
Size  ,
Count   
)

◆ EventWriteEVENT_UMDF_FX_DDI_WRITE_TO_HARDWARE_END()

EventWriteEVENT_UMDF_FX_DDI_WRITE_TO_HARDWARE_END ( Type  ,
Size  ,
Count   
)

◆ EventWriteEVENT_UMDF_FX_DDI_WRITE_TO_HARDWARE_START()

EventWriteEVENT_UMDF_FX_DDI_WRITE_TO_HARDWARE_START ( Type  ,
Size  ,
Count   
)

◆ FX_DECLARE_VF_FUNCTION_P4()

FX_DECLARE_VF_FUNCTION_P4 ( NTSTATUS  ,
VerifyWdfDeviceWdmDispatchIrpToIoQueue  ,
_In_ FxDevice ,
_In_  MdIrp,
_In_ FxIoQueue ,
_In_  ULONG 
)

◆ FX_VERIFY_WITH_NAME() [1/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("CacheType incorrect",(CacheType >=MmNonCached &&CacheType< MmMaximumCacheType))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [2/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Count should be 0",(Count==0))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [3/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Driver attempted to read from invalid port address or " "address range",(SUCCEEDED(hr)))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [4/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Driver attempted to unmap " "incorrect register address, or provided incorrect size", SUCCEEDED(hr))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [5/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Driver attempted to write to invalid port address or " "address range",(SUCCEEDED(hr)))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [6/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Driver provided incorrect base " "address", SUCCEEDED(hr))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [7/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Incorrect register access mode." " Register mapping to user-mode is not enabled. Set the INF directive" " UmdfRegisterAccessMode to RegisterAccessUsingUserModeMapping" " in driver's INF file to enable Register mapping to user-mode",(pDevice->AreRegistersMappedToUsermode()==TRUE))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [8/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Incorrect Size parameter",(Size > WdfDeviceHwAccessTargetSizeInvalid &&Size< WdfDeviceHwAccessTargetSizeMaximum))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [9/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("Incorrect Type parameter",(Type > WdfDeviceHwAccessTargetTypeInvalid &&Type< WdfDeviceHwAccessTargetTypeMaximum))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [10/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("NumberOfBytes should be > 0",(NumberOfBytes > 0))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [11/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("This function must be called from within a " "EVT_WDFDEVICE_WDM_IRP_DISPATCH callback",((UCHAR) DispatchContext &FX_IN_DISPATCH_CALLBACK))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [12/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK("ULONG64 write is allowed only" "on 64-bit platform",(Size !=WdfDeviceHwAccessTargetSizeUlong64))  ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [13/17]

◆ FX_VERIFY_WITH_NAME() [14/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK_NOT_NULL(PhysicalAddress.QuadPart ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [15/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK_NOT_NULL(PseudoBaseAddress ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [16/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
CHECK_NOT_NULL(TargetAddress ,
DriverGlobals->  DriverName 
)

◆ FX_VERIFY_WITH_NAME() [17/17]

FX_VERIFY_WITH_NAME ( DRIVER(BadArgument, TODO ,
TRAPMSG("The DDI WdfDeviceGetFileObject is not supported for UMDF")  ,
DriverGlobals->  DriverName 
)

◆ fxIrp()

◆ FxObjectHandleGetPtr()

FxObjectHandleGetPtr ( pFxDriverGlobals  ,
Queue  ,
FX_TYPE_QUEUE  ,
(PVOID *)&  pQueue 
)

◆ FxObjectHandleGetPtrAndGlobals() [1/2]

FxObjectHandleGetPtrAndGlobals ( GetFxDriverGlobals(DriverGlobals ,
Device  ,
FX_TYPE_DEVICE  ,
(PVOID *) &  pDevice,
pFxDriverGlobals 
)

◆ FxObjectHandleGetPtrAndGlobals() [2/2]

FxObjectHandleGetPtrAndGlobals ( GetFxDriverGlobals(DriverGlobals ,
Device  ,
FX_TYPE_DEVICE  ,
(PVOID *)&  pDevice,
pFxDriverGlobals 
)

◆ FxPointerNotNull() [1/9]

FxPointerNotNull ( pFxDriverGlobals  ,
DispatchContext   
)

◆ FxPointerNotNull() [2/9]

FxPointerNotNull ( pFxDriverGlobals  ,
IoControlIoType   
)

◆ FxPointerNotNull() [3/9]

FxPointerNotNull ( pFxDriverGlobals  ,
Irp   
)

◆ FxPointerNotNull() [4/9]

FxPointerNotNull ( pFxDriverGlobals  ,
pIrp   
)

◆ FxPointerNotNull() [5/9]

FxPointerNotNull ( pFxDriverGlobals  ,
PropertyMemory   
)

◆ FxPointerNotNull() [6/9]

FxPointerNotNull ( pFxDriverGlobals  ,
PropertyType   
)

◆ FxPointerNotNull() [7/9]

FxPointerNotNull ( pFxDriverGlobals  ,
ReadWriteIoType   
)

◆ FxPointerNotNull() [8/9]

FxPointerNotNull ( pFxDriverGlobals  ,
ResultLength   
)

◆ FxPointerNotNull() [9/9]

FxPointerNotNull ( pFxDriverGlobals  ,
Type   
)

◆ GetDeviceStackIoType()

pDevice GetDeviceStackIoType ( ReadWriteIoType  ,
IoControlIoType   
)

◆ if() [1/9]

if ( NT_SUCCESSstatus)

Definition at line 965 of file fxdeviceapium.cpp.

965 {
966 return status;
967 }
NTSTATUS status

◆ if() [2/9]

if ( BufferLength = 0 && PropertyBuffer == NULL)

Definition at line 1183 of file fxdeviceapium.cpp.

1183 {
1186 "Property buffer size is non-zero, while the buffer is NULL"
1187 ", %!STATUS!", status);
1188 return status;
1189 }
#define TRACINGDEVICE
Definition: dbgtrace.h:58
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
PFX_DRIVER_GLOBALS pFxDriverGlobals
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
Definition: ps.c:97

◆ if() [3/9]

if ( BufferLength  = = 0 && PropertyBuffer != NULL)

Definition at line 969 of file fxdeviceapium.cpp.

969 {
972 "Property buffer size is zero, while the buffer is non-NULL"
973 ", %!STATUS!", status);
974 return status;
975 }

◆ if() [4/9]

if ( DataSizeCb  ,
 
)

Definition at line 111 of file fxdeviceapium.cpp.

111 {
113 }
#define FxPointerNotNull(FxDriverGlobals, Ptr)
Definition: fxmacros.hpp:253

◆ if() [5/9]

if ( FAILED(hr )

Definition at line 136 of file fxdeviceapium.cpp.

136 {
140 "WDFDEVICE 0x%p Failed to post event %!STATUS!",
141 Device, status);
142 }
static NTSTATUS NtStatusFromHr(_In_ IWudfDeviceStack *DevStack, _In_ HRESULT Hr)
Definition: fxdeviceum.cpp:826
IWudfDeviceStack * GetDeviceStack(VOID)
Definition: fxdeviceum.hpp:435
FxDevice * pDevice
HRESULT hr
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474

◆ if() [6/9]

if ( pDevice->  AreRegistersMappedToUsermode) &&pDevice->IsRegister(Type)

Definition at line 587 of file fxdeviceapium.cpp.

587 {
588 PVOID umAddress = NULL;
589
590 //
591 // Acquire the resource validation table lock for read/write as well
592 // since a driver's thread accessing hardware register/port and
593 // race with Map/Unmap operations.
594 //
596
598 length,
599 &umAddress);
600
601 FX_VERIFY_WITH_NAME(DRIVER(BadArgument, TODO),
602 CHECK("Driver attempted to read from invalid register address or "
603 "address range", (SUCCEEDED(hr))),
604 DriverGlobals->DriverName);
605
606 if (pDevice->IsBufferType(Type)) {
608 }
609 else {
610 value = pDevice->ReadRegister(Size, umAddress);
611 }
612
614 }
#define CHECK(hwndTarget)
#define TODO
Definition: SAX2.c:44
Type
Definition: Type.h:7
Definition: bufpool.h:45
HRESULT ValidateRegisterSystemAddressRange(__in PVOID SystemAddress, __in SIZE_T Length, __out_opt PVOID *UsermodeAddress)
__inline void LockResourceTable()
Definition: fxresource.hpp:487
__inline void UnlockResourceTable()
Definition: fxresource.hpp:500
VOID ReadRegisterBuffer(__in WDF_DEVICE_HWACCESS_TARGET_SIZE Size, __in PVOID Register, __out_ecount_full(Count) PVOID Buffer, __in ULONG Count)
Definition: fxdeviceum.hpp:233
BOOL IsBufferType(__in WDF_DEVICE_HWACCESS_TARGET_TYPE Type)
Definition: fxdevice.hpp:2171
SIZE_T ReadRegister(__in WDF_DEVICE_HWACCESS_TARGET_SIZE Size, __in PVOID Register)
Definition: fxdeviceum.hpp:186
_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _In_opt_ ULONG Count
return NULL
PVOID systemAddress
FxCmResList * resources
FX_VERIFY_WITH_NAME(DRIVER(BadArgument, TODO), CHECK(ERROR_STRING_HW_ACCESS_NOT_ALLOWED,(pDevice->IsDirectHardwareAccessAllowed()==TRUE)), DriverGlobals->DriverName)
DriverGlobals
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
#define SUCCEEDED(hr)
Definition: intsafe.h:50
Definition: pdh_main.c:94
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533

◆ if() [7/9]

if ( pDevice->  IsBufferTypeType) &&pDevice->IsRegister(Type)

Definition at line 569 of file fxdeviceapium.cpp.

569 {
570 size_t tmp;
571
572 hr = SizeTMult(Count, length, &tmp);
573 FX_VERIFY_WITH_NAME(DRIVER(BadArgument, TODO), CHECK("Integer overflow occurred "
574 "when computing length of read access", (SUCCEEDED(hr))),
575 DriverGlobals->DriverName);
576
577 length = tmp;
578 }

◆ if() [8/9]

if ( pDevice->  IsBufferTypeType)

Definition at line 537 of file fxdeviceapium.cpp.

537 {
538 FX_VERIFY_WITH_NAME(DRIVER(BadArgument, TODO), CHECK_NOT_NULL(Buffer), DriverGlobals->DriverName);
539 FX_VERIFY_WITH_NAME(DRIVER(BadArgument, TODO), CHECK("Count should be > 0", (Count > 0)),
540 DriverGlobals->DriverName);
541 }

◆ if() [9/9]

if ( WdfEventType = WdfEventBroadcast)

Definition at line 118 of file fxdeviceapium.cpp.

118 {
122 "WDFDEVICE 0x%p WdfEventType %d not expected %!STATUS!",
125 return status;
126 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID _In_ WDF_EVENT_TYPE WdfEventType
FxVerifierDbgBreakPoint(pFxDriverGlobals)

◆ LockResourceTable()

resources LockResourceTable ( )

◆ ReadFromHardware()

deviceStack ReadFromHardware ( (UMINT::WDF_DEVICE_HWACCESS_TARGET_TYPE)  Type,
(UMINT::WDF_DEVICE_HWACCESS_TARGET_SIZE)  Size,
TargetAddress  ,
value,
Buffer  ,
Count   
)

◆ SUCCEEDED()

if SUCCEEDED ( hr  )

Definition at line 340 of file fxdeviceapium.cpp.

340 {
342
344 }
PVOID systemBaseAddress
IWudfDeviceStack * deviceStack
_Must_inspect_result_ _In_ WDFDEVICE _In_ PHYSICAL_ADDRESS _In_ SIZE_T NumberOfBytes

◆ UnlockResourceTable()

resources UnlockResourceTable ( )

◆ UNREFERENCED_PARAMETER()

UNREFERENCED_PARAMETER ( FileObject  )

◆ WriteToHardware()

deviceStack WriteToHardware ( (UMINT::WDF_DEVICE_HWACCESS_TARGET_TYPE)  Type,
(UMINT::WDF_DEVICE_HWACCESS_TARGET_SIZE)  Size,
TargetAddress  ,
Value  ,
Buffer  ,
Count   
)

Variable Documentation

◆ BufferLength

_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ ULONG BufferLength

Definition at line 908 of file fxdeviceapium.cpp.

◆ CacheType

◆ Count

_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _In_ SIZE_T _In_opt_ ULONG Count
Initial value:
{
#define DDI_ENTRY()
Definition: fxglobalskm.h:56

Definition at line 456 of file fxdeviceapium.cpp.

Referenced by if().

◆ DataSizeCb

Initial value:

Definition at line 59 of file fxdeviceapium.cpp.

◆ Device

Definition at line 55 of file fxdeviceapium.cpp.

◆ deviceStack

deviceStack = pDevice->GetDeviceStack()

◆ DispatchContext

Initial value:

Definition at line 1399 of file fxdeviceapium.cpp.

◆ else

else
Initial value:
{
#define STATUS_SUCCESS
Definition: shellext.h:65

Definition at line 143 of file fxdeviceapium.cpp.

◆ EventGuid

◆ FileObject

Initial value:
{
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317

Definition at line 1294 of file fxdeviceapium.cpp.

◆ Flags

◆ hr

hr
Initial value:
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID _In_ WDF_EVENT_TYPE _In_ ULONG DataSizeCb
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID EventGuid

Definition at line 99 of file fxdeviceapium.cpp.

Referenced by _In_reads_opt_(), if(), and LockResourceTable().

◆ IoControlIoType

Initial value:

Definition at line 1222 of file fxdeviceapium.cpp.

Referenced by FxDevice::GetDeviceStackIoType().

◆ Irp

Definition at line 1332 of file fxdeviceapium.cpp.

◆ IsPresent

_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN IsPresent
Initial value:

Definition at line 1254 of file fxdeviceapium.cpp.

Referenced by EHCI_LinkTransferToQueue(), and USBPORT_IsCompanionController().

◆ length

length = 0

Definition at line 491 of file fxdeviceapium.cpp.

◆ NULL

return NULL

Definition at line 1320 of file fxdeviceapium.cpp.

Referenced by _In_reads_opt_(), if(), and LockResourceTable().

◆ NumberOfBytes

_In_ WDFDEVICE _In_ PVOID _In_ SIZE_T NumberOfBytes
Initial value:

Definition at line 162 of file fxdeviceapium.cpp.

Referenced by SUCCEEDED().

◆ pDevice

FxDevice* pDevice

Definition at line 98 of file fxdeviceapium.cpp.

Referenced by _In_reads_opt_(), if(), and SUCCEEDED().

◆ pDevStack

pDevStack = pDevice->m_DevStack

Definition at line 1262 of file fxdeviceapium.cpp.

◆ pFxDriverGlobals

PFX_DRIVER_GLOBALS pFxDriverGlobals

Definition at line 97 of file fxdeviceapium.cpp.

Referenced by _In_reads_opt_(), and if().

◆ PhysicalAddress

_Must_inspect_result_ _In_ WDFDEVICE _In_ PHYSICAL_ADDRESS PhysicalAddress

Definition at line 160 of file fxdeviceapium.cpp.

◆ pIrp

Definition at line 1397 of file fxdeviceapium.cpp.

◆ PoolType

_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ POOL_TYPE PoolType

Definition at line 997 of file fxdeviceapium.cpp.

◆ pQueue

◆ PropertyBuffer

_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Initial value:

Definition at line 910 of file fxdeviceapium.cpp.

◆ PropertyData

◆ PropertyMemory

Definition at line 1001 of file fxdeviceapium.cpp.

◆ PropertyMemoryAttributes

_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes

Definition at line 999 of file fxdeviceapium.cpp.

◆ PropertyType

_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG _Out_ PDEVPROPTYPE PropertyType
Initial value:

Definition at line 1111 of file fxdeviceapium.cpp.

Referenced by FxDevice::_AllocAndQueryPropertyEx(), and FxDevice::_QueryPropertyEx().

◆ PseudoBaseAddress

_In_ WDFDEVICE _In_ PVOID PseudoBaseAddress
Initial value:

Definition at line 166 of file fxdeviceapium.cpp.

Referenced by FxCmResList::MapIoSpaceWorker().

◆ Queue

Definition at line 1334 of file fxdeviceapium.cpp.

◆ ReadWriteIoType

_In_ WDFDEVICE _Out_ WDF_DEVICE_IO_TYPE* ReadWriteIoType

Definition at line 1220 of file fxdeviceapium.cpp.

◆ resources

◆ ResultLength

_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG ResultLength

Definition at line 1109 of file fxdeviceapium.cpp.

◆ return

return

Definition at line 346 of file fxdeviceapium.cpp.

◆ Size

_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE Size

Definition at line 450 of file fxdeviceapium.cpp.

◆ status

status = pDevice->FxValidateInterfacePropertyData(PropertyData)

Definition at line 96 of file fxdeviceapium.cpp.

Referenced by if().

◆ systemAddress

PVOID systemAddress = NULL

◆ systemBaseAddress

PVOID systemBaseAddress = pDevice->GetSystemAddressFromPseudoAddress(PseudoBaseAddress)

Definition at line 291 of file fxdeviceapium.cpp.

Referenced by SUCCEEDED().

◆ TargetAddress

_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID TargetAddress

Definition at line 452 of file fxdeviceapium.cpp.

◆ transResources

FxCmResList * transResources = pDevice->GetTranslatedResources()

Definition at line 198 of file fxdeviceapium.cpp.

◆ Type

_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA _In_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY _Out_ PDEVPROPTYPE Type
Initial value:

Definition at line 448 of file fxdeviceapium.cpp.

◆ usermodeBaseAddress

return usermodeBaseAddress = NULL

Definition at line 385 of file fxdeviceapium.cpp.

◆ value

Definition at line 488 of file fxdeviceapium.cpp.

◆ Value

_In_ WDFDEVICE _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE _In_ PVOID _In_ SIZE_T Value

Definition at line 679 of file fxdeviceapium.cpp.

◆ WdfEventType

Definition at line 57 of file fxdeviceapium.cpp.

Referenced by if().