ReactOS 0.4.17-dev-1281-g065abb3
hubchild.h File Reference
#include "desccheck.h"
Include dependency graph for hubchild.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  HubUxdSettings
 
struct  HubAltSettingFilter
 
struct  HubPipe
 
struct  HubInterface
 
struct  HubConfiguration
 
union  HubUcxPayload
 
struct  HubBillboardInfo
 
class  HubChild
 

Macros

#define HUB_TUNNEL_STATE_NONE   UCXHUB_TUNNEL_STATE_NOT_ANSWERED
 
#define HUB_TUNNEL_STATE_NOT_USB4   UCXHUB_TUNNEL_STATE_NO_INFORMATION
 
#define HUB_TUNNEL_STATE_TUNNELED   UCXHUB_TUNNEL_STATE_TUNNELED
 
#define HUB_TUNNEL_STATE_NATIVE   UCXHUB_TUNNEL_STATE_NATIVE
 
#define HUB_TUNNEL_STATE_UNKNOWN   UCXHUB_TUNNEL_STATE_UNKNOWN
 
#define HUB_BILLBOARD_NO_MODE   0xFF
 

Enumerations

enum class  ChildMuxFlag : ULONG { Stopped = 0x00000001 , PowerReference = 0x00000002 , PnpOperationPending = 0x00000004 }
 
enum class  ChildHack : ULONG {
  DisableSerialNumber = 0x00000001 , AlwaysQueryMsOs = 0x00000002 , ResetAfterSystemResume = 0x00000004 , DisableOnSoftRemove = 0x00000008 ,
  RequestConfigDescOnReset = 0x00000010 , SkipContainerIdQuery = 0x00000020 , IgnoreBosValidationFailure = 0x00000040 , DisableLpm = 0x00000080 ,
  NoExitLatencyRequest = 0x00000100 , ResetAfterSuperSpeedResume = 0x00000200 , TolerateStalePipes = 0x00000400 , DisableUasp = 0x00000800 ,
  NoIsochDelayRequest = 0x00001000 , ResetAfterIdleResume = 0x00002000 , DisableHotReset = 0x00004000 , SkipBosQuery = 0x00008000 ,
  NonFunctional = 0x00010000 , DisableUsb20Lpm = 0x00020000 , DisableRemoteWakeForUsb20Lpm = 0x00040000 , DisableSuperSpeed = 0x00080000 ,
  BlockedDevice = 0x00100000 , UseWin8DescriptorValidation = 0x00200000 , AlwaysSecondReset = 0x00400000
}
 
enum class  ChildProperty : ULONG {
  NotRemovable = 0x00000001 , IsHub = 0x00000002 , HighSpeedCapable = 0x00000004 , MsOsNotSupported = 0x00000080 ,
  LtmCapable = 0x00000100 , DualRole = 0x00000200 , ChargingPolicySupported = 0x00000400 , AcpiAllowsD3Cold = 0x00000800 ,
  ExtPropertiesInstalled = 0x00001000 , IsComposite = 0x00002000 , HasBillboard = 0x00004000 , SupportsStreams = 0x00008000 ,
  RemoteWakeCapable = 0x00010000 , SelfPowered = 0x00020000 , Usb20LpmCapable = 0x00040000 , BeslCapable = 0x00080000 ,
  ContainerIdKnown = 0x10000000 , ContainerIdFromBos = 0x20000000 , UxdReserved = 0x01000000 , SupportsSelectiveSuspend = 0x02000000 ,
  AllowIdleIrpInD3 = 0x04000000
}
 
enum class  ChildState : ULONG {
  ReprogrammingPending = 0x00000001 , DifferentDeviceOnBootPort = 0x00000002 , ActivityIdSet = 0x00000004 , AttachSucceeded = 0x00000008 ,
  WarmResetOnEnumeration = 0x00000010 , LastSetAddressFailed = 0x00000020 , AltSettingFiltered = 0x00000040 , ConfigurationValid = 0x00000080 ,
  WasResetAtResume = 0x00000100 , D3ColdEnabledByDriver = 0x00000200 , FailedAnEnumeration = 0x00000400 , U1EnabledUpstream = 0x00000800 ,
  U2EnabledUpstream = 0x00001000 , AltEnumCompleted = 0x00002000 , AltEnumCommandSent = 0x00004000 , MsOsInstallHandled = 0x00008000 ,
  Disconnected = 0x00010000 , PendingNoPingResponse = 0x00020000 , HotResetOnEnumeration = 0x00040000 , WorkingDevice = 0x10000000 ,
  PrefixedSerial = 0x20000000 , DualRoleCommandSent = 0x00800000
}
 
enum class  ChildSqm : ULONG {
  Virtualized = 0x00000004 , IsOnXhci = 0x00000008 , HoldsPagingFiles = 0x00000010 , ValidBos = 0x00000020 ,
  SupportsStreams = 0x00000040 , MultipleConfigurations = 0x00000080 , SuperSpeedCapable = 0x00000200
}
 
enum class  PipeState : UCHAR {
  Invalid , NotCreated , PendingCreate , PendingEnable ,
  Enabled , PendingDisable , Disabled , Deleted
}
 

Functions

 C_ASSERT (sizeof(HubUxdSettings)==68)
 
 WDF_DECLARE_CONTEXT_TYPE_WITH_NAME (HubChild, HubGetChildContext)
 

Macro Definition Documentation

◆ HUB_BILLBOARD_NO_MODE

#define HUB_BILLBOARD_NO_MODE   0xFF

Definition at line 227 of file hubchild.h.

◆ HUB_TUNNEL_STATE_NATIVE

#define HUB_TUNNEL_STATE_NATIVE   UCXHUB_TUNNEL_STATE_NATIVE

Definition at line 53 of file hubchild.h.

◆ HUB_TUNNEL_STATE_NONE

#define HUB_TUNNEL_STATE_NONE   UCXHUB_TUNNEL_STATE_NOT_ANSWERED

Definition at line 50 of file hubchild.h.

◆ HUB_TUNNEL_STATE_NOT_USB4

#define HUB_TUNNEL_STATE_NOT_USB4   UCXHUB_TUNNEL_STATE_NO_INFORMATION

Definition at line 51 of file hubchild.h.

◆ HUB_TUNNEL_STATE_TUNNELED

#define HUB_TUNNEL_STATE_TUNNELED   UCXHUB_TUNNEL_STATE_TUNNELED

Definition at line 52 of file hubchild.h.

◆ HUB_TUNNEL_STATE_UNKNOWN

#define HUB_TUNNEL_STATE_UNKNOWN   UCXHUB_TUNNEL_STATE_UNKNOWN

Definition at line 54 of file hubchild.h.

Enumeration Type Documentation

◆ ChildHack

Enumerator
DisableSerialNumber 
AlwaysQueryMsOs 
ResetAfterSystemResume 
DisableOnSoftRemove 
RequestConfigDescOnReset 
SkipContainerIdQuery 
IgnoreBosValidationFailure 
DisableLpm 
NoExitLatencyRequest 
ResetAfterSuperSpeedResume 
TolerateStalePipes 
DisableUasp 
NoIsochDelayRequest 
ResetAfterIdleResume 
DisableHotReset 
SkipBosQuery 
NonFunctional 
DisableUsb20Lpm 
DisableRemoteWakeForUsb20Lpm 
DisableSuperSpeed 
BlockedDevice 
UseWin8DescriptorValidation 
AlwaysSecondReset 

Definition at line 22 of file hubchild.h.

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};
@ ResetAfterIdleResume
@ ResetAfterSystemResume
@ DisableRemoteWakeForUsb20Lpm
@ TolerateStalePipes
@ AlwaysSecondReset
@ UseWin8DescriptorValidation
@ DisableSerialNumber
@ IgnoreBosValidationFailure
@ RequestConfigDescOnReset
@ DisableOnSoftRemove
@ DisableSuperSpeed
@ ResetAfterSuperSpeedResume
@ SkipContainerIdQuery
@ NoExitLatencyRequest
@ NoIsochDelayRequest

◆ ChildMuxFlag

Enumerator
Stopped 
PowerReference 
PnpOperationPending 

Definition at line 14 of file hubchild.h.

15{
16 Stopped = 0x00000001,
17 PowerReference = 0x00000002,
18 PnpOperationPending = 0x00000004
19};

◆ ChildProperty

Enumerator
NotRemovable 
IsHub 
HighSpeedCapable 
MsOsNotSupported 
LtmCapable 
DualRole 
ChargingPolicySupported 
AcpiAllowsD3Cold 
ExtPropertiesInstalled 
IsComposite 
HasBillboard 
SupportsStreams 
RemoteWakeCapable 
SelfPowered 
Usb20LpmCapable 
BeslCapable 
ContainerIdKnown 

From MS OS, or generated from the serial number

ContainerIdFromBos 
UxdReserved 

A UXD settings record redirects the device to a VM

SupportsSelectiveSuspend 
AllowIdleIrpInD3 

Definition at line 57 of file hubchild.h.

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};
@ SupportsSelectiveSuspend

◆ ChildSqm

Enumerator
Virtualized 
IsOnXhci 
HoldsPagingFiles 
ValidBos 
SupportsStreams 
MultipleConfigurations 
SuperSpeedCapable 

Definition at line 120 of file hubchild.h.

121{
122 Virtualized = 0x00000004,
123 IsOnXhci = 0x00000008,
124 HoldsPagingFiles = 0x00000010,
125 ValidBos = 0x00000020,
126 SupportsStreams = 0x00000040,
127 MultipleConfigurations = 0x00000080,
128 SuperSpeedCapable = 0x00000200
129};
@ HoldsPagingFiles
@ SuperSpeedCapable
@ MultipleConfigurations

◆ ChildState

Enumerator
ReprogrammingPending 
DifferentDeviceOnBootPort 
ActivityIdSet 
AttachSucceeded 
WarmResetOnEnumeration 
LastSetAddressFailed 
AltSettingFiltered 
ConfigurationValid 
WasResetAtResume 
D3ColdEnabledByDriver 
FailedAnEnumeration 
U1EnabledUpstream 
U2EnabledUpstream 
AltEnumCompleted 
AltEnumCommandSent 
MsOsInstallHandled 
Disconnected 
PendingNoPingResponse 
HotResetOnEnumeration 
WorkingDevice 

The PDO describes a working device, not a placeholder

PrefixedSerial 
DualRoleCommandSent 

Definition at line 87 of file hubchild.h.

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};
@ ReprogrammingPending
@ DualRoleCommandSent
@ WarmResetOnEnumeration
@ D3ColdEnabledByDriver
@ AltEnumCommandSent
@ PendingNoPingResponse
@ LastSetAddressFailed
@ HotResetOnEnumeration
@ FailedAnEnumeration
@ ConfigurationValid
@ MsOsInstallHandled
@ DifferentDeviceOnBootPort
@ AltSettingFiltered

◆ PipeState

Enumerator
Invalid 
NotCreated 
PendingCreate 
PendingEnable 
Enabled 
PendingDisable 
Disabled 
Deleted 

Definition at line 157 of file hubchild.h.

Function Documentation

◆ C_ASSERT()

C_ASSERT ( sizeof(HubUxdSettings)  = =68)

◆ WDF_DECLARE_CONTEXT_TYPE_WITH_NAME()

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME ( HubChild  ,
HubGetChildContext   
)