|
ReactOS 0.4.17-dev-1281-g065abb3
|
#include <hostctl.h>

Static Public Member Functions | |
| static _Must_inspect_result_ NTSTATUS | Create (_In_ PUCX_DRIVER_GLOBALS Globals, _In_ WDFDEVICE Device, _In_ PUCX_CONTROLLER_CONFIG Config, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ UCXCONTROLLER *Controller) |
| static UcxController * | FromHandle (_In_ UCXCONTROLLER Handle) |
| static UcxController * | FromFdo (_In_ WDFDEVICE Fdo) |
Private Member Functions | |
| NTSTATUS | Initialize (_In_ PUCX_DRIVER_GLOBALS Globals, _In_ WDFDEVICE Fdo, _In_ const UCX_CONTROLLER_CONFIG *Config) |
| NTSTATUS | CreateQueues () |
| NTSTATUS | QueryHcCapabilities () |
| NTSTATUS | RegisterWmi () |
| VOID | Destroy () |
| NTSTATUS | StartWorkerThread () |
Static Private Attributes | |
| static EVT_WDF_OBJECT_CONTEXT_DESTROY | EvtDestroy |
| static KSTART_ROUTINE | WorkerThreadRoutine |
| static UCXHUB_WORKITEM_ROUTINE | ResetMachinePassiveRoutine |
Friends | |
| class | ControllerResetMachine |
| UcxController::_IRQL_requires_ | ( | PASSIVE_LEVEL | ) |
Definition at line 647 of file hostctl.cpp.
Referenced by UcxHubAddress0Release().
| BOOLEAN UcxController::BlockReset | ( | ) |
Definition at line 507 of file hostctl.cpp.
Referenced by GetCurrentFrameNumber(), and UcxRootHub::PortChanged().
|
static |
Definition at line 41 of file hostctl.cpp.
Referenced by UcxApiControllerCreate().
|
private |
Definition at line 58 of file hostqueues.cpp.
Referenced by Initialize().
|
private |
Definition at line 364 of file hostctl.cpp.
|
static |
Definition at line 21 of file hostctl.cpp.
Referenced by UcxEvtDefaultIoInternalDeviceControl(), UcxEvtTreePurgeIoInternalDeviceControl(), UcxEvtWmiNodeInfoQueryInstance(), and UcxHandleUserRequest().
|
static |
Definition at line 14 of file hostctl.cpp.
Referenced by UcxRootHub::Create(), UcxUsbDevice::Create(), UcxApiControllerNeedsReset(), UcxApiControllerNotifyTransportCharacteristicsChange(), UcxApiControllerResetComplete(), UcxApiControllerSetFailed(), and UcxApiControllerSetIdStrings().
Definition at line 564 of file hostctl.cpp.
Referenced by UcxBusQueryBusTime().
Grown is TRUE for hubs that asked for the larger stack interface; they expect the V2 layout.
Definition at line 692 of file hostctl.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 263 of file hostctl.h.
|
inline |
|
private |
Definition at line 124 of file hostctl.cpp.
|
inline |
| VOID UcxController::MarkResetFinished | ( | ) |
Definition at line 551 of file hostctl.cpp.
Referenced by ControllerResetMachine::MarkResetFinished().
| VOID UcxController::MarkResetInProgress | ( | ) |
Definition at line 542 of file hostctl.cpp.
Referenced by ControllerResetMachine::MarkResetInProgress().
| VOID UcxController::NeedsReset | ( | ) |
Definition at line 415 of file hostctl.cpp.
Referenced by UcxApiControllerNeedsReset().
| VOID UcxController::NotifyDevicesResetDone | ( | ) |
Definition at line 110 of file hostreset.cpp.
Referenced by ControllerResetMachine::NotifyDevicesResetDone().
| VOID UcxController::NotifyTransportCharacteristicsChange | ( | _In_ PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS | Characteristics | ) |
Definition at line 498 of file hostctl.cpp.
Referenced by UcxApiControllerNotifyTransportCharacteristicsChange().
Definition at line 200 of file hostctl.h.
Referenced by NeedsReset(), PrepareDevicesForReset(), PrepareForResetOperationDone(), ResetComplete(), SetFailed(), and UnblockReset().
| VOID UcxController::PrepareDevicesForReset | ( | ) |
Warns every endpoint of the reset; each acknowledges once idle.
Definition at line 86 of file hostreset.cpp.
Referenced by ControllerResetMachine::PrepareDevicesForReset().
| VOID UcxController::PrepareForResetOperationDone | ( | ) |
An endpoint finished preparing for the reset.
Definition at line 124 of file hostreset.cpp.
Referenced by EndpointMachine::AckControllerReset().
| BOOLEAN UcxController::QueryClearTtBufferOnCancel | ( | ) |
Definition at line 610 of file hostctl.cpp.
|
private |
Synchronous IRP_MN_QUERY_CAPABILITIES down the FDO's stack.
Definition at line 239 of file hostctl.cpp.
Referenced by Initialize().
| BOOLEAN UcxController::QueryStreamsSupported | ( | ) |
Definition at line 626 of file hostctl.cpp.
Referenced by UcxHubStreamsSupported().
| VOID UcxController::QueueOnWorkerThread | ( | _In_ UcxWorkItem * | WorkItem | ) |
Definition at line 811 of file hostctl.cpp.
|
private |
Definition at line 289 of file hostctl.cpp.
Referenced by Initialize().
| VOID UcxController::ResetComplete | ( | _In_ PUCX_CONTROLLER_RESET_COMPLETE_INFO | Info | ) |
Definition at line 422 of file hostctl.cpp.
Referenced by UcxApiControllerResetComplete().
| VOID UcxController::ResumeIdle | ( | _Inout_ PUCXHUB_STOP_IDLE_CONTEXT | Context | ) |
Definition at line 680 of file hostctl.cpp.
Referenced by UcxHubAllowControllerIdle().
| VOID UcxController::SetFailed | ( | ) |
Definition at line 439 of file hostctl.cpp.
Referenced by UcxApiControllerSetFailed().
| NTSTATUS UcxController::SetIdStrings | ( | _In_ PUNICODE_STRING | Manufacturer, |
| _In_ PUNICODE_STRING | ModelName, | ||
| _In_ PUNICODE_STRING | ModelNumber | ||
| ) |
Definition at line 453 of file hostctl.cpp.
Referenced by UcxApiControllerSetIdStrings().
|
private |
Definition at line 772 of file hostctl.cpp.
Referenced by _IRQL_requires_().
| NTSTATUS UcxController::StopIdle | ( | _Inout_ PUCXHUB_STOP_IDLE_CONTEXT | Context | ) |
Definition at line 663 of file hostctl.cpp.
Referenced by UcxHubBlockControllerIdle().
| VOID UcxController::UnblockReset | ( | ) |
Drops a reset reference; the last one during a reset tells the machine once.
Definition at line 522 of file hostctl.cpp.
Referenced by BlockReset(), ControllerResetMachine::DropResetBlock(), GetCurrentFrameNumber(), and UcxRootHub::PortChanged().
| VOID UcxController::WalkDevices | ( | _In_ PFN_UCX_DEVICE_VISITOR | Visitor, |
| _In_opt_ PVOID | Context, | ||
| _In_ BOOLEAN | IncludeDisconnected | ||
| ) |
Definition at line 74 of file hostreset.cpp.
Referenced by NotifyDevicesResetDone(), and PrepareDevicesForReset().
|
friend |
|
staticprivate |
| IO_CSQ UcxController::m_AbortPipeCsq |
Definition at line 306 of file hostctl.h.
Referenced by UcxEndpoint::AbortPipe(), EndpointMachine::CompleteAbortUrb(), and Initialize().
| KSPIN_LOCK UcxController::m_AbortPipeCsqLock |
Definition at line 307 of file hostctl.h.
Referenced by Initialize().
| WDFQUEUE UcxController::m_Address0Queue |
Definition at line 293 of file hostctl.h.
Referenced by Address0Release(), and CreateQueues().
| ULONG UcxController::m_CachedFrameNumber |
Definition at line 333 of file hostctl.h.
Referenced by GetCurrentFrameNumber().
| ULONG UcxController::m_ChildDeviceCount |
Definition at line 311 of file hostctl.h.
Referenced by UcxRootHub::Create(), UcxUsbDevice::Create(), and Initialize().
| ULONG UcxController::m_ChildEndpointCount |
Definition at line 312 of file hostctl.h.
Referenced by Initialize().
| BOOLEAN UcxController::m_ClearTtBufferOnAsyncCancel |
Definition at line 337 of file hostctl.h.
Referenced by UcxEndpoint::Initialize().
| UCX_CONTROLLER_CONFIG UcxController::m_Config |
Definition at line 289 of file hostctl.h.
Referenced by UcxRootHub::CreatePdo(), CreateQueues(), GetCurrentFrameNumber(), GetInfo(), HcdEnableForwardProgress(), HcdFreeDumpData(), HcdGetBandwidthInformation(), HcdGetDumpData(), Initialize(), QueryClearTtBufferOnCancel(), QueryStreamsSupported(), and ControllerResetMachine::ResetController().
| WDFQUEUE UcxController::m_DefaultQueue |
Definition at line 297 of file hostctl.h.
Referenced by CreateQueues().
| LONG UcxController::m_DeviceContextsLost |
Definition at line 320 of file hostctl.h.
Referenced by UcxRootHub::FinishPortResetRequest(), and ResetComplete().
| WDFQUEUE UcxController::m_DeviceMgmtQueue |
Definition at line 294 of file hostctl.h.
Referenced by CreateQueues().
| LIST_ENTRY UcxController::m_DriverListEntry |
Definition at line 290 of file hostctl.h.
Referenced by Destroy(), and Initialize().
| BOOLEAN UcxController::m_DriverVerifierEnabled |
Definition at line 336 of file hostctl.h.
Referenced by Initialize(), and UcxStaticStreams::SetStreamInfo().
| LONG UcxController::m_Failed |
Definition at line 330 of file hostctl.h.
Referenced by HasFailed(), Initialize(), and SetFailed().
| WDFDEVICE UcxController::m_Fdo |
Definition at line 288 of file hostctl.h.
Referenced by UcxRootHub::CreateEndpoint(), UcxRootHub::CreatePdo(), Initialize(), QueryHcCapabilities(), RegisterWmi(), ResumeIdle(), and StopIdle().
| KMUTEX UcxController::m_ForwardProgressMutex |
Definition at line 346 of file hostctl.h.
Referenced by _IRQL_requires_(), and Initialize().
| UCXCONTROLLER UcxController::m_Handle |
Definition at line 287 of file hostctl.h.
Referenced by _IRQL_requires_(), EndpointMachine::AbortEndpoint(), Create(), ControllerResetMachine::DereferenceController(), UcxUsbDevice::DispatchManagement(), EndpointMachine::ForwardResetRequest(), GetCurrentFrameNumber(), UcxUsbDevice::HandleHubEndpointsConfigure(), UcxUsbDevice::HandleHubPurgeIo(), UcxUsbDevice::HandleHubStartIo(), Initialize(), EndpointMachine::PurgeEndpoint(), QueryClearTtBufferOnCancel(), QueryStreamsSupported(), ControllerResetMachine::ReferenceController(), ControllerResetMachine::ResetController(), UcxUsbDevice::SendDisableToController(), UcxUsbDevice::SendEndpointsConfigureToController(), UcxUsbDevice::SendResetToController(), EndpointMachine::StartEndpoint(), and UcxUsbDevice::UpdateFromHub().
| DEVICE_CAPABILITIES UcxController::m_HcCaps |
Definition at line 303 of file hostctl.h.
Referenced by UcxRootHub::BuildPowerCapabilities(), and QueryHcCapabilities().
| BOOLEAN UcxController::m_HcdReservedIoReady |
Definition at line 347 of file hostctl.h.
Referenced by _IRQL_requires_(), and Initialize().
| WDFSTRING UcxController::m_HostControllerInterfaceName |
Definition at line 300 of file hostctl.h.
Referenced by Destroy(), and Initialize().
| UNICODE_STRING UcxController::m_ManufacturerName |
Definition at line 356 of file hostctl.h.
Referenced by Destroy(), and SetIdStrings().
| UNICODE_STRING UcxController::m_ModelName |
Definition at line 357 of file hostctl.h.
Referenced by Destroy(), and SetIdStrings().
| UNICODE_STRING UcxController::m_ModelNumber |
Definition at line 358 of file hostctl.h.
Referenced by Destroy(), and SetIdStrings().
| WDFQUEUE UcxController::m_PendDuringResetQueue |
Definition at line 296 of file hostctl.h.
Referenced by CreateQueues(), ControllerResetMachine::HoldDeviceRequests(), EndpointMachine::ParkStreamsDisableRequest(), and ControllerResetMachine::ReleaseDeviceRequests().
| LONG UcxController::m_PendingPrepareForReset |
Definition at line 331 of file hostctl.h.
Referenced by PrepareDevicesForReset(), and PrepareForResetOperationDone().
| WDFREQUEST UcxController::m_PendingTreePurge |
Definition at line 352 of file hostctl.h.
Referenced by Initialize().
| LONG UcxController::m_PendingTreePurgeEndpoints |
Definition at line 353 of file hostctl.h.
Referenced by Initialize().
| LONG UcxController::m_ResetBlockCount |
Definition at line 327 of file hostctl.h.
Referenced by BlockReset(), Initialize(), MarkResetFinished(), and UnblockReset().
| KEVENT UcxController::m_ResetCompleteProcessed |
Definition at line 319 of file hostctl.h.
Referenced by Initialize(), ControllerResetMachine::ReleaseResetCompleteWaiter(), and ResetComplete().
| ULONG UcxController::m_ResetGeneration |
Definition at line 326 of file hostctl.h.
Referenced by MarkResetFinished(), and UnblockReset().
| BOOLEAN UcxController::m_ResetInitiated |
Definition at line 329 of file hostctl.h.
Referenced by MarkResetFinished(), MarkResetInProgress(), and UnblockReset().
| BOOLEAN UcxController::m_ResetInProgress |
Definition at line 328 of file hostctl.h.
Referenced by BlockReset(), IsResetInProgress(), MarkResetFinished(), and MarkResetInProgress().
| KSPIN_LOCK UcxController::m_ResetLock |
Definition at line 325 of file hostctl.h.
Referenced by Initialize(), MarkResetFinished(), MarkResetInProgress(), and UnblockReset().
| ControllerResetMachine UcxController::m_ResetMachine |
Definition at line 314 of file hostctl.h.
Referenced by Initialize(), and PostResetEvent().
| BOOLEAN UcxController::m_ResetMachineReady |
Definition at line 315 of file hostctl.h.
Referenced by Destroy(), and Initialize().
| UcxWorkItem* UcxController::m_ResetMachineWorkItem |
Definition at line 316 of file hostctl.h.
Referenced by Destroy(), Initialize(), and ControllerResetMachine::QueuePassiveWork().
| UcxRootHub* UcxController::m_RootHub |
Definition at line 302 of file hostctl.h.
Referenced by _IRQL_requires_(), UcxEndpoint::CloseStaticStreams(), ControllerResetMachine::CompleteHubReset(), UcxRootHub::Create(), ControllerResetMachine::FailRootHubIo(), UcxEndpoint::OpenStaticStreams(), SetFailed(), ControllerResetMachine::SignalPortChange(), ControllerResetMachine::UnblockRootHubTraffic(), and WalkDevices().
| BOOLEAN UcxController::m_RootHubInD0 |
Definition at line 323 of file hostctl.h.
Referenced by UcxEndpoint::CloseStaticStreams().
| KEVENT UcxController::m_RootHubMayExitD0 |
Definition at line 318 of file hostctl.h.
Referenced by ControllerResetMachine::AllowRootHubPowerDown(), and Initialize().
| LONG UcxController::m_RootHubResetSeen |
Definition at line 321 of file hostctl.h.
Referenced by UcxRootHub::FinishPortResetRequest(), and ResetComplete().
| KSPIN_LOCK UcxController::m_TopologyLock |
Definition at line 310 of file hostctl.h.
Referenced by UcxRootHub::Create(), UcxUsbDevice::Create(), UcxUsbDevice::DeleteFromHub(), UcxUsbDevice::DisconnectPort(), UcxUsbDevice::FanOutToEndpoints(), UcxUsbDevice::FinishEndpointResetRequest(), EndpointMachine::FinishStreamsCloseRequest(), UcxEndpoint::GetStaticStreamsReferenced(), UcxUsbDevice::HandleHubReset(), Initialize(), UcxEndpoint::OpenStaticStreams(), UcxEndpoint::OpenStaticStreamsComplete(), UcxUsbDevice::TrackStaleHandles(), and WalkDevices().
| WDFQUEUE UcxController::m_TreePurgeQueue |
Definition at line 295 of file hostctl.h.
Referenced by CreateQueues().
| LONG UcxController::m_UsbdInterfaceCount |
Definition at line 349 of file hostctl.h.
Referenced by Destroy(), and UcxUsbdHandle::Unregister().
| BOOLEAN UcxController::m_WaitOnResetComplete |
Definition at line 322 of file hostctl.h.
Referenced by ControllerResetMachine::AllowRootHubPowerDown(), Initialize(), ControllerResetMachine::LetResetCompletionProceed(), and ResetComplete().
| BOOLEAN UcxController::m_WorkerExit |
| LIST_ENTRY UcxController::m_WorkerItems |
Definition at line 341 of file hostctl.h.
Referenced by Initialize(), and QueueOnWorkerThread().
| KSPIN_LOCK UcxController::m_WorkerLock |
Definition at line 340 of file hostctl.h.
Referenced by Destroy(), Initialize(), and QueueOnWorkerThread().
| BOOLEAN UcxController::m_WorkerParked |
Definition at line 344 of file hostctl.h.
Referenced by Initialize().
| PKTHREAD UcxController::m_WorkerThread |
Definition at line 342 of file hostctl.h.
Referenced by _IRQL_requires_(), Destroy(), HasWorkerThread(), and StartWorkerThread().
| KEVENT UcxController::m_WorkerWake |
Definition at line 343 of file hostctl.h.
Referenced by Destroy(), Initialize(), and QueueOnWorkerThread().
Definition at line 389 of file hostctl.h.
Referenced by ControllerResetMachine::QueuePassiveWork().
Runs work items the worker pool could not take, so paging I/O keeps moving.
Definition at line 386 of file hostctl.h.
Referenced by StartWorkerThread().