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

Public Types | |
| typedef VOID(UcxUsbDevice::* | PFN_UCX_OPERATION_DONE) () |
Static Public Member Functions | |
| static VOID | InitSetEventCallbacks (_Inout_ PUCXUSBDEVICE_INIT Init, _In_ PUCX_USBDEVICE_EVENT_CALLBACKS Callbacks) |
| static _Must_inspect_result_ NTSTATUS | Create (_In_ UCXCONTROLLER Controller, _Inout_ PUCXUSBDEVICE_INIT *Init, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ UCXUSBDEVICE *UsbDevice) |
| static _Must_inspect_result_ NTSTATUS | CreateFromHub (_In_ UCXUSBDEVICE Hub, _In_ PUCXHUB_DEVICE_CREATE_INFO Info, _Out_ UCXUSBDEVICE *UsbDevice) |
| static UcxUsbDevice * | FromHandle (_In_ UCXUSBDEVICE Handle) |
Private Member Functions | |
| VOID | InitializeLists () |
| VOID | StartOperation (_In_ PVOID Pending, _In_ PFN_UCX_OPERATION_DONE Done, _In_ LONG Count) |
| PVOID | TakeOperation () |
| VOID | FanOutToEndpoints (_In_ EpEvent Event) |
| VOID | HandleHubPurgeIo (_In_ WDFREQUEST Request, _In_ BOOLEAN OnSuspend) |
| VOID | HandleHubStartIo (_In_ WDFREQUEST Request) |
| VOID | HandleHubAbortIo (_In_ WDFREQUEST Request) |
| VOID | HandleHubTreePurge (_In_ WDFREQUEST Request) |
| VOID | HandleHubReset (_In_ WDFREQUEST Request, _In_ BOOLEAN AfterReset) |
| VOID | HandleHubDisable (_In_ WDFREQUEST Request, _In_ BOOLEAN AfterReset) |
| VOID | HandleHubEndpointsConfigure (_In_ WDFREQUEST Request, _In_ BOOLEAN AfterReset) |
| VOID | UpdateFromHub (_In_ WDFREQUEST Request) |
| VOID | SendResetToController () |
| VOID | PendReset () |
| VOID | SendDisableToController () |
| VOID | PendDisable () |
| VOID | SendEndpointsConfigureToController () |
| VOID | PendEndpointsConfigure () |
| VOID | CompleteHubRequest () |
| VOID | CompleteEnableIrp () |
| VOID | CompleteEndpointsConfigureIrp () |
| VOID | FinishEndpointResetRequest () |
Static Private Attributes | |
| static EVT_WDF_OBJECT_CONTEXT_DESTROY | EvtDestroy |
| static EVT_WDF_REQUEST_CANCEL | EvtRemoteWakeCancel |
| typedef VOID(UcxUsbDevice::* UcxUsbDevice::PFN_UCX_OPERATION_DONE) () |
| UcxUsbDevice::_IRQL_requires_ | ( | PASSIVE_LEVEL | ) |
|
inline |
Definition at line 130 of file devobj.h.
Referenced by EndpointMachine::DeviceAllowsStart().
|
private |
Definition at line 673 of file devicemgmt.cpp.
Referenced by CompleteEnableIrp(), and OnHcdEnableDone().
|
private |
Definition at line 684 of file devicemgmt.cpp.
Referenced by CompleteEndpointsConfigureIrp(), and OnHcdEndpointsConfigureDone().
| VOID UcxUsbDevice::CompleteHubOperation | ( | ) |
An endpoint finished its part of the current hub operation.
Definition at line 358 of file devicemgmt.cpp.
Referenced by CompleteHubOperation(), and EndpointMachine::CompleteHubOperation().
|
private |
Definition at line 654 of file devicemgmt.cpp.
Referenced by CompleteHubRequest(), HandleHubAbortIo(), HandleHubPurgeIo(), and HandleHubStartIo().
|
static |
Definition at line 81 of file devobj.cpp.
Referenced by Create().
|
static |
Definition at line 297 of file devobj.cpp.
Referenced by CreateFromHub().
| VOID UcxUsbDevice::DeleteFromHub | ( | ) |
Definition at line 351 of file devobj.cpp.
Referenced by CreateFromHub(), DeleteFromHub(), and UcxHubDeviceDelete().
Port 0 means this hub itself went away.
Definition at line 440 of file devobj.cpp.
Referenced by DisconnectPort(), UcxController::SetFailed(), and UcxHubDeviceDisconnect().
Definition at line 80 of file devicemgmt.cpp.
Referenced by DispatchManagement().
Controller reset in progress or device deprogrammed.
Definition at line 170 of file devicemgmt.cpp.
Referenced by FailManagement().
Definition at line 372 of file devicemgmt.cpp.
Referenced by FanOutToEndpoints(), HandleHubAbortIo(), HandleHubPurgeIo(), and HandleHubStartIo().
|
private |
Definition at line 691 of file devicemgmt.cpp.
Referenced by FinishEndpointResetRequest(), and OnHcdResetDone().
|
static |
Definition at line 18 of file devobj.cpp.
Referenced by Create(), CreateFromHub(), and FromHandle().
Definition at line 433 of file devicemgmt.cpp.
Referenced by DispatchManagement(), FailManagement(), and HandleHubAbortIo().
Definition at line 532 of file devicemgmt.cpp.
Referenced by DispatchManagement(), FailManagement(), and HandleHubDisable().
|
private |
Definition at line 548 of file devicemgmt.cpp.
Referenced by DispatchManagement(), FailManagement(), and HandleHubEndpointsConfigure().
Definition at line 409 of file devicemgmt.cpp.
Referenced by DispatchManagement(), FailManagement(), and HandleHubPurgeIo().
Definition at line 501 of file devicemgmt.cpp.
Referenced by DispatchManagement(), FailManagement(), and HandleHubReset().
Definition at line 422 of file devicemgmt.cpp.
Referenced by DispatchManagement(), and HandleHubStartIo().
Definition at line 465 of file devicemgmt.cpp.
Referenced by DispatchManagement(), FailManagement(), and HandleHubTreePurge().
| VOID UcxUsbDevice::InitializeAsRootHub | ( | _In_ UCXROOTHUB | Handle, |
| _In_ UcxController * | Controller | ||
| ) |
Root hub setup; the device context lives on the UCXROOTHUB object.
Definition at line 50 of file devobj.cpp.
Referenced by UcxRootHub::Initialize(), and InitializeAsRootHub().
|
private |
Definition at line 36 of file devobj.cpp.
Referenced by InitializeAsRootHub(), and InitializeLists().
|
static |
Definition at line 71 of file devobj.cpp.
Referenced by InitSetEventCallbacks().
|
inline |
|
inline |
| NTSTATUS UcxUsbDevice::OnHcdEnableDone | ( | _In_ PIRP | Irp, |
| _In_ PUSBDEVICE_ENABLE | Enable | ||
| ) |
Definition at line 709 of file devicemgmt.cpp.
Referenced by OnHcdEnableDone().
| NTSTATUS UcxUsbDevice::OnHcdEndpointsConfigureDone | ( | _In_ PIRP | Irp, |
| _In_ PENDPOINTS_CONFIGURE | Configure | ||
| ) |
Definition at line 743 of file devicemgmt.cpp.
Referenced by OnHcdEndpointsConfigureDone().
| NTSTATUS UcxUsbDevice::OnHcdResetDone | ( | _In_ PIRP | Irp, |
| _In_ PUSBDEVICE_RESET | Reset | ||
| ) |
|
private |
Definition at line 642 of file devicemgmt.cpp.
Referenced by HandleHubDisable(), and PendDisable().
|
private |
Definition at line 648 of file devicemgmt.cpp.
Referenced by HandleHubEndpointsConfigure(), and PendEndpointsConfigure().
|
private |
Definition at line 636 of file devicemgmt.cpp.
Referenced by HandleHubReset(), and PendReset().
Definition at line 640 of file devobj.cpp.
Referenced by RegisterComposite().
Function wake from a device; completes the matching armed notification.
Definition at line 189 of file devobj.cpp.
Referenced by RemoteWakeNotification(), and UcxApiUsbDeviceRemoteWakeNotification().
| VOID UcxUsbDevice::ReportNoPingResponseIfPending | ( | ) |
Called by failing transfer completions; tells the parent hub once per error.
Definition at line 521 of file devobj.cpp.
Referenced by ReportNoPingResponseIfPending().
Definition at line 764 of file devobj.cpp.
Referenced by RequestRemoteWakeNotification().
|
private |
Definition at line 609 of file devicemgmt.cpp.
Referenced by HandleHubDisable(), and SendDisableToController().
|
private |
Definition at line 615 of file devicemgmt.cpp.
Referenced by HandleHubEndpointsConfigure(), and SendEndpointsConfigureToController().
|
private |
Definition at line 603 of file devicemgmt.cpp.
Referenced by HandleHubReset(), and SendResetToController().
Definition at line 747 of file devobj.cpp.
Referenced by SetFunctionData().
| VOID UcxUsbDevice::SetPdo | ( | _In_ PDEVICE_OBJECT | Pdo | ) |
Definition at line 489 of file devobj.cpp.
Referenced by SetPdo(), and UcxHubDeviceSetPdo().
|
inline |
|
private |
Definition at line 345 of file devicemgmt.cpp.
Referenced by HandleHubAbortIo(), HandleHubDisable(), HandleHubEndpointsConfigure(), HandleHubPurgeIo(), HandleHubReset(), HandleHubStartIo(), OnHcdEnableDone(), OnHcdEndpointsConfigureDone(), OnHcdResetDone(), and StartOperation().
|
inlineprivate |
Definition at line 290 of file devobj.h.
Referenced by CompleteEnableIrp(), CompleteEndpointsConfigureIrp(), CompleteHubRequest(), FinishEndpointResetRequest(), PendDisable(), PendEndpointsConfigure(), PendReset(), SendDisableToController(), SendEndpointsConfigureToController(), and SendResetToController().
|
inline |
Definition at line 99 of file devobj.h.
Referenced by UcxHubDeviceGetTimestamp().
| VOID UcxUsbDevice::TrackStaleHandles | ( | ) |
Pipe handles are checked against the live endpoint list from now on.
Definition at line 500 of file devobj.cpp.
Referenced by TrackStaleHandles(), and UpdateFromHub().
Definition at line 718 of file devobj.cpp.
Referenced by UnregisterComposite().
Definition at line 583 of file devicemgmt.cpp.
Referenced by DispatchManagement(), and UpdateFromHub().
| VOID UcxUsbDevice::WalkSubtree | ( | _In_ PFN_UCX_DEVICE_VISITOR | Visitor, |
| _In_opt_ PVOID | Context, | ||
| _In_ BOOLEAN | IncludeDisconnected | ||
| ) |
Definition at line 396 of file devobj.cpp.
Referenced by DisconnectPort(), HandleHubTreePurge(), UcxController::WalkDevices(), and WalkSubtree().
|
staticprivate |
|
staticprivate |
Definition at line 355 of file devobj.h.
Referenced by RequestRemoteWakeNotification().
| USHORT UcxUsbDevice::m_BcdUsb |
Definition at line 220 of file devobj.h.
Referenced by UpdateFromHub().
| UcxUsbDeviceCallbacks UcxUsbDevice::m_Callbacks |
Definition at line 222 of file devobj.h.
Referenced by DispatchManagement(), HandleHubEndpointsConfigure(), HandleHubPurgeIo(), HandleHubStartIo(), SendDisableToController(), SendEndpointsConfigureToController(), SendResetToController(), and UpdateFromHub().
| LIST_ENTRY UcxUsbDevice::m_ChildLink |
Definition at line 228 of file devobj.h.
Referenced by DisconnectPort(), InitializeLists(), and WalkSubtree().
| LIST_ENTRY UcxUsbDevice::m_ChildList |
Definition at line 227 of file devobj.h.
Referenced by DisconnectPort(), InitializeLists(), and WalkSubtree().
| BOOLEAN UcxUsbDevice::m_ChildrenMayLeavePurge |
Definition at line 232 of file devobj.h.
Referenced by FinishEndpointResetRequest(), HandleHubReset(), and InitializeAsRootHub().
| UcxController* UcxUsbDevice::m_Controller |
Definition at line 216 of file devobj.h.
Referenced by DeleteFromHub(), DisconnectPort(), DispatchManagement(), FanOutToEndpoints(), FinishEndpointResetRequest(), HandleHubEndpointsConfigure(), HandleHubPurgeIo(), HandleHubReset(), HandleHubStartIo(), HandleHubTreePurge(), InitializeAsRootHub(), SendDisableToController(), SendEndpointsConfigureToController(), SendResetToController(), TrackStaleHandles(), UcxBusQueryBusInformation(), UcxBusQueryBusTime(), UcxHubAddress0Release(), UcxHubAllowControllerIdle(), UcxHubBlockControllerIdle(), UcxHubStreamsSupported(), and UpdateFromHub().
| UcxEndpoint* UcxUsbDevice::m_DefaultEndpoint |
Definition at line 240 of file devobj.h.
Referenced by _IRQL_requires_(), and DispatchManagement().
| UcxPipe* UcxUsbDevice::m_DefaultPipe |
Definition at line 241 of file devobj.h.
Referenced by _IRQL_requires_().
| BOOLEAN UcxUsbDevice::m_DeprogrammedByControllerReset |
Definition at line 244 of file devobj.h.
Referenced by AllowsEndpointStart(), CompleteEnableIrp(), and EndpointMachine::DeviceDeprogrammed().
| BOOLEAN UcxUsbDevice::m_Disconnected |
Definition at line 231 of file devobj.h.
Referenced by AllowsEndpointStart(), EndpointMachine::DeviceDisconnected(), UcxHubIsDeviceDisconnected(), and WalkSubtree().
| BOOLEAN UcxUsbDevice::m_Enabled |
Definition at line 243 of file devobj.h.
Referenced by AllowsEndpointStart(), HandleHubDisable(), and OnHcdEnableDone().
| LIST_ENTRY UcxUsbDevice::m_EndpointList |
Definition at line 229 of file devobj.h.
Referenced by FanOutToEndpoints(), InitializeLists(), and TrackStaleHandles().
| BOOLEAN UcxUsbDevice::m_EndpointResetFailedByControllerReset |
Definition at line 249 of file devobj.h.
Referenced by FailManagement().
| BOOLEAN UcxUsbDevice::m_EndpointsMayLeavePurge |
Definition at line 233 of file devobj.h.
Referenced by AllowsEndpointStart(), FinishEndpointResetRequest(), HandleHubReset(), and InitializeAsRootHub().
| ULONG UcxUsbDevice::m_FunctionCount |
Definition at line 269 of file devobj.h.
Referenced by RegisterComposite(), RemoteWakeNotification(), and UnregisterComposite().
| UcxFunctionRecord* UcxUsbDevice::m_Functions |
Definition at line 270 of file devobj.h.
Referenced by RegisterComposite(), RemoteWakeNotification(), RequestRemoteWakeNotification(), and UnregisterComposite().
| WDFMEMORY UcxUsbDevice::m_FunctionsMemory |
Definition at line 271 of file devobj.h.
Referenced by RegisterComposite(), and UnregisterComposite().
| UCXUSBDEVICE UcxUsbDevice::m_Handle |
Definition at line 215 of file devobj.h.
Referenced by _IRQL_requires_(), CompleteEnableIrp(), Create(), DeleteFromHub(), DisconnectPort(), DispatchManagement(), FailManagement(), HandleHubEndpointsConfigure(), HandleHubPurgeIo(), HandleHubStartIo(), InitializeAsRootHub(), OnHcdEnableDone(), OnHcdEndpointsConfigureDone(), RegisterComposite(), RemoteWakeNotification(), RequestRemoteWakeNotification(), and UnregisterComposite().
| PFN_UCXHUB_CLEAR_TT_BUFFER UcxUsbDevice::m_HubClearTtBuffer |
| UCXHUB_DEVICE_CONTEXT UcxUsbDevice::m_HubDeviceContext |
Definition at line 218 of file devobj.h.
Referenced by UcxEndpoint::NeedToCancelTransfers(), and ReportNoPingResponseIfPending().
| PFN_UCXHUB_NO_PING_RESPONSE UcxUsbDevice::m_HubNoPingResponse |
| UCXUSBDEVICE_INFO UcxUsbDevice::m_Info |
Definition at line 221 of file devobj.h.
Referenced by InitializeAsRootHub(), UcxEndpoint::NeedToCancelTransfers(), and Speed().
| UcxUsbDevice* UcxUsbDevice::m_ParentHub |
Definition at line 217 of file devobj.h.
Referenced by HandleHubReset(), and ReportNoPingResponseIfPending().
| PDEVICE_OBJECT UcxUsbDevice::m_Pdo |
| BOOLEAN UcxUsbDevice::m_PendingDelete |
Definition at line 245 of file devobj.h.
Referenced by DeleteFromHub().
| LONG UcxUsbDevice::m_PendingNoPingResponse |
Definition at line 257 of file devobj.h.
Referenced by ReportNoPingResponseIfPending(), and UcxApiEndpointNoPingResponseError().
| PVOID UcxUsbDevice::m_PendingOperation |
Definition at line 253 of file devobj.h.
Referenced by StartOperation(), and TakeOperation().
| LONG UcxUsbDevice::m_PendingOperationCount |
Definition at line 255 of file devobj.h.
Referenced by CompleteHubOperation(), FanOutToEndpoints(), and StartOperation().
| PFN_UCX_OPERATION_DONE UcxUsbDevice::m_PendingOperationDone |
Definition at line 254 of file devobj.h.
Referenced by CompleteHubOperation(), and StartOperation().
| UcxRemoteWakeSlot UcxUsbDevice::m_RemoteWake |
Definition at line 268 of file devobj.h.
Referenced by RemoteWakeNotification(), and RequestRemoteWakeNotification().
| KSPIN_LOCK UcxUsbDevice::m_RemoteWakeLock |
Definition at line 267 of file devobj.h.
Referenced by InitializeLists(), RegisterComposite(), RemoteWakeNotification(), RequestRemoteWakeNotification(), SetFunctionData(), and UnregisterComposite().
| BOOLEAN UcxUsbDevice::m_ResetFailedByControllerReset |
Definition at line 248 of file devobj.h.
Referenced by FailManagement().
| LIST_ENTRY UcxUsbDevice::m_StaleEndpointList |
Definition at line 230 of file devobj.h.
Referenced by DeleteFromHub(), and InitializeLists().
| BOOLEAN UcxUsbDevice::m_StalePipeIoAllowed |
Definition at line 238 of file devobj.h.
Referenced by TrackStaleHandles().
| ULONG64 UcxUsbDevice::m_Timestamp |
Definition at line 224 of file devobj.h.
Referenced by DispatchManagement(), and Timestamp().
| LIST_ENTRY UcxUsbDevice::m_TrackingList |
Definition at line 237 of file devobj.h.
Referenced by InitializeLists(), and TrackStaleHandles().
| KSPIN_LOCK UcxUsbDevice::m_TrackingLock |
Definition at line 236 of file devobj.h.
Referenced by InitializeLists(), and TrackStaleHandles().
| ULONG UcxUsbDevice::m_Type |
Definition at line 219 of file devobj.h.
Referenced by InitializeAsRootHub(), IsHub(), IsRootHub(), and UpdateFromHub().
| LIST_ENTRY UcxUsbDevice::m_UsbdHandleList |
Definition at line 275 of file devobj.h.
Referenced by InitializeLists().
| KSPIN_LOCK UcxUsbDevice::m_UsbdHandleLock |
Definition at line 274 of file devobj.h.
Referenced by InitializeLists(), and UcxUsbdHandle::Unregister().