37 Device->m_DeprogrammedByControllerReset =
TRUE;
100 DPRINT(
"Controller %p preparing %lu endpoints for reset\n",
this, FanOut.
Count);
104 if (FanOut.
Count == 0)
119 DPRINT(
"Controller %p reset done, notifying %lu endpoints\n",
this, FanOut.
Count);
#define InterlockedDecrement
VOID AllowRootHubPowerDown()
VOID DereferenceController()
VOID UnblockRootHubTraffic()
VOID MarkResetInProgress()
VOID HoldDeviceRequests()
VOID CompleteHubReset(_In_ BOOLEAN Succeeded)
UcxController * m_Controller
VOID NotifyDevicesResetDone()
VOID ReleaseDeviceRequests()
VOID PrepareDevicesForReset()
VOID ReleaseResetCompleteWaiter()
VOID LetResetCompletionProceed()
VOID ReferenceController()
KEVENT m_ResetCompleteProcessed
VOID PostResetEvent(_In_ CrEvent Event)
BOOLEAN m_WaitOnResetComplete
VOID WalkDevices(_In_ PFN_UCX_DEVICE_VISITOR Visitor, _In_opt_ PVOID Context, _In_ BOOLEAN IncludeDisconnected)
UCX_CONTROLLER_CONFIG m_Config
VOID NotifyDevicesResetDone()
static UCXHUB_WORKITEM_ROUTINE ResetMachinePassiveRoutine
LONG m_PendingPrepareForReset
VOID MarkResetInProgress()
KSPIN_LOCK m_TopologyLock
VOID PrepareForResetOperationDone()
VOID PrepareDevicesForReset()
WDFQUEUE m_PendDuringResetQueue
KEVENT m_RootHubMayExitD0
UcxWorkItem * m_ResetMachineWorkItem
UcxUsbDevice * Device() const
VOID FinishPortResetRequest(_In_ BOOLEAN Succeeded)
VOID WalkSubtree(_In_ PFN_UCX_DEVICE_VISITOR Visitor, _In_opt_ PVOID Context, _In_ BOOLEAN IncludeDisconnected)
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
#define InsertTailList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define KeSetEvent(pEvt, foo, foo2)
#define RemoveHeadList(ListHead)
#define InitializeListHead(ListHead)
VOID(NTAPI * PFN_UCX_DEVICE_VISITOR)(_In_ UcxUsbDevice *Device, _In_opt_ PVOID Context)
static VOID NTAPI UcxPostToCollectedEndpoints(_Inout_ UcxResetFanOut *FanOut, _In_ EpEvent Event)
static VOID NTAPI UcxCollectEndpointsForReset(_In_ UcxUsbDevice *Device, _In_opt_ PVOID Context)
_Must_inspect_result_ _In_ PUCXHUB_DEVICE_CREATE_INFO _Out_ UCXUSBDEVICE * Device
_In_opt_ PVOID _In_ PUCXHUB_WORKITEM WorkItem
_In_ UCXHUB_DEVICE_CONTEXT _In_ UCXENDPOINT Endpoint
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
#define UNREFERENCED_PARAMETER(P)
struct _LIST_ENTRY * Flink
VOID Enqueue(_In_ PUCXHUB_WORKITEM_ROUTINE NewRoutine, _In_opt_ PVOID NewContext, _In_ UCXHUB_WORKITEM_ENQUEUE_OPTIONS Options)
PFN_UCX_CONTROLLER_RESET EvtControllerReset
#define CONTAINING_RECORD(address, type, field)
FORCEINLINE BOOLEAN NTAPI UcxIsListEntryLinked(_In_ const LIST_ENTRY *Entry)
FORCEINLINE VOID NTAPI UcxClearListEntry(_Out_ PLIST_ENTRY Entry)
_In_ PDEVICE_OBJECT DeviceObject
#define WdfObjectReference(Handle)
#define WdfObjectDereference(Handle)