ReactOS 0.4.17-dev-1281-g065abb3
HubChild Class Reference

#include <hubchild.h>

Collaboration diagram for HubChild:

Public Member Functions

VOID Post (_In_ DsmEvent Event)
 
BOOLEAN HasState (_In_ ChildState Flag) const
 
VOID SetState (_In_ ChildState Flag)
 
VOID ClearState (_In_ ChildState Flag)
 
BOOLEAN HasHack (_In_ ChildHack Flag) const
 
BOOLEAN HasProperty (_In_ ChildProperty Flag) const
 
VOID SetProperty (_In_ ChildProperty Flag)
 
VOID ClearProperty (_In_ ChildProperty Flag)
 
USB_DEVICE_SPEED Speed () const
 

Static Public Member Functions

static HubChild * Create (_In_ HubPort *Port)
 
static HubChild * FromObject (_In_ WDFOBJECT Object)
 

Public Attributes

DeviceMachine m_Machine
 
WDFOBJECT m_Object
 
HubFdo * m_Hub
 
HubPort * m_Port
 
HubPdo * m_Pdo
 
UCXUSBDEVICE m_UsbDevice
 
ULONG m_MuxFlags
 
LIST_ENTRY m_HubLink
 
LIST_ENTRY m_FanOutLink
 
LIST_ENTRY m_SurpriseRemoveLink
 
ULONG m_Kind
 
ULONG m_Hacks
 
volatile LONG m_Properties
 
volatile LONG m_StateFlags
 
ULONG m_VerifierFlags
 
HubTimer m_Timer
 
WDFTIMER m_BandwidthRetryTimer
 
PUCXHUB_WORKITEM m_WorkItem
 
BOOLEAN m_NeedsForwardProgress
 
KEVENT m_PnpEvent
 
NTSTATUS m_PnpStatus
 
KEVENT m_PreStartEvent
 
KEVENT m_QueryTextEvent
 
PWDFDEVICE_INIT m_PdoInit
 
ULONG m_EnumRetryCount
 
ULONG m_DuplicateRetryCount
 
UCHAR m_Address
 
USHORT m_MaxPacketSize0
 
UCXHUB_DEVICE_CREATE_INFO m_CreateInfo
 
NTSTATUS m_LastNtStatus
 
USBD_STATUS m_LastUsbdStatus
 
ULONG m_EnumMessageId
 
LARGE_INTEGER m_LastResetTime
 
HubControlRequest m_Control
 
HubControlRequest m_BootControl
 
WDFREQUEST m_UcxRequest
 
WDFMEMORY m_UcxPayloadMemory
 
HubUcxPayload * m_UcxPayload
 
ULONG m_UcxIoctl
 
WDFREQUEST m_ClientRequest
 
WDFREQUEST m_FdoRequest
 
KSPIN_LOCK m_ConfigLock
 
HubConfiguration * m_CurrentConfig
 
HubConfiguration * m_OldConfig
 
HubInterface * m_NewInterface
 
HubInterface * m_OldInterface
 
HubInterface * m_NextInterface
 
UCXENDPOINT m_DefaultEndpoint
 
UCXENDPOINT * m_EndpointsToEnable
 
UCXENDPOINT * m_EndpointsToDisable
 
UCXENDPOINT * m_EndpointsUnchanged
 
ULONG m_EnableCount
 
ULONG m_DisableCount
 
ULONG m_UnchangedCount
 
ULONG m_EndpointArrayCapacity
 
PVOID m_AlternateSettingFilter
 
USB_DEVICE_DESCRIPTOR m_DeviceDescriptor
 
USB_DEVICE_QUALIFIER_DESCRIPTOR m_Qualifier
 
PUSB_CONFIGURATION_DESCRIPTOR m_ConfigDescriptor
 
PUSB_BOS_DESCRIPTOR m_Bos
 
PUSB_STRING_DESCRIPTOR m_LanguageIds
 
PUSB_STRING_DESCRIPTOR m_ProductString
 
USHORT m_LanguageId
 
UCHAR m_ScratchBuffer [256]
 
RTL_BITMAP m_ValidationBitmap
 
ULONG m_ValidationBits [8]
 
PWCHAR m_SerialNumber
 
ULONG m_SerialNumberLength
 
ULONG m_SerialPrefixLength
 
GUID m_ContainerId
 
UNICODE_STRING m_VmReservedId
 
PUSB_INTERFACE_DESCRIPTOR m_CompatIdInterface
 
HubMsOsExtConfig * m_MsOsExtConfig
 
UCHAR m_U1Timeout
 
UCHAR m_U2Timeout
 
BOOLEAN m_HasResumeRecoveryTime
 
UCHAR m_ResumeRecoveryTime
 
PVOID m_BootHandle
 
volatile LONG m_BootReportedMissing
 
DEVICE_POWER_STATE m_PowerState
 
HubPipe * m_TargetPipe
 
ULONG m_LpmPolicy
 
ULONG m_LinkFlags
 
UCHAR m_TargetU1Timeout
 
UCHAR m_TargetU2Timeout
 
UCHAR m_LatencyAdjustPercent
 
USHORT m_EffectiveExitLatency
 
USHORT m_TargetExitLatency
 
ULONG m_MaxExitLatencyFromEld
 
USHORT m_U1ExitLatency
 
USHORT m_U2ExitLatency
 
USHORT m_HostU1ExitLatency
 
USHORT m_HostU2ExitLatency
 
struct {
   UCHAR   U1Sel
 
   UCHAR   U1Pel
 
   USHORT   U2Sel
 
   USHORT   U2Pel
 
} m_Sel
 
USHORT m_RxTpDelay
 
USHORT m_TxTpDelay
 
ULONG m_Lpm20Status
 
UCHAR m_ResumeSignalingTime
 
ULONG m_TunnelState
 
HubMsOsString m_MsOsString
 
UCHAR m_MsOsVendorCode
 
HubMsOs20SetInfo m_MsOs20SetInfo
 
HubMsOs20Info m_MsOs20
 
PVOID m_MsOs20Set
 
ULONG m_MsOs20SetLength
 
BOOLEAN m_AltEnumCached
 
USB_DEVICE_DESCRIPTOR m_OriginalDeviceDescriptor
 
PVOID m_ExtProperties
 
PWCHAR m_FriendlyName
 
USHORT m_FriendlyNameLength
 
HubUxdSettings m_Uxd
 
volatile LONG m_SqmFlags
 
HubBillboardInfo * m_Billboard
 
PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED m_SublinkSpeedAttr
 
ULONG m_SublinkSpeedAttrCount
 
UCHAR m_DualRoleRequestCode
 
ULONG m_DualRoleLocalFeatures
 
ULONG m_DualRolePartnerFeatures
 
BOOLEAN m_SlowestLinkU1
 
BOOLEAN m_SlowestLinkU2
 
BOOLEAN m_HubPowerReferenceHeld
 

Static Private Member Functions

static VOID NTAPI TimerFired (_In_ PVOID Context)
 

Static Private Attributes

static EVT_WDF_OBJECT_CONTEXT_DESTROY EvtDestroy
 
static UCXHUB_WORKITEM_ROUTINE MachineWorkItem
 

Friends

class DeviceMachine
 

Detailed Description

Definition at line 238 of file hubchild.h.

Member Function Documentation

◆ ClearProperty()

VOID HubChild::ClearProperty ( _In_ ChildProperty  Flag)
inline

Definition at line 302 of file hubchild.h.

304 {
306 }
volatile LONG m_Properties
Definition: hubchild.h:330
#define InterlockedAnd
Definition: interlocked.h:77
long LONG
Definition: pedump.c:60
Definition: xml2sdb.h:103

◆ ClearState()

◆ Create()

HubChild * HubChild::Create ( _In_ HubPort *  Port)
static

Creates the device object on a port and publishes it there.

Definition at line 94 of file hubchild.cpp.

96{
97 HubFdo* Hub = Port->m_Hub;
99 WDF_TIMER_CONFIG TimerConfig;
102 PVOID Payload;
104
106 Attributes.ParentObject = Port->m_Object;
107 Attributes.ExecutionLevel = WdfExecutionLevelPassive;
108 Attributes.EvtDestroyCallback = EvtDestroy;
109
110 Status = WdfObjectCreate(&Attributes, &Object);
111 if (!NT_SUCCESS(Status))
112 {
113 DPRINT1("Port %u device object creation failed 0x%lx\n", Port->Number(), Status);
114 return NULL;
115 }
116
118
119 Child = new (HubGetChildContext(Object)) HubChild();
121 Child->m_Port = Port;
122 Child->m_Hub = Hub;
123
124 if (!Port->HasProperty(PortProperty::Removable))
125 Child->SetProperty(ChildProperty::NotRemovable);
126 else
127 Child->ClearProperty(ChildProperty::NotRemovable);
128
129 DPRINT("Hub %p port %u enumeration starting\n", Hub, Port->Number());
130
131 Status = Child->m_Control.Create(Port->m_Object, WdfDeviceGetIoTarget(Hub->m_Device));
132 if (!NT_SUCCESS(Status))
133 {
134 DPRINT1("Device %p control request creation failed 0x%lx\n", Child, Status);
135 goto Failed;
136 }
138
139 Status = HubCreateDeviceRequest(Port, &Child->m_UcxRequest);
140 if (!NT_SUCCESS(Status))
141 {
142 DPRINT1("Device %p UCX request creation failed 0x%lx\n", Child, Status);
143 goto Failed;
144 }
145
146 Child->m_LanguageId = DEVICE_DEFAULT_LANGUAGE;
147 Child->m_Kind = 0;
148 Child->m_ValidationBitmap.SizeOfBitMap = RTL_BITS_OF(Child->m_ValidationBits);
149 Child->m_ValidationBitmap.Buffer = Child->m_ValidationBits;
150
151 Child->m_Timer.Initialize(TimerFired, Child);
152
155 Attributes.ParentObject = Port->m_Object;
156 Attributes.ExecutionLevel = WdfExecutionLevelPassive;
157
158 Status = WdfTimerCreate(&TimerConfig, &Attributes, &Child->m_BandwidthRetryTimer);
159 if (!NT_SUCCESS(Status))
160 {
161 DPRINT1("Device %p out of bandwidth timer creation failed 0x%lx\n", Child, Status);
162 goto Failed;
163 }
164 WdfObjectReferenceWithTag(Child->m_BandwidthRetryTimer, (PVOID)HubTagDevice);
165
167 KeInitializeEvent(&Child->m_PreStartEvent, NotificationEvent, FALSE);
168 KeInitializeEvent(&Child->m_QueryTextEvent, NotificationEvent, FALSE);
169
170 Child->m_WorkItem = Hub->AllocateWorkItem();
171 if (Child->m_WorkItem == NULL)
172 {
173 DPRINT1("Device %p work item allocation failed\n", Child);
174 goto Failed;
175 }
176
178 Attributes.ParentObject = Port->m_Object;
179
180 Status = WdfMemoryCreate(&Attributes,
183 sizeof(HubUcxPayload),
184 &Child->m_UcxPayloadMemory,
185 &Payload);
186 if (!NT_SUCCESS(Status))
187 {
188 DPRINT1("Device %p UCX payload allocation failed 0x%lx\n", Child, Status);
189 goto Failed;
190 }
191 WdfObjectReferenceWithTag(Child->m_UcxPayloadMemory, (PVOID)HubTagDevice);
192 Child->m_UcxPayload = (HubUcxPayload*)Payload;
193
194 KeInitializeSpinLock(&Child->m_ConfigLock);
195 Child->m_Machine.Initialize(Child);
196
197 Port->m_Child = Child;
198 DPRINT("Port %u created device %p\n", Port->Number(), Child);
199 return Child;
200
201Failed:
203 return NULL;
204}
LONG NTSTATUS
Definition: precomp.h:26
#define DPRINT1
Definition: precomp.h:8
HubFdo * Hub
Definition: bootdev.cpp:261
WDFOBJECT m_Object
Definition: hubchild.h:315
static EVT_WDF_OBJECT_CONTEXT_DESTROY EvtDestroy
Definition: hubchild.h:547
Definition: fdo.h:132
WDFDEVICE m_Device
Definition: fdo.h:349
PUCXHUB_WORKITEM AllocateWorkItem()
Definition: fdo.cpp:46
_In_ ULONG Attributes
Definition: dispmprt.h:1077
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define KeInitializeEvent(pEvt, foo, foo2)
Definition: env_spec_w32.h:477
#define NonPagedPool
Definition: env_spec_w32.h:307
#define KeInitializeSpinLock(sl)
Definition: env_spec_w32.h:604
Status
Definition: gdiplustypes.h:24
CPPORT Port[4]
Definition: headless.c:38
static const char HubTagDevice[]
Definition: hubchild.cpp:15
static NTSTATUS NTAPI HubCreateDeviceRequest(_In_ HubPort *Port, _Out_ WDFREQUEST *Request)
Definition: hubchild.cpp:75
#define DEVICE_DEFAULT_LANGUAGE
Definition: hubchild.cpp:26
static const char HubTagDeviceCreate[]
Definition: hubchild.cpp:14
EVT_WDF_TIMER HubEvtBandwidthRetryTimer
Definition: hubsvc.h:214
#define HUB_TAG_DEVICE
Definition: hubutil.h:13
#define RTL_BITS_OF(sizeOfArg)
Definition: ntbasedef.h:680
@ NotificationEvent
@ Failed
Definition: arc.h:88
#define DPRINT
Definition: sndvol32.h:73
WdfObjectDelete(String)
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
Definition: wdffdo.h:536
FORCEINLINE VOID WDF_OBJECT_ATTRIBUTES_INIT(_Out_ PWDF_OBJECT_ATTRIBUTES Attributes)
Definition: wdfobject.h:147
#define WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(_attributes, _contexttype)
Definition: wdfobject.h:170
@ WdfExecutionLevelPassive
Definition: wdfobject.h:54
#define WdfObjectReferenceWithTag(Handle, Tag)
Definition: wdfobject.h:806
FORCEINLINE VOID WDF_TIMER_CONFIG_INIT(_Out_ PWDF_TIMER_CONFIG Config, _In_ PFN_WDF_TIMER EvtTimerFunc)
Definition: wdftimer.h:111

Referenced by PortMachine::CreateDevice().

◆ FromObject()

HubChild * HubChild::FromObject ( _In_ WDFOBJECT  Object)
static

Definition at line 29 of file hubchild.cpp.

31{
32 return HubGetChildContext(Object);
33}

◆ HasHack()

◆ HasProperty()

◆ HasState()

◆ Post()

VOID HubChild::Post ( _In_ DsmEvent  Event)
inline

Definition at line 253 of file hubchild.h.

255 {
257 }
DeviceMachine m_Machine
Definition: hubchild.h:312
BOOLEAN SmPost(_In_ Event Ev)
Definition: smengine.h:370
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
Definition: dispmprt.h:1287

Referenced by DeviceMachine::DisableNewInterfaceEndpoints(), PortMachine::DisconnectDevice(), PortMachine::ReattachBootDevice(), and PortMachine::TellDevice().

◆ SetProperty()

VOID HubChild::SetProperty ( _In_ ChildProperty  Flag)
inline

◆ SetState()

◆ Speed()

USB_DEVICE_SPEED HubChild::Speed ( ) const

Definition at line 36 of file hubchild.cpp.

37{
39 return UsbSuperSpeed;
41 return UsbHighSpeed;
43 return UsbLowSpeed;
44 return UsbFullSpeed;
45}
ULONG m_Kind
Definition: hubchild.h:328
#define DSM_KIND_SUPER_SPEED
Definition: devsm.h:150
#define DSM_KIND_LOW_SPEED
Definition: devsm.h:149
#define DSM_KIND_HIGH_SPEED
Definition: devsm.h:147
@ UsbSuperSpeed
Definition: usb200.h:45
@ UsbHighSpeed
Definition: usb200.h:44
@ UsbLowSpeed
Definition: usb200.h:42
@ UsbFullSpeed
Definition: usb200.h:43

Referenced by DeviceMachine::DeviceSpeedChanged().

◆ TimerFired()

VOID NTAPI HubChild::TimerFired ( _In_ PVOID  Context)
staticprivate

Definition at line 246 of file hubchild.cpp.

248{
249 ((HubChild*)Context)->Post(DsmEvent::TimerFired);
250}
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81

Friends And Related Function Documentation

◆ DeviceMachine

friend class DeviceMachine
friend

Definition at line 550 of file hubchild.h.

Member Data Documentation

◆ EvtDestroy

VOID NTAPI HubChild::EvtDestroy
staticprivate

Definition at line 547 of file hubchild.h.

Referenced by Create().

◆ m_Address

UCHAR HubChild::m_Address

Definition at line 350 of file hubchild.h.

Referenced by while().

◆ m_AltEnumCached

BOOLEAN HubChild::m_AltEnumCached

Definition at line 499 of file hubchild.h.

Referenced by DeviceMachine::AltEnumNeededInEnum().

◆ m_AlternateSettingFilter

PVOID HubChild::m_AlternateSettingFilter

Definition at line 383 of file hubchild.h.

◆ m_BandwidthRetryTimer

WDFTIMER HubChild::m_BandwidthRetryTimer

Definition at line 336 of file hubchild.h.

◆ m_Billboard

◆ m_BootControl

HubControlRequest HubChild::m_BootControl

Definition at line 360 of file hubchild.h.

◆ m_BootHandle

PVOID HubChild::m_BootHandle

Definition at line 429 of file hubchild.h.

Referenced by DeviceMachine::NotifyWrongDevice().

◆ m_BootReportedMissing

volatile LONG HubChild::m_BootReportedMissing

Definition at line 430 of file hubchild.h.

◆ m_Bos

PUSB_BOS_DESCRIPTOR HubChild::m_Bos

Definition at line 389 of file hubchild.h.

◆ m_ClientRequest

WDFREQUEST HubChild::m_ClientRequest

Definition at line 365 of file hubchild.h.

Referenced by DeviceMachine::FailClientRequest().

◆ m_CompatIdInterface

PUSB_INTERFACE_DESCRIPTOR HubChild::m_CompatIdInterface

Definition at line 415 of file hubchild.h.

◆ m_ConfigDescriptor

PUSB_CONFIGURATION_DESCRIPTOR HubChild::m_ConfigDescriptor

Definition at line 388 of file hubchild.h.

◆ m_ConfigLock

KSPIN_LOCK HubChild::m_ConfigLock

Definition at line 369 of file hubchild.h.

◆ m_ContainerId

GUID HubChild::m_ContainerId

Definition at line 409 of file hubchild.h.

◆ m_Control

HubControlRequest HubChild::m_Control

◆ m_CreateInfo

UCXHUB_DEVICE_CREATE_INFO HubChild::m_CreateInfo

Definition at line 352 of file hubchild.h.

◆ m_CurrentConfig

◆ m_DefaultEndpoint

◆ m_DeviceDescriptor

◆ m_DisableCount

ULONG HubChild::m_DisableCount

Definition at line 380 of file hubchild.h.

Referenced by DeviceMachine::EndpointsNeedProgramming().

◆ m_DualRoleLocalFeatures

ULONG HubChild::m_DualRoleLocalFeatures

Definition at line 528 of file hubchild.h.

◆ m_DualRolePartnerFeatures

ULONG HubChild::m_DualRolePartnerFeatures

Definition at line 529 of file hubchild.h.

◆ m_DualRoleRequestCode

UCHAR HubChild::m_DualRoleRequestCode

Definition at line 527 of file hubchild.h.

◆ m_DuplicateRetryCount

ULONG HubChild::m_DuplicateRetryCount

◆ m_EffectiveExitLatency

USHORT HubChild::m_EffectiveExitLatency

◆ m_EnableCount

ULONG HubChild::m_EnableCount

Definition at line 379 of file hubchild.h.

Referenced by DeviceMachine::EndpointsNeedProgramming().

◆ m_EndpointArrayCapacity

ULONG HubChild::m_EndpointArrayCapacity

Definition at line 382 of file hubchild.h.

◆ m_EndpointsToDisable

UCXENDPOINT* HubChild::m_EndpointsToDisable

Definition at line 377 of file hubchild.h.

◆ m_EndpointsToEnable

UCXENDPOINT* HubChild::m_EndpointsToEnable

Definition at line 376 of file hubchild.h.

◆ m_EndpointsUnchanged

UCXENDPOINT* HubChild::m_EndpointsUnchanged

Definition at line 378 of file hubchild.h.

◆ m_EnumMessageId

◆ m_EnumRetryCount

◆ m_ExtProperties

PVOID HubChild::m_ExtProperties

Definition at line 505 of file hubchild.h.

Referenced by DeviceMachine::FreeExtPropertiesBuffer().

◆ m_FanOutLink

LIST_ENTRY HubChild::m_FanOutLink

Definition at line 324 of file hubchild.h.

◆ m_FdoRequest

WDFREQUEST HubChild::m_FdoRequest

◆ m_FriendlyName

PWCHAR HubChild::m_FriendlyName

Definition at line 508 of file hubchild.h.

◆ m_FriendlyNameLength

USHORT HubChild::m_FriendlyNameLength

Definition at line 509 of file hubchild.h.

◆ m_Hacks

ULONG HubChild::m_Hacks

◆ m_HasResumeRecoveryTime

BOOLEAN HubChild::m_HasResumeRecoveryTime

Definition at line 425 of file hubchild.h.

◆ m_HostU1ExitLatency

USHORT HubChild::m_HostU1ExitLatency

Definition at line 461 of file hubchild.h.

◆ m_HostU2ExitLatency

USHORT HubChild::m_HostU2ExitLatency

Definition at line 462 of file hubchild.h.

◆ m_Hub

◆ m_HubLink

LIST_ENTRY HubChild::m_HubLink

Definition at line 323 of file hubchild.h.

◆ m_HubPowerReferenceHeld

BOOLEAN HubChild::m_HubPowerReferenceHeld

◆ m_Kind

◆ m_LanguageId

USHORT HubChild::m_LanguageId

Definition at line 392 of file hubchild.h.

◆ m_LanguageIds

PUSB_STRING_DESCRIPTOR HubChild::m_LanguageIds

Definition at line 390 of file hubchild.h.

Referenced by DeviceMachine::LanguageIdsValid(), and DeviceMachine::ReadLanguageIds().

◆ m_LastNtStatus

NTSTATUS HubChild::m_LastNtStatus

Definition at line 353 of file hubchild.h.

Referenced by DeviceMachine::CompleteClientRequestLastStatus().

◆ m_LastResetTime

LARGE_INTEGER HubChild::m_LastResetTime

Definition at line 356 of file hubchild.h.

◆ m_LastUsbdStatus

USBD_STATUS HubChild::m_LastUsbdStatus

Definition at line 354 of file hubchild.h.

◆ m_LatencyAdjustPercent

UCHAR HubChild::m_LatencyAdjustPercent

◆ m_LinkFlags

◆ m_Lpm20Status

ULONG HubChild::m_Lpm20Status

Definition at line 478 of file hubchild.h.

◆ m_LpmPolicy

ULONG HubChild::m_LpmPolicy

Definition at line 441 of file hubchild.h.

Referenced by HubPdoLpmSettingChanged().

◆ m_Machine

DeviceMachine HubChild::m_Machine

Definition at line 312 of file hubchild.h.

Referenced by Post().

◆ m_MaxExitLatencyFromEld

ULONG HubChild::m_MaxExitLatencyFromEld

Definition at line 456 of file hubchild.h.

◆ m_MaxPacketSize0

USHORT HubChild::m_MaxPacketSize0

Definition at line 351 of file hubchild.h.

Referenced by DeviceMachine::UpdateDefaultEndpoint().

◆ m_MsOs20

◆ m_MsOs20Set

PVOID HubChild::m_MsOs20Set

Definition at line 495 of file hubchild.h.

◆ m_MsOs20SetInfo

HubMsOs20SetInfo HubChild::m_MsOs20SetInfo

Definition at line 493 of file hubchild.h.

Referenced by DeviceMachine::MsOs20Supported(), and DeviceMachine::ReadMsOs20Set().

◆ m_MsOs20SetLength

ULONG HubChild::m_MsOs20SetLength

Definition at line 496 of file hubchild.h.

◆ m_MsOsExtConfig

HubMsOsExtConfig* HubChild::m_MsOsExtConfig

◆ m_MsOsString

HubMsOsString HubChild::m_MsOsString

◆ m_MsOsVendorCode

UCHAR HubChild::m_MsOsVendorCode

Definition at line 490 of file hubchild.h.

Referenced by DeviceMachine::StoreMsOsVendorCode().

◆ m_MuxFlags

ULONG HubChild::m_MuxFlags

Definition at line 322 of file hubchild.h.

◆ m_NeedsForwardProgress

BOOLEAN HubChild::m_NeedsForwardProgress

Definition at line 338 of file hubchild.h.

Referenced by DeviceMachine::QueuePassiveWork().

◆ m_NewInterface

HubInterface* HubChild::m_NewInterface

Definition at line 372 of file hubchild.h.

◆ m_NextInterface

HubInterface* HubChild::m_NextInterface

Definition at line 374 of file hubchild.h.

Referenced by DeviceMachine::AlternateSettingLeft().

◆ m_Object

WDFOBJECT HubChild::m_Object

◆ m_OldConfig

HubConfiguration* HubChild::m_OldConfig

Definition at line 371 of file hubchild.h.

Referenced by DeviceMachine::DeleteOldConfigEndpoints().

◆ m_OldInterface

HubInterface* HubChild::m_OldInterface

Definition at line 373 of file hubchild.h.

Referenced by DeviceMachine::DeleteOldInterfaceEndpoints().

◆ m_OriginalDeviceDescriptor

USB_DEVICE_DESCRIPTOR HubChild::m_OriginalDeviceDescriptor

◆ m_Pdo

◆ m_PdoInit

PWDFDEVICE_INIT HubChild::m_PdoInit

Definition at line 345 of file hubchild.h.

◆ m_PnpEvent

◆ m_PnpStatus

NTSTATUS HubChild::m_PnpStatus

◆ m_Port

◆ m_PowerState

DEVICE_POWER_STATE HubChild::m_PowerState

Definition at line 433 of file hubchild.h.

◆ m_PreStartEvent

KEVENT HubChild::m_PreStartEvent

Definition at line 343 of file hubchild.h.

Referenced by DeviceMachine::AckPreStart(), and DeviceMachine::CompletePreStart().

◆ m_ProductString

PUSB_STRING_DESCRIPTOR HubChild::m_ProductString

Definition at line 391 of file hubchild.h.

Referenced by DeviceMachine::ProductNameValid().

◆ m_Properties

volatile LONG HubChild::m_Properties

◆ m_Qualifier

USB_DEVICE_QUALIFIER_DESCRIPTOR HubChild::m_Qualifier

Definition at line 387 of file hubchild.h.

Referenced by DeviceMachine::QualifierValid(), and DeviceMachine::ReadQualifier().

◆ m_QueryTextEvent

KEVENT HubChild::m_QueryTextEvent

Definition at line 344 of file hubchild.h.

Referenced by DeviceMachine::CompleteQueryText(), and DeviceMachine::SignalQueryText().

◆ m_ResumeRecoveryTime

UCHAR HubChild::m_ResumeRecoveryTime

Definition at line 426 of file hubchild.h.

◆ m_ResumeSignalingTime

UCHAR HubChild::m_ResumeSignalingTime

Definition at line 481 of file hubchild.h.

◆ m_RxTpDelay

USHORT HubChild::m_RxTpDelay

Definition at line 474 of file hubchild.h.

◆ m_ScratchBuffer

◆ 

struct { ... } HubChild::m_Sel

◆ m_SerialNumber

◆ m_SerialNumberLength

ULONG HubChild::m_SerialNumberLength

Definition at line 401 of file hubchild.h.

◆ m_SerialPrefixLength

ULONG HubChild::m_SerialPrefixLength

Definition at line 406 of file hubchild.h.

◆ m_SlowestLinkU1

BOOLEAN HubChild::m_SlowestLinkU1

Definition at line 532 of file hubchild.h.

◆ m_SlowestLinkU2

BOOLEAN HubChild::m_SlowestLinkU2

Definition at line 533 of file hubchild.h.

◆ m_SqmFlags

volatile LONG HubChild::m_SqmFlags

Definition at line 515 of file hubchild.h.

◆ m_StateFlags

volatile LONG HubChild::m_StateFlags

Definition at line 331 of file hubchild.h.

Referenced by DeviceMachine::AltEnumNeededInEnum(), ClearState(), HasState(), and SetState().

◆ m_SublinkSpeedAttr

PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED HubChild::m_SublinkSpeedAttr

Definition at line 523 of file hubchild.h.

◆ m_SublinkSpeedAttrCount

ULONG HubChild::m_SublinkSpeedAttrCount

Definition at line 524 of file hubchild.h.

◆ m_SurpriseRemoveLink

LIST_ENTRY HubChild::m_SurpriseRemoveLink

Definition at line 325 of file hubchild.h.

◆ m_TargetExitLatency

USHORT HubChild::m_TargetExitLatency

◆ m_TargetPipe

HubPipe* HubChild::m_TargetPipe

◆ m_TargetU1Timeout

UCHAR HubChild::m_TargetU1Timeout

◆ m_TargetU2Timeout

UCHAR HubChild::m_TargetU2Timeout

◆ m_Timer

◆ m_TunnelState

ULONG HubChild::m_TunnelState

Definition at line 484 of file hubchild.h.

◆ m_TxTpDelay

USHORT HubChild::m_TxTpDelay

Definition at line 475 of file hubchild.h.

◆ m_U1ExitLatency

USHORT HubChild::m_U1ExitLatency

Definition at line 459 of file hubchild.h.

◆ m_U1Timeout

UCHAR HubChild::m_U1Timeout

◆ m_U2ExitLatency

USHORT HubChild::m_U2ExitLatency

Definition at line 460 of file hubchild.h.

◆ m_U2Timeout

UCHAR HubChild::m_U2Timeout

◆ m_UcxIoctl

ULONG HubChild::m_UcxIoctl

Definition at line 364 of file hubchild.h.

Referenced by DeviceMachine::CancelControllerIoctl().

◆ m_UcxPayload

HubUcxPayload* HubChild::m_UcxPayload

Definition at line 363 of file hubchild.h.

◆ m_UcxPayloadMemory

WDFMEMORY HubChild::m_UcxPayloadMemory

Definition at line 362 of file hubchild.h.

◆ m_UcxRequest

WDFREQUEST HubChild::m_UcxRequest

Definition at line 361 of file hubchild.h.

Referenced by DeviceMachine::CancelControllerIoctl().

◆ m_UnchangedCount

ULONG HubChild::m_UnchangedCount

Definition at line 381 of file hubchild.h.

Referenced by DeviceMachine::DisablePendingEndpoints().

◆ m_UsbDevice

UCXUSBDEVICE HubChild::m_UsbDevice

◆ m_Uxd

HubUxdSettings HubChild::m_Uxd

Definition at line 512 of file hubchild.h.

◆ m_ValidationBitmap

RTL_BITMAP HubChild::m_ValidationBitmap

Definition at line 396 of file hubchild.h.

◆ m_ValidationBits

ULONG HubChild::m_ValidationBits[8]

Definition at line 397 of file hubchild.h.

◆ m_VerifierFlags

ULONG HubChild::m_VerifierFlags

Definition at line 332 of file hubchild.h.

Referenced by DeviceMachine::QueryRegistryValues().

◆ m_VmReservedId

UNICODE_STRING HubChild::m_VmReservedId

Definition at line 412 of file hubchild.h.

◆ m_WorkItem

PUCXHUB_WORKITEM HubChild::m_WorkItem

Definition at line 337 of file hubchild.h.

Referenced by DeviceMachine::QueuePassiveWork().

◆ MachineWorkItem

VOID NTAPI HubChild::MachineWorkItem
staticprivate

Definition at line 548 of file hubchild.h.

Referenced by DeviceMachine::QueuePassiveWork().

◆ U1Pel

UCHAR HubChild::U1Pel

Definition at line 468 of file hubchild.h.

◆ U1Sel

UCHAR HubChild::U1Sel

Definition at line 467 of file hubchild.h.

◆ U2Pel

USHORT HubChild::U2Pel

Definition at line 470 of file hubchild.h.

◆ U2Sel

USHORT HubChild::U2Sel

Definition at line 469 of file hubchild.h.


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