ReactOS  0.4.15-dev-3187-ge372f2b
WDFDEVICE_INIT Struct Reference

#include <fxdeviceinit.hpp>

Inheritance diagram for WDFDEVICE_INIT:
Collaboration diagram for WDFDEVICE_INIT:

Public Member Functions

 WDFDEVICE_INIT (__in FxDriver *Driver)
 
 ~WDFDEVICE_INIT ()
 
VOID SetPdo (__in FxDevice *Parent)
 
BOOLEAN IsFdoInit (VOID)
 
BOOLEAN IsNotFdoInit (VOID)
 
BOOLEAN IsPdoInit (VOID)
 
BOOLEAN IsNotPdoInit (VOID)
 
BOOLEAN IsNotControlDeviceInit (VOID)
 
BOOLEAN IsControlDeviceInit (VOID)
 
BOOLEAN HasName (VOID)
 
BOOLEAN ShouldCreateSecure (VOID)
 
BOOLEAN IsPwrPolOwner (VOID)
 
_Must_inspect_result_ NTSTATUS AssignName (__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in const UNICODE_STRING *Name)
 
VOID AddCxDeviceInit (__in PWDFCXDEVICE_INIT CxDeviceInit)
 
VOID AssignIoType (_In_ PWDF_IO_TYPE_CONFIG IoTypeConfig)
 
- Public Member Functions inherited from FxStump
PVOID operator new (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals)
 
PVOID operator new (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals, __in POOL_TYPE PoolType)
 
VOID operator delete (__in PVOID pointer)
 
PVOID operator new[] (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals)
 
VOID operator delete[] (__in PVOID pointer)
 

Static Public Member Functions

static _Must_inspect_result_ PWDFDEVICE_INIT _AllocateControlDeviceInit (__in FxDriver *Driver, __in const UNICODE_STRING *SDDLString)
 

Public Attributes

PFX_DRIVER_GLOBALS DriverGlobals
 
FxDriverDriver
 
FxDeviceCreatedDevice
 
BOOLEAN CreatedOnStack
 
BOOLEAN Exclusive
 
BOOLEAN PowerPageable
 
BOOLEAN Inrush
 
BOOLEAN RequiresSelfIoTarget
 
ULONG RemoveLockOptionFlags
 
FxDeviceInitType InitType
 
WDF_DEVICE_IO_TYPE ReadWriteIoType
 
DEVICE_TYPE DeviceType
 
FxStringDeviceName
 
ULONG Characteristics
 
FileObjectInit FileObject
 
SecurityInit Security
 
WDF_OBJECT_ATTRIBUTES RequestAttributes
 
FxIrpPreprocessInfoPreprocessInfo
 
PFN_WDF_IO_IN_CALLER_CONTEXT IoInCallerContextCallback
 
WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
 
PnpPowerInit PnpPower
 
FdoInit Fdo
 
PdoInit Pdo
 
ControlInit Control
 
LIST_ENTRY CxDeviceInitListHead
 
WDF_DEVICE_IO_TYPE DeviceControlIoType
 
ULONG DirectTransferThreshold
 
IWudfDeviceStack * DevStack
 
PWSTR KernelDeviceName
 
HKEY PdoKey
 
PWSTR ConfigRegistryPath
 
PWSTR DevInstanceID
 
ULONG DriverID
 

Additional Inherited Members

- Protected Member Functions inherited from FxStump
 FxStump (VOID)
 

Detailed Description

Definition at line 100 of file fxdeviceinit.hpp.

Constructor & Destructor Documentation

◆ WDFDEVICE_INIT()

WDFDEVICE_INIT::WDFDEVICE_INIT ( __in FxDriver Driver)

Definition at line 30 of file fxdeviceinit.cpp.

32  :
33  Driver(Driver)
34 {
35  DriverGlobals = Driver->GetDriverGlobals();
36 
39  Inrush = FALSE;
42 
44  FileObject.AutoForwardCleanupClose = WdfUseDefault;
45 
46  DeviceName = NULL;
48 
50  Exclusive = FALSE;
51 
53 
55 
61 
63 
65 
66  RtlZeroMemory(&Fdo.EventCallbacks, sizeof(Fdo.EventCallbacks));
67  RtlZeroMemory(&Fdo.ListConfig, sizeof(Fdo.ListConfig));
68  RtlZeroMemory(&Fdo.ListConfigAttributes, sizeof(Fdo.ListConfigAttributes));
69  Fdo.Filter = FALSE;
70 
72  Pdo.Raw = FALSE;
73  Pdo.Static = FALSE;
74  Pdo.DeviceID = NULL;
77  Pdo.DefaultLocale = 0x0;
80 
81  RtlZeroMemory(&Security, sizeof(Security));
82 
84 
86 
88 
90 
92 
93 #if (FX_CORE_MODE == FX_CORE_USER_MODE)
94 
97 
98  DevStack = NULL;
99 
101 
102  PdoKey = NULL;
103 
105 
106  DriverID = 0;
107 #endif
108 }
SecurityInit Security
#define TRUE
Definition: types.h:120
_In_ PWDFDEVICE_INIT _In_ WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
Definition: wdfdevice.h:4362
FxPowerPolicyStateCallback * PowerPolicyStateCallbacks
FxDevice * CreatedDevice
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3272
#define FALSE
Definition: types.h:117
BOOLEAN RequiresSelfIoTarget
FxDeviceInitType InitType
_In_ PWDFDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
Definition: wdfdevice.h:3428
DeviceType
Definition: mmdrv.h:41
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
FxIrpPreprocessInfo * PreprocessInfo
ULONG DirectTransferThreshold
FxDriver * Driver
_Must_inspect_result_ _In_ WDFDEVICE Fdo
Definition: wdffdo.h:461
PFX_DRIVER_GLOBALS DriverGlobals
WDF_POWER_POLICY_EVENT_CALLBACKS PolicyEventCallbacks
FxString * InstanceID
BOOLEAN CreatedOnStack
WDF_PNPPOWER_EVENT_CALLBACKS PnpPowerEventCallbacks
FxString * DeviceID
LIST_ENTRY CxDeviceInitListHead
FxDeviceDescriptionEntry * DescriptionEntry
PFN_WDF_IO_IN_CALLER_CONTEXT IoInCallerContextCallback
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
WDF_PDO_EVENT_CALLBACKS EventCallbacks
PnpPowerInit PnpPower
#define NULL
Definition: types.h:112
#define FILE_DEVICE_UNKNOWN
Definition: winioctl.h:140
FxPowerStateCallback * PowerStateCallbacks
FxPnpStateCallback * PnpStateCallbacks
WDF_TRI_STATE PowerPolicyOwner
WDF_DEVICE_IO_TYPE DeviceControlIoType
BOOLEAN PowerPageable
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define FILE_DEVICE_SECURE_OPEN
Definition: cdrw_usr.h:46
BOOLEAN ForwardRequestToParent
FxString * ContainerID
IWudfDeviceStack * DevStack
_Must_inspect_result_ _In_ WDFDRIVER Driver
Definition: wdfcontrol.h:83
ULONG RemoveLockOptionFlags
WDF_DEVICE_IO_TYPE ReadWriteIoType

Referenced by _AllocateControlDeviceInit().

◆ ~WDFDEVICE_INIT()

WDFDEVICE_INIT::~WDFDEVICE_INIT ( )

Definition at line 110 of file fxdeviceinit.cpp.

111 {
113 
116  }
117 
120  }
121 
124  }
125 
126  if (DeviceName != NULL) {
127  DeviceName->DeleteObject();
128  }
129  if (Pdo.DeviceID != NULL) {
131  }
132  if (Pdo.InstanceID != NULL) {
134  }
135  if (Pdo.ContainerID != NULL) {
137  }
138 
140 
141  if (Security.Sddl != NULL) {
143  }
144  if (PreprocessInfo != NULL) {
145  delete PreprocessInfo;
146  }
147 
150  PWDFCXDEVICE_INIT cxInit;
151  cxInit = CONTAINING_RECORD(next, WDFCXDEVICE_INIT, ListEntry);
153  delete cxInit;
154  }
155 
156 #if (FX_CORE_MODE == FX_CORE_USER_MODE)
157  delete [] KernelDeviceName;
158  delete [] ConfigRegistryPath;
159  delete [] DevInstanceID;
160 
161  if (PdoKey != NULL) {
163  PdoKey = NULL;
164  }
165 #endif
166 
167 }
virtual VOID DeleteObject(VOID)
SecurityInit Security
SINGLE_LIST_ENTRY DeviceText
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
Definition: rtlfuncs.h:57
FxPowerPolicyStateCallback * PowerPolicyStateCallbacks
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3272
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
FORCEINLINE PLIST_ENTRY RemoveHeadList(_Inout_ PLIST_ENTRY ListHead)
Definition: rtlfuncs.h:128
FxString * Sddl
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
FxIrpPreprocessInfo * PreprocessInfo
FxString * InstanceID
static void _CleanupList(__inout PSINGLE_LIST_ENTRY Head)
FxString * DeviceID
Definition: typedefs.h:119
LIST_ENTRY CxDeviceInitListHead
static unsigned __int64 next
Definition: rand_nt.c:6
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
PWSTR ConfigRegistryPath
PnpPowerInit PnpPower
#define NULL
Definition: types.h:112
FxPowerStateCallback * PowerStateCallbacks
FxPnpStateCallback * PnpStateCallbacks
FxString * ContainerID

Member Function Documentation

◆ _AllocateControlDeviceInit()

return WDFDEVICE_INIT::_AllocateControlDeviceInit ( __in FxDriver Driver,
__in const UNICODE_STRING SDDLString 
)
static

Definition at line 202 of file fxdeviceinit.cpp.

206 {
210 
211  pFxDriverGlobals = Driver->GetDriverGlobals();
212 
214 
215  if (pInit == NULL) {
217  "WDFDRIVER 0x%p couldn't allocate WDFDEVICE_INIT",
218  Driver);
219  return NULL;
220  }
221 
223 
224  //
225  // Since we require and SDLL string, initialize to autogenerated device
226  // name so the driver doesn't have to worry about creating a name if they
227  // don't want it (useful if creating a DO for WMI tracing for instance).
228  //
230 
233 
234  if (pInit->Security.Sddl != NULL) {
236  }
237  else {
241  "WDFDRIVER 0x%p couldn't create Security String object %!STATUS!",
242  Driver, status);
243  }
244 
245  if (!NT_SUCCESS(status)) {
246  delete pInit;
247  pInit = NULL;
248  }
249 
250  return pInit;
251 }
SecurityInit Security
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
LONG NTSTATUS
Definition: precomp.h:26
FxDeviceInitType InitType
#define FILE_AUTOGENERATED_DEVICE_NAME
Definition: iotypes.h:138
FxString * Sddl
#define TRACINGDEVICE
Definition: dbgtrace.h:58
PFX_DRIVER_GLOBALS pFxDriverGlobals
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ NTSTATUS Assign(__in PCWSTR SourceString)
Definition: fxstring.cpp:57
WDFDEVICE_INIT(__in FxDriver *Driver)
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
PWDFDEVICE_INIT pInit
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define NULL
Definition: types.h:112
_Must_inspect_result_ _In_ WDFDRIVER _In_ CONST UNICODE_STRING * SDDLString
Definition: wdfcontrol.h:83
#define WDF_NO_OBJECT_ATTRIBUTES
Definition: wdftypes.h:105
_Must_inspect_result_ _In_ WDFDRIVER Driver
Definition: wdfcontrol.h:83
static SERVICE_STATUS status
Definition: service.c:31
Definition: ps.c:97

◆ AddCxDeviceInit()

VOID WDFDEVICE_INIT::AddCxDeviceInit ( __in PWDFCXDEVICE_INIT  CxDeviceInit)

Definition at line 317 of file fxdeviceinit.cpp.

320 {
322 }
LIST_ENTRY ListEntry
FORCEINLINE VOID InsertHeadList(_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
Definition: rtlfuncs.h:201
LIST_ENTRY CxDeviceInitListHead
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT CxDeviceInit
Definition: fxdynamics.h:1012

◆ AssignIoType()

VOID WDFDEVICE_INIT::AssignIoType ( _In_ PWDF_IO_TYPE_CONFIG  IoTypeConfig)

Definition at line 64 of file fxdeviceinitkm.cpp.

67 {
69 
70  if (IoTypeConfig->ReadWriteIoType == WdfDeviceIoUndefined ||
71  IoTypeConfig->ReadWriteIoType > WdfDeviceIoDirect) {
75  "Out of range Read/Write IoType %d, %!status!",
76  IoTypeConfig->ReadWriteIoType, status);
78  return;
79  }
80 
81  ReadWriteIoType = IoTypeConfig->ReadWriteIoType;
82 
83  return;
84 }
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
LONG NTSTATUS
Definition: precomp.h:26
#define TRACINGDEVICE
Definition: dbgtrace.h:58
_In_ PWDFDEVICE_INIT _In_ PWDF_IO_TYPE_CONFIG IoTypeConfig
Definition: wdfdevice.h:4391
PFX_DRIVER_GLOBALS DriverGlobals
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
static SERVICE_STATUS status
Definition: service.c:31
WDF_DEVICE_IO_TYPE ReadWriteIoType
FxVerifierDbgBreakPoint(pFxDriverGlobals)
Definition: ps.c:97

◆ AssignName()

_Must_inspect_result_ NTSTATUS WDFDEVICE_INIT::AssignName ( __in PFX_DRIVER_GLOBALS  FxDriverGlobals,
__in const UNICODE_STRING Name 
)

Definition at line 171 of file fxdeviceinit.cpp.

175 {
176  if (DeviceName == NULL) {
177  DeviceName = new(FxDriverGlobals, WDF_NO_OBJECT_ATTRIBUTES)
178  FxString(FxDriverGlobals);
179 
180  if (DeviceName == NULL) {
182 
184 
186  "DeviceName is NULL, %!STATUS!", status);
187 
188  return status;
189  }
190 
191  //
192  // Clear out the autogenerate flag since we have a specific name
193  //
195  }
196 
197  return DeviceName->Assign(Name);
198 }
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
LONG NTSTATUS
Definition: precomp.h:26
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3272
#define FILE_AUTOGENERATED_DEVICE_NAME
Definition: iotypes.h:138
#define TRACINGDEVICE
Definition: dbgtrace.h:58
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define NULL
Definition: types.h:112
#define WDF_NO_OBJECT_ATTRIBUTES
Definition: wdftypes.h:105
static SERVICE_STATUS status
Definition: service.c:31
Definition: ps.c:97

◆ HasName()

BOOLEAN WDFDEVICE_INIT::HasName ( VOID  )
inline

Definition at line 161 of file fxdeviceinit.hpp.

164  {
165  if (DeviceName != NULL ||
167  return TRUE;
168  }
169  else {
170  return FALSE;
171  }
172  }
#define TRUE
Definition: types.h:120
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3272
#define FALSE
Definition: types.h:117
#define FILE_AUTOGENERATED_DEVICE_NAME
Definition: iotypes.h:138
#define NULL
Definition: types.h:112

Referenced by ShouldCreateSecure().

◆ IsControlDeviceInit()

BOOLEAN WDFDEVICE_INIT::IsControlDeviceInit ( VOID  )
inline

Definition at line 153 of file fxdeviceinit.hpp.

156  {
158  }
FxDeviceInitType InitType

◆ IsFdoInit()

BOOLEAN WDFDEVICE_INIT::IsFdoInit ( VOID  )
inline

Definition at line 114 of file fxdeviceinit.hpp.

117  {
118  return InitType == FxDeviceInitTypeFdo;
119  }
FxDeviceInitType InitType

Referenced by IsPwrPolOwner(), and ShouldCreateSecure().

◆ IsNotControlDeviceInit()

BOOLEAN WDFDEVICE_INIT::IsNotControlDeviceInit ( VOID  )
inline

Definition at line 145 of file fxdeviceinit.hpp.

148  {
150  }
FxDeviceInitType InitType

◆ IsNotFdoInit()

BOOLEAN WDFDEVICE_INIT::IsNotFdoInit ( VOID  )
inline

Definition at line 122 of file fxdeviceinit.hpp.

125  {
126  return InitType != FxDeviceInitTypeFdo;
127  }
FxDeviceInitType InitType

◆ IsNotPdoInit()

BOOLEAN WDFDEVICE_INIT::IsNotPdoInit ( VOID  )
inline

Definition at line 138 of file fxdeviceinit.hpp.

141  {
142  return InitType != FxDeviceInitTypePdo;
143  }
FxDeviceInitType InitType

◆ IsPdoInit()

BOOLEAN WDFDEVICE_INIT::IsPdoInit ( VOID  )
inline

Definition at line 130 of file fxdeviceinit.hpp.

133  {
134  return InitType == FxDeviceInitTypePdo;
135  }
FxDeviceInitType InitType

Referenced by IsPwrPolOwner(), and ShouldCreateSecure().

◆ IsPwrPolOwner()

BOOLEAN WDFDEVICE_INIT::IsPwrPolOwner ( VOID  )
inline

Definition at line 180 of file fxdeviceinit.hpp.

183  {
185  return TRUE;
186  }
187  else if (PnpPower.PowerPolicyOwner == WdfFalse) {
188  return FALSE;
189  }
190  else if (IsPdoInit()) {
191  //
192  // This is a PDO. If we are a raw PDO, we own pwr policy.
193  //
194  return Pdo.Raw;
195  }
196  else {
197  ASSERT(IsFdoInit());
198 
199  //
200  // This is an FDO. If we are not a filter, we own pwr policy.
201  //
202  return (Fdo.Filter == FALSE ? TRUE : FALSE);
203  }
204  }
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define ASSERT(a)
Definition: mode.c:44
_Must_inspect_result_ _In_ WDFDEVICE Fdo
Definition: wdffdo.h:461
BOOLEAN IsFdoInit(VOID)
PnpPowerInit PnpPower
WDF_TRI_STATE PowerPolicyOwner
BOOLEAN IsPdoInit(VOID)

◆ SetPdo()

VOID WDFDEVICE_INIT::SetPdo ( __in FxDevice Parent)

Definition at line 32 of file fxdeviceinitkm.cpp.

35 {
37 
38  //
39  // Remember the parent so we can store it later in WdfDeviceCreate
40  //
41  Pdo.Parent = Parent;
42 
43  //
44  // PDOs *must* have a name. By setting this flag, the driver writer
45  // does not need to know this
46  //
48 
49  //
50  // By default, PDOs are not power pageable b/c they do not know how the
51  // stack above them will work. For a "closed" system where the bus driver
52  // knows the stack be loaded on its PDO, this may not be true and it
53  // can use WdfDeviceInitSetPowerPageable to set it back.
54  //
55  // In all current shipping OS's, if the parent is power pageable, the
56  // child must be power pagable as well.
57  //
58  if (Parent->IsPowerPageableCapable() == FALSE) {
60  }
61 }
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:728
#define FALSE
Definition: types.h:117
FxDeviceInitType InitType
#define FILE_AUTOGENERATED_DEVICE_NAME
Definition: iotypes.h:138
CfxDevice * Parent
BOOLEAN PowerPageable

◆ ShouldCreateSecure()

BOOLEAN WDFDEVICE_INIT::ShouldCreateSecure ( VOID  )

Definition at line 254 of file fxdeviceinit.cpp.

257 {
258  //
259  // Driver explicitly set a class or SDDL, we have to create a secure
260  // device. This will be true for all control devices (SDDL required)
261  // and raw PDOs (class required), could be true for FDOs or filters as
262  // well.
263  //
265  return TRUE;
266  }
267 
268  //
269  // See if there is a name for the device
270  //
271  if (HasName()) {
272  if (IsPdoInit()) {
273 
274 
275 
276 
277 
278 
279 
280 
281 
282 
283 
284 
285 
286  ASSERT(Pdo.Raw == FALSE);
287 
292  "WDFDRIVER 0x%p asked for a named device object, but the PDO "
293  "will be created without a name because an SDDL string has not "
294  "been specified for the PDO.",
295  Driver
296  );
297  return FALSE;
298  }
299  else {
300  //
301  // We are creating a named FDO or filter
302  //
303  ASSERT(IsFdoInit());
304  return TRUE;
305  }
306  }
307 
308  //
309  // No name involved (FDO or filter)
310  //
311  ASSERT(IsFdoInit());
312 
313  return FALSE;
314 }
SecurityInit Security
BOOLEAN DeviceClassSet
#define TRUE
Definition: types.h:120
BOOLEAN HasName(VOID)
#define FALSE
Definition: types.h:117
FxString * Sddl
#define TRACINGDEVICE
Definition: dbgtrace.h:58
#define ASSERT(a)
Definition: mode.c:44
PFX_DRIVER_GLOBALS DriverGlobals
#define TRACE_LEVEL_WARNING
Definition: storswtr.h:28
BOOLEAN IsFdoInit(VOID)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define NULL
Definition: types.h:112
_Must_inspect_result_ _In_ WDFDRIVER Driver
Definition: wdfcontrol.h:83
BOOLEAN IsPdoInit(VOID)

Member Data Documentation

◆ Characteristics

ULONG WDFDEVICE_INIT::Characteristics

◆ ConfigRegistryPath

PWSTR WDFDEVICE_INIT::ConfigRegistryPath

Definition at line 315 of file fxdeviceinit.hpp.

Referenced by ~WDFDEVICE_INIT().

◆ Control

ControlInit WDFDEVICE_INIT::Control

Definition at line 278 of file fxdeviceinit.hpp.

◆ CreatedDevice

FxDevice* WDFDEVICE_INIT::CreatedDevice

Definition at line 236 of file fxdeviceinit.hpp.

Referenced by FxDevice::_Create(), and WDFDEVICE_INIT().

◆ CreatedOnStack

BOOLEAN WDFDEVICE_INIT::CreatedOnStack

Definition at line 238 of file fxdeviceinit.hpp.

Referenced by FxDevice::_Create(), and WDFDEVICE_INIT().

◆ CxDeviceInitListHead

LIST_ENTRY WDFDEVICE_INIT::CxDeviceInitListHead

◆ DeviceControlIoType

WDF_DEVICE_IO_TYPE WDFDEVICE_INIT::DeviceControlIoType

Definition at line 289 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ DeviceName

FxString* WDFDEVICE_INIT::DeviceName

Definition at line 259 of file fxdeviceinit.hpp.

Referenced by FxDevice::_Create().

◆ DeviceType

DEVICE_TYPE WDFDEVICE_INIT::DeviceType

Definition at line 257 of file fxdeviceinit.hpp.

◆ DevInstanceID

PWSTR WDFDEVICE_INIT::DevInstanceID

Definition at line 320 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT(), and ~WDFDEVICE_INIT().

◆ DevStack

IWudfDeviceStack* WDFDEVICE_INIT::DevStack

Definition at line 299 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ DirectTransferThreshold

ULONG WDFDEVICE_INIT::DirectTransferThreshold

Definition at line 294 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ Driver

FxDriver* WDFDEVICE_INIT::Driver

Definition at line 234 of file fxdeviceinit.hpp.

Referenced by FxDevice::_Create().

◆ DriverGlobals

PFX_DRIVER_GLOBALS WDFDEVICE_INIT::DriverGlobals

Definition at line 232 of file fxdeviceinit.hpp.

Referenced by AssignIoType(), ShouldCreateSecure(), and WDFDEVICE_INIT().

◆ DriverID

ULONG WDFDEVICE_INIT::DriverID

Definition at line 325 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ Exclusive

BOOLEAN WDFDEVICE_INIT::Exclusive

Definition at line 240 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ Fdo

FdoInit WDFDEVICE_INIT::Fdo

Definition at line 276 of file fxdeviceinit.hpp.

◆ FileObject

FileObjectInit WDFDEVICE_INIT::FileObject

Definition at line 263 of file fxdeviceinit.hpp.

◆ InitType

◆ Inrush

BOOLEAN WDFDEVICE_INIT::Inrush

Definition at line 244 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ IoInCallerContextCallback

PFN_WDF_IO_IN_CALLER_CONTEXT WDFDEVICE_INIT::IoInCallerContextCallback

Definition at line 271 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ KernelDeviceName

PWSTR WDFDEVICE_INIT::KernelDeviceName

Definition at line 304 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT(), and ~WDFDEVICE_INIT().

◆ Pdo

PdoInit WDFDEVICE_INIT::Pdo

◆ PdoKey

HKEY WDFDEVICE_INIT::PdoKey

Definition at line 309 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT(), and ~WDFDEVICE_INIT().

◆ PnpPower

PnpPowerInit WDFDEVICE_INIT::PnpPower

◆ PowerPageable

BOOLEAN WDFDEVICE_INIT::PowerPageable

Definition at line 242 of file fxdeviceinit.hpp.

Referenced by SetPdo(), and WDFDEVICE_INIT().

◆ PreprocessInfo

FxIrpPreprocessInfo* WDFDEVICE_INIT::PreprocessInfo

Definition at line 269 of file fxdeviceinit.hpp.

Referenced by FxDevice::_Create(), WDFDEVICE_INIT(), and ~WDFDEVICE_INIT().

◆ ReadWriteIoType

WDF_DEVICE_IO_TYPE WDFDEVICE_INIT::ReadWriteIoType

Definition at line 255 of file fxdeviceinit.hpp.

Referenced by AssignIoType(), and WDFDEVICE_INIT().

◆ ReleaseHardwareOrderOnFailure

WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE WDFDEVICE_INIT::ReleaseHardwareOrderOnFailure

Definition at line 273 of file fxdeviceinit.hpp.

◆ RemoveLockOptionFlags

ULONG WDFDEVICE_INIT::RemoveLockOptionFlags

Definition at line 251 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ RequestAttributes

WDF_OBJECT_ATTRIBUTES WDFDEVICE_INIT::RequestAttributes

Definition at line 267 of file fxdeviceinit.hpp.

◆ RequiresSelfIoTarget

BOOLEAN WDFDEVICE_INIT::RequiresSelfIoTarget

Definition at line 249 of file fxdeviceinit.hpp.

Referenced by WDFDEVICE_INIT().

◆ Security

SecurityInit WDFDEVICE_INIT::Security

The documentation for this struct was generated from the following files: