ReactOS 0.4.17-dev-1281-g065abb3
hubchild.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS SuperSpeed USB Hub Driver
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: The device attached to a hub port
5 * COPYRIGHT: Copyright 2026 Justin Miller <justin.miller@reactos.org>
6 */
7
8#pragma once
9
10/* registry */
11#include "desccheck.h"
12
13/* Mux bookkeeping per device, under the hub mux lock */
15{
16 Stopped = 0x00000001,
17 PowerReference = 0x00000002,
18 PnpOperationPending = 0x00000004
19};
20
21/* Device errata from usbflags and the shim engine; bit positions are fixed */
23{
24 DisableSerialNumber = 0x00000001,
25 AlwaysQueryMsOs = 0x00000002,
26 ResetAfterSystemResume = 0x00000004,
27 DisableOnSoftRemove = 0x00000008,
28 RequestConfigDescOnReset = 0x00000010,
29 SkipContainerIdQuery = 0x00000020,
30 IgnoreBosValidationFailure = 0x00000040,
31 DisableLpm = 0x00000080,
32 NoExitLatencyRequest = 0x00000100,
33 ResetAfterSuperSpeedResume = 0x00000200,
34 TolerateStalePipes = 0x00000400,
35 DisableUasp = 0x00000800,
36 NoIsochDelayRequest = 0x00001000,
37 ResetAfterIdleResume = 0x00002000,
38 DisableHotReset = 0x00004000,
39 SkipBosQuery = 0x00008000,
40 NonFunctional = 0x00010000,
41 DisableUsb20Lpm = 0x00020000,
43 DisableSuperSpeed = 0x00080000,
44 BlockedDevice = 0x00100000,
45 UseWin8DescriptorValidation = 0x00200000,
46 AlwaysSecondReset = 0x00400000
47};
48
49/* USB4 tunnel state of a device; 1 means the port has no USB4 host and the controller was not asked */
50#define HUB_TUNNEL_STATE_NONE UCXHUB_TUNNEL_STATE_NOT_ANSWERED
51#define HUB_TUNNEL_STATE_NOT_USB4 UCXHUB_TUNNEL_STATE_NO_INFORMATION
52#define HUB_TUNNEL_STATE_TUNNELED UCXHUB_TUNNEL_STATE_TUNNELED
53#define HUB_TUNNEL_STATE_NATIVE UCXHUB_TUNNEL_STATE_NATIVE
54#define HUB_TUNNEL_STATE_UNKNOWN UCXHUB_TUNNEL_STATE_UNKNOWN
55
56/* What the device is, learned during enumeration */
58{
59 NotRemovable = 0x00000001,
60 IsHub = 0x00000002,
61 HighSpeedCapable = 0x00000004,
62 MsOsNotSupported = 0x00000080,
63 LtmCapable = 0x00000100,
64 DualRole = 0x00000200,
65 ChargingPolicySupported = 0x00000400,
66 AcpiAllowsD3Cold = 0x00000800,
67 ExtPropertiesInstalled = 0x00001000,
68 IsComposite = 0x00002000,
69 HasBillboard = 0x00004000,
70 SupportsStreams = 0x00008000,
71 RemoteWakeCapable = 0x00010000,
72 SelfPowered = 0x00020000,
73 Usb20LpmCapable = 0x00040000,
74 BeslCapable = 0x00080000,
75
76 /* identity */
77 ContainerIdKnown = 0x10000000,
78 ContainerIdFromBos = 0x20000000,
79
80 /* registry */
81 UxdReserved = 0x01000000,
82 SupportsSelectiveSuspend = 0x02000000,
83 AllowIdleIrpInD3 = 0x04000000
84};
85
86/* Device state changed by several machines, always interlocked */
88{
89 ReprogrammingPending = 0x00000001,
90 DifferentDeviceOnBootPort = 0x00000002,
91 ActivityIdSet = 0x00000004,
92 AttachSucceeded = 0x00000008,
93 WarmResetOnEnumeration = 0x00000010,
94 LastSetAddressFailed = 0x00000020,
95 AltSettingFiltered = 0x00000040,
96 ConfigurationValid = 0x00000080,
97 WasResetAtResume = 0x00000100,
98 D3ColdEnabledByDriver = 0x00000200,
99 FailedAnEnumeration = 0x00000400,
100 U1EnabledUpstream = 0x00000800,
101 U2EnabledUpstream = 0x00001000,
102 AltEnumCompleted = 0x00002000,
103 AltEnumCommandSent = 0x00004000,
104 MsOsInstallHandled = 0x00008000,
105 Disconnected = 0x00010000,
106 PendingNoPingResponse = 0x00020000,
107 HotResetOnEnumeration = 0x00040000,
108
109 /* identity */
110 WorkingDevice = 0x10000000,
111 PrefixedSerial = 0x20000000,
112
113 /* devxfer */
114 DualRoleCommandSent = 0x00800000
115};
116
117/* registry */
118
119/* Telemetry bits of the Ceip DeviceInformation value; layout fixed by its readers */
121{
122 Virtualized = 0x00000004,
123 IsOnXhci = 0x00000008,
124 HoldsPagingFiles = 0x00000010,
125 ValidBos = 0x00000020,
126 SupportsStreams = 0x00000040,
127 MultipleConfigurations = 0x00000080,
128 SuperSpeedCapable = 0x00000200
129};
130
131/* UXD settings record written by the VM redirection policy tool */
133{
141};
142
144
145/* AlternateSettingFilter from usbflags: alternate settings SELECT_CONFIGURATION picks */
147{
149 struct
150 {
154};
155
156/* UCX endpoint state of one pipe */
157enum class PipeState : UCHAR
158{
159 Invalid,
163 Enabled,
165 Disabled,
166 Deleted
167};
168
169/* One endpoint of an interface; its address is the client's pipe handle owner */
171{
179 UCXENDPOINT Endpoint;
181};
182
183/* One interface of a configuration; its address is the client's interface handle */
185{
186 WDFMEMORY Memory;
193};
194
195/* A selected configuration; its address is the client's configuration handle */
197{
198 WDFMEMORY Memory;
202};
203
204/* Every device management request a device sends to UCX, one at a time */
206{
222};
223
224/* devxfer */
225
226/* No alternate mode is being walked */
227#define HUB_BILLBOARD_NO_MODE 0xFF
228
231{
236};
237
239{
240public:
242 static
243 HubChild*
244 Create(
245 _In_ HubPort* Port);
246
247 static
248 HubChild*
251
252 VOID
255 {
257 }
258
259 BOOLEAN
261 _In_ ChildState Flag) const
262 {
263 return (m_StateFlags & (LONG)Flag) != 0;
264 }
265
266 VOID
269 {
271 }
272
273 VOID
276 {
278 }
279
280 BOOLEAN
282 _In_ ChildHack Flag) const
283 {
284 return (m_Hacks & (ULONG)Flag) != 0;
285 }
286
287 BOOLEAN
289 _In_ ChildProperty Flag) const
290 {
291 return (m_Properties & (LONG)Flag) != 0;
292 }
293
294 VOID
297 {
299 }
300
301 VOID
304 {
306 }
307
309 Speed() const;
310
311public:
313
314 /* Links */
319 UCXUSBDEVICE m_UsbDevice;
320
321 /* Mux: flags under the hub mux lock, and the three list links */
326
327 /* Flag words */
333
334 /* Machine resources */
339
340 /* PnP handshakes with the child PDO and the hub FDO */
346
347 /* Enumeration */
357
358 /* Requests */
361 WDFREQUEST m_UcxRequest;
365 WDFREQUEST m_ClientRequest;
366 WDFREQUEST m_FdoRequest;
367
368 /* Configuration, under m_ConfigLock against the FDO's connection info IOCTL */
375 UCXENDPOINT m_DefaultEndpoint;
384
385 /* Descriptors */
394
395 /* Validation codes this device hit; words 0 to 6 are written to the registry */
398
399 /* Serial number as cached, the instance id */
402
403 /* identity */
404
405 /* Bytes of MSFT20 or MSFT30 decoration in front of the serial number text */
407
408 /* Written by the BOS and MS OS readers, or generated when the PDO is created */
410
411 /* Replacement device id of a VM reserved device; Length counts its NUL */
413
414 /* Set by the configuration descriptor reader: interface the class compatible ids come from */
416
417 /* Owned by the MS OS 1.0 extended configuration reader; NULL when not cached */
419
420 /* U1 and U2 timeouts chosen for the device, sent to its upstream port */
423
424 /* From the MS OS 2.0 minimum resume time descriptor, in ms */
427
428 /* Boot device support */
431
432 /* Current WDM power state, to tell D2 to D3 apart */
434
435 /* devucx */
436
437 /* Pipe of the client's pipe request, set by FindClientPipe */
439
440 /* HUB_LPM_POLICY_* bits, written by the PDO power setting callback */
442
443 /* HUB_LINK_* bits; only the device machine touches them */
445
446 /* U1 and U2 timeouts the next link power pass wants on the port */
449
450 /* Extra exit latency in percent after missed ping responses */
452
453 /* Exit latency the controller has, the one wanted next, and the cap UCX reported, in us */
457
458 /* From the device BOS (BosValid) and SET_SEL, in us */
463
464 /* SET_SEL data stage, sent from here as is */
465 struct
466 {
472
473 /* TP link delays of the device link, in ns */
476
477 /* Why USB 2.0 hardware LPM is on or off (HubLpm20Status), diagnostics only */
479
480 /* bResumeSignalingTime of the MS OS 2.0 minimum resume time descriptor */
482
483 /* HUB_TUNNEL_STATE_*: not asked for ports without a USB4 host, else the controller's answer */
485
486 /* registry */
487
488 /* MS OS 1.0: string 0xEE as read, and the vendor code for feature requests */
491
492 /* MS OS 2.0: selected set info, the cached set and what its validation found */
497
498 /* The set info is in usbflags, so the alternate enumeration command goes out early */
500
501 /* Device descriptor from before the alternate enumeration command */
503
504 /* MS OS 1.0 extended properties, between AllocateExtPropertiesBuffer and its free */
506
507 /* FriendlyName from the hardware key; counted, no NUL */
510
511 /* UXD record for the device; all zero when it is not reserved */
513
514 /* ChildSqm bits, interlocked */
515 volatile LONG m_SqmFlags;
516
517 /* devxfer */
518
519 /* Billboard capability from the BOS, or NULL; the PDO frees it after publishing */
521
522 /* SuperSpeedPlus sublink speed attributes, cached by the first BOS read only */
525
526 /* Dual role partner: vendor command from the BOS, and the features of both sides */
530
531 /* SET_SEL found the device link slower than the path; only ever set */
534
535 /* hubpdo */
536
537 /* ReferenceHubPower got a power reference on the hub FDO */
539
540private:
541 static
542 VOID
543 NTAPI
546
547 static EVT_WDF_OBJECT_CONTEXT_DESTROY EvtDestroy;
548 static UCXHUB_WORKITEM_ROUTINE MachineWorkItem;
549
550 friend class DeviceMachine;
551};
552
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
@ Create
Definition: registry.c:563
USHORT m_TargetExitLatency
Definition: hubchild.h:455
HubMsOsExtConfig * m_MsOsExtConfig
Definition: hubchild.h:418
HubPort * m_Port
Definition: hubchild.h:317
volatile LONG m_SqmFlags
Definition: hubchild.h:515
PUSB_INTERFACE_DESCRIPTOR m_CompatIdInterface
Definition: hubchild.h:415
UNICODE_STRING m_VmReservedId
Definition: hubchild.h:412
VOID ClearState(_In_ ChildState Flag)
Definition: hubchild.h:274
USB_DEVICE_SPEED Speed() const
Definition: hubchild.cpp:36
UCHAR U1Sel
Definition: hubchild.h:467
PUSB_STRING_DESCRIPTOR m_LanguageIds
Definition: hubchild.h:390
PUCXHUB_WORKITEM m_WorkItem
Definition: hubchild.h:337
UCHAR m_TargetU2Timeout
Definition: hubchild.h:448
USB_DEVICE_DESCRIPTOR m_OriginalDeviceDescriptor
Definition: hubchild.h:502
WDFMEMORY m_UcxPayloadMemory
Definition: hubchild.h:362
ULONG m_DuplicateRetryCount
Definition: hubchild.h:349
USB_DEVICE_DESCRIPTOR m_DeviceDescriptor
Definition: hubchild.h:386
KEVENT m_PnpEvent
Definition: hubchild.h:341
WDFREQUEST m_UcxRequest
Definition: hubchild.h:361
PVOID m_ExtProperties
Definition: hubchild.h:505
ULONG m_EnumRetryCount
Definition: hubchild.h:348
HubInterface * m_NewInterface
Definition: hubchild.h:372
BOOLEAN m_SlowestLinkU1
Definition: hubchild.h:532
KEVENT m_PreStartEvent
Definition: hubchild.h:343
UCHAR m_TargetU1Timeout
Definition: hubchild.h:447
ULONG m_TunnelState
Definition: hubchild.h:484
UCXENDPOINT * m_EndpointsToDisable
Definition: hubchild.h:377
BOOLEAN m_AltEnumCached
Definition: hubchild.h:499
WDFTIMER m_BandwidthRetryTimer
Definition: hubchild.h:336
ULONG m_Lpm20Status
Definition: hubchild.h:478
BOOLEAN m_SlowestLinkU2
Definition: hubchild.h:533
WDFREQUEST m_ClientRequest
Definition: hubchild.h:365
UCHAR m_U1Timeout
Definition: hubchild.h:421
UCHAR m_Address
Definition: hubchild.h:350
BOOLEAN m_HubPowerReferenceHeld
Definition: hubchild.h:538
UCHAR m_ResumeSignalingTime
Definition: hubchild.h:481
PVOID m_AlternateSettingFilter
Definition: hubchild.h:383
HubMsOs20Info m_MsOs20
Definition: hubchild.h:494
USHORT U2Sel
Definition: hubchild.h:469
HubFdo * m_Hub
Definition: hubchild.h:316
WDFOBJECT m_Object
Definition: hubchild.h:315
ULONG m_LinkFlags
Definition: hubchild.h:444
UCHAR m_ResumeRecoveryTime
Definition: hubchild.h:426
USHORT m_U2ExitLatency
Definition: hubchild.h:460
ULONG m_DisableCount
Definition: hubchild.h:380
NTSTATUS m_LastNtStatus
Definition: hubchild.h:353
USHORT m_MaxPacketSize0
Definition: hubchild.h:351
ULONG m_Kind
Definition: hubchild.h:328
RTL_BITMAP m_ValidationBitmap
Definition: hubchild.h:396
ULONG m_Hacks
Definition: hubchild.h:329
USHORT U2Pel
Definition: hubchild.h:470
ULONG m_ValidationBits[8]
Definition: hubchild.h:397
ULONG m_MuxFlags
Definition: hubchild.h:322
UCXUSBDEVICE m_UsbDevice
Definition: hubchild.h:319
HubInterface * m_OldInterface
Definition: hubchild.h:373
struct HubChild::@1630 m_Sel
GUID m_ContainerId
Definition: hubchild.h:409
ULONG m_EndpointArrayCapacity
Definition: hubchild.h:382
HubTimer m_Timer
Definition: hubchild.h:335
ULONG m_UcxIoctl
Definition: hubchild.h:364
VOID Post(_In_ DsmEvent Event)
Definition: hubchild.h:253
HubConfiguration * m_OldConfig
Definition: hubchild.h:371
HubBillboardInfo * m_Billboard
Definition: hubchild.h:520
UCHAR m_MsOsVendorCode
Definition: hubchild.h:490
HubPipe * m_TargetPipe
Definition: hubchild.h:438
PWDFDEVICE_INIT m_PdoInit
Definition: hubchild.h:345
PUSB_CONFIGURATION_DESCRIPTOR m_ConfigDescriptor
Definition: hubchild.h:388
ULONG m_EnumMessageId
Definition: hubchild.h:355
LIST_ENTRY m_FanOutLink
Definition: hubchild.h:324
PWCHAR m_FriendlyName
Definition: hubchild.h:508
volatile LONG m_BootReportedMissing
Definition: hubchild.h:430
USHORT m_HostU2ExitLatency
Definition: hubchild.h:462
LIST_ENTRY m_HubLink
Definition: hubchild.h:323
VOID SetProperty(_In_ ChildProperty Flag)
Definition: hubchild.h:295
BOOLEAN HasProperty(_In_ ChildProperty Flag) const
Definition: hubchild.h:288
PWCHAR m_SerialNumber
Definition: hubchild.h:400
ULONG m_LpmPolicy
Definition: hubchild.h:441
PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED m_SublinkSpeedAttr
Definition: hubchild.h:523
UCHAR m_U2Timeout
Definition: hubchild.h:422
USHORT m_U1ExitLatency
Definition: hubchild.h:459
UCHAR m_LatencyAdjustPercent
Definition: hubchild.h:451
volatile LONG m_StateFlags
Definition: hubchild.h:331
UCHAR m_ScratchBuffer[256]
Definition: hubchild.h:393
WDFREQUEST m_FdoRequest
Definition: hubchild.h:366
UCXENDPOINT * m_EndpointsToEnable
Definition: hubchild.h:376
static EVT_WDF_OBJECT_CONTEXT_DESTROY EvtDestroy
Definition: hubchild.h:547
LARGE_INTEGER m_LastResetTime
Definition: hubchild.h:356
HubUxdSettings m_Uxd
Definition: hubchild.h:512
PVOID m_MsOs20Set
Definition: hubchild.h:495
ULONG m_SublinkSpeedAttrCount
Definition: hubchild.h:524
HubInterface * m_NextInterface
Definition: hubchild.h:374
PUSB_BOS_DESCRIPTOR m_Bos
Definition: hubchild.h:389
HubControlRequest m_BootControl
Definition: hubchild.h:360
ULONG m_UnchangedCount
Definition: hubchild.h:381
ULONG m_SerialPrefixLength
Definition: hubchild.h:406
HubMsOs20SetInfo m_MsOs20SetInfo
Definition: hubchild.h:493
USHORT m_RxTpDelay
Definition: hubchild.h:474
HubControlRequest m_Control
Definition: hubchild.h:359
ULONG m_DualRolePartnerFeatures
Definition: hubchild.h:529
DEVICE_POWER_STATE m_PowerState
Definition: hubchild.h:433
HubUcxPayload * m_UcxPayload
Definition: hubchild.h:363
UCXHUB_DEVICE_CREATE_INFO m_CreateInfo
Definition: hubchild.h:352
USHORT m_LanguageId
Definition: hubchild.h:392
BOOLEAN m_HasResumeRecoveryTime
Definition: hubchild.h:425
KEVENT m_QueryTextEvent
Definition: hubchild.h:344
HubPdo * m_Pdo
Definition: hubchild.h:318
USHORT m_HostU1ExitLatency
Definition: hubchild.h:461
DeviceMachine m_Machine
Definition: hubchild.h:312
USHORT m_FriendlyNameLength
Definition: hubchild.h:509
HubMsOsString m_MsOsString
Definition: hubchild.h:489
USB_DEVICE_QUALIFIER_DESCRIPTOR m_Qualifier
Definition: hubchild.h:387
USBD_STATUS m_LastUsbdStatus
Definition: hubchild.h:354
volatile LONG m_Properties
Definition: hubchild.h:330
ULONG m_EnableCount
Definition: hubchild.h:379
HubConfiguration * m_CurrentConfig
Definition: hubchild.h:370
LIST_ENTRY m_SurpriseRemoveLink
Definition: hubchild.h:325
VOID ClearProperty(_In_ ChildProperty Flag)
Definition: hubchild.h:302
USHORT m_TxTpDelay
Definition: hubchild.h:475
BOOLEAN m_NeedsForwardProgress
Definition: hubchild.h:338
UCHAR U1Pel
Definition: hubchild.h:468
VOID SetState(_In_ ChildState Flag)
Definition: hubchild.h:267
NTSTATUS m_PnpStatus
Definition: hubchild.h:342
USHORT m_EffectiveExitLatency
Definition: hubchild.h:454
ULONG m_SerialNumberLength
Definition: hubchild.h:401
UCXENDPOINT * m_EndpointsUnchanged
Definition: hubchild.h:378
ULONG m_VerifierFlags
Definition: hubchild.h:332
PUSB_STRING_DESCRIPTOR m_ProductString
Definition: hubchild.h:391
KSPIN_LOCK m_ConfigLock
Definition: hubchild.h:369
ULONG m_MaxExitLatencyFromEld
Definition: hubchild.h:456
static UCXHUB_WORKITEM_ROUTINE MachineWorkItem
Definition: hubchild.h:548
ULONG m_DualRoleLocalFeatures
Definition: hubchild.h:528
BOOLEAN HasHack(_In_ ChildHack Flag) const
Definition: hubchild.h:281
UCHAR m_DualRoleRequestCode
Definition: hubchild.h:527
BOOLEAN HasState(_In_ ChildState Flag) const
Definition: hubchild.h:260
ULONG m_MsOs20SetLength
Definition: hubchild.h:496
UCXENDPOINT m_DefaultEndpoint
Definition: hubchild.h:375
static HubChild * FromObject(_In_ WDFOBJECT Object)
Definition: hubchild.cpp:29
PVOID m_BootHandle
Definition: hubchild.h:429
Definition: fdo.h:132
BOOLEAN SmPost(_In_ Event Ev)
Definition: smengine.h:370
DsmEvent
Definition: devsm.h:15
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
Definition: dispmprt.h:1287
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
CPPORT Port[4]
Definition: headless.c:38
PipeState
Definition: hubchild.h:158
ChildMuxFlag
Definition: hubchild.h:15
ChildSqm
Definition: hubchild.h:121
@ HoldsPagingFiles
@ SuperSpeedCapable
@ MultipleConfigurations
ChildState
Definition: hubchild.h:88
@ ReprogrammingPending
@ DualRoleCommandSent
@ WarmResetOnEnumeration
@ D3ColdEnabledByDriver
@ AltEnumCommandSent
@ PendingNoPingResponse
@ LastSetAddressFailed
@ HotResetOnEnumeration
@ FailedAnEnumeration
@ ConfigurationValid
@ MsOsInstallHandled
@ DifferentDeviceOnBootPort
@ AltSettingFiltered
ChildHack
Definition: hubchild.h:23
@ ResetAfterIdleResume
@ ResetAfterSystemResume
@ DisableRemoteWakeForUsb20Lpm
@ TolerateStalePipes
@ AlwaysSecondReset
@ UseWin8DescriptorValidation
@ DisableSerialNumber
@ IgnoreBosValidationFailure
@ RequestConfigDescOnReset
@ DisableOnSoftRemove
@ DisableSuperSpeed
@ ResetAfterSuperSpeedResume
@ SkipContainerIdQuery
@ NoExitLatencyRequest
@ NoIsochDelayRequest
ChildProperty
Definition: hubchild.h:58
@ SupportsSelectiveSuspend
#define InterlockedOr
Definition: interlocked.h:239
#define InterlockedAnd
Definition: interlocked.h:77
#define C_ASSERT(e)
Definition: intsafe.h:73
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81
#define _Enum_is_bitflag_
Definition: no_sal2.h:404
#define _In_
Definition: no_sal2.h:158
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
Definition: xml2sdb.h:103
UCHAR AlternateSetting
Definition: hubchild.h:152
struct HubAltSettingFilter::@1629 Entries[ANYSIZE_ARRAY]
PUSB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR Descriptor
Definition: hubchild.h:232
UCHAR CurrentMode
Definition: hubchild.h:233
BOOLEAN ModeError
Definition: hubchild.h:234
BOOLEAN ModeSuccess
Definition: hubchild.h:235
LIST_ENTRY Interfaces
Definition: hubchild.h:199
USB_CONFIGURATION_DESCRIPTOR Descriptor
Definition: hubchild.h:201
ULONG EndpointCount
Definition: hubchild.h:200
WDFMEMORY Memory
Definition: hubchild.h:198
PUSB_INTERFACE_DESCRIPTOR Descriptor
Definition: hubchild.h:188
WDFMEMORY Memory
Definition: hubchild.h:186
HubPipe Pipes[ANYSIZE_ARRAY]
Definition: hubchild.h:192
ULONG PipeCount
Definition: hubchild.h:189
BOOLEAN HasAlternateSettings
Definition: hubchild.h:190
BOOLEAN NeedsSetInterface
Definition: hubchild.h:191
LIST_ENTRY Link
Definition: hubchild.h:187
ULONG BytesToEnd
Definition: hubchild.h:173
PUSB_ENDPOINT_DESCRIPTOR Descriptor
Definition: hubchild.h:172
UCXENDPOINT Endpoint
Definition: hubchild.h:179
BOOLEAN ZeroBandwidth
Definition: hubchild.h:178
PUSB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR Companion
Definition: hubchild.h:174
PipeState State
Definition: hubchild.h:177
PUSB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR IsochCompanion
Definition: hubchild.h:175
ULONG PipeFlags
Definition: hubchild.h:176
USBD_PIPE_HANDLE PipeHandle
Definition: hubchild.h:180
ULONG DeleteOnDisconnect
Definition: hubchild.h:139
GUID OwnerGuid
Definition: hubchild.h:136
ULONG Version
Definition: hubchild.h:134
ULONG DeleteOnShutdown
Definition: hubchild.h:137
ULONG DeleteOnReload
Definition: hubchild.h:138
Definition: typedefs.h:120
unsigned char UCHAR
Definition: typedefs.h:53
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
#define NTAPI
Definition: typedefs.h:36
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
ENDPOINT_RESET EndpointReset
Definition: hubchild.h:221
USBDEVICE_MGMT_HEADER Header
Definition: hubchild.h:207
USBDEVICE_ENABLE Enable
Definition: hubchild.h:209
USBDEVICE_HUB_INFO HubInfo
Definition: hubchild.h:213
USBDEVICE_ADDRESS Address
Definition: hubchild.h:211
USBDEVICE_UPDATE Update
Definition: hubchild.h:212
USBDEVICE_RESET Reset
Definition: hubchild.h:210
USBDEVICE_TREE_PURGEIO TreePurge
Definition: hubchild.h:218
USBDEVICE_DISABLE Disable
Definition: hubchild.h:214
ENDPOINTS_CONFIGURE Configure
Definition: hubchild.h:219
USBDEVICE_STARTIO Start
Definition: hubchild.h:216
DEFAULT_ENDPOINT_UPDATE DefaultEndpoint
Definition: hubchild.h:220
USBDEVICE_PURGEIO Purge
Definition: hubchild.h:215
ADDRESS0_OWNERSHIP_ACQUIRE Address0
Definition: hubchild.h:208
USBDEVICE_ABORTIO Abort
Definition: hubchild.h:217
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
LONG USBD_STATUS
Definition: usb.h:172
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
#define WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(_contexttype, _castingfunction)
Definition: wdfobject.h:350
_Reserved_ PVOID Reserved
Definition: winddi.h:3974