20 Post(EpEvent::HubEndpointReset);
29 Post(EpEvent::EndpointResetDone);
44 DPRINT1(
"Endpoint %p abort pipe failed, endpoint is not running\n",
m_Handle);
52 Post(EpEvent::AbortUrbParked);
69 DPRINT1(
"Endpoint %p path delay query on a non isoch pipe\n",
m_Handle);
141 DPRINT1(
"Endpoint %p HCD streams add created no streams object\n",
Endpoint->m_Handle);
146 Streams = UcxStaticStreams::FromHandle(
Init.Created);
158 DPRINT1(
"Endpoint %p HCD did not set every stream, %lu set calls for %lu streams\n",
165 *StreamsOut = Streams;
184 if (
Client->m_VerifierEnabled)
195 if (!
Client->m_StreamsGranted)
197 DPRINT1(
"Endpoint %p streams open without a streams grant\n",
m_Handle);
198 if (
Client->m_VerifierEnabled)
211 DPRINT1(
"Endpoint %p streams open for %lu streams, %lu granted\n",
213 if (
Client->m_VerifierEnabled)
237 if (
Client->m_VerifierEnabled)
294 Post(EpEvent::ClientStreamsEnable);
302 Post(EpEvent::ClientStreamsDisable);
317 DPRINT1(
"Endpoint %p HCD streams enable failed 0x%lx\n",
m_Handle,
Irp->IoStatus.Status);
339 Info[
Index].MaximumTransferSize =
Entry->Pipe.MaximumTransferSize;
355 Post(EpEvent::StreamsOpened);
365 Post(EpEvent::StreamsClosed);
#define InterlockedIncrement
#define InterlockedDecrement
DECLSPEC_NORETURN VOID NTAPI KeBugCheckEx(IN ULONG BugCheckCode, IN ULONG_PTR BugCheckParameter1, IN ULONG_PTR BugCheckParameter2, IN ULONG_PTR BugCheckParameter3, IN ULONG_PTR BugCheckParameter4)
KSPIN_LOCK m_TopologyLock
VOID HandleHubReset(_In_ WDFREQUEST Request)
NTSTATUS GetIsochPathDelays(_In_ PIRP Irp, _In_ PURB Urb)
UcxController * m_Controller
UcxEndpointCallbacks m_Callbacks
BOOLEAN m_OpenFailedOnReset
NTSTATUS CloseStaticStreams(_In_ PIRP Irp, _In_ PURB Urb)
BOOLEAN Post(_In_ EpEvent Event)
UcxStaticStreams * m_Streams
NTSTATUS OpenStaticStreamsComplete(_In_ PIRP Irp, _In_ PURB Urb)
VOID HandleClientStreamsDisable(_In_ WDFREQUEST Request)
IO_CSQ_IRP_CONTEXT m_AbortCsqContext
VOID HandleClientStreamsEnable(_In_ WDFREQUEST Request)
NTSTATUS OpenStaticStreams(_In_ PIRP Irp, _In_ PURB Urb)
NTSTATUS CloseStaticStreamsComplete(_In_ PIRP Irp)
NTSTATUS OnHcdResetDone(_In_ PIRP Irp)
VOID SetPending(_In_ PVOID Pending)
NTSTATUS AbortPipe(_In_ PIRP Irp, _In_ PURB Urb)
UcxStream * Stream(_In_ ULONG Index)
UcxStaticStreamsInit * m_Init
NTSTATUS NTAPI UcxForwardStreamsUrb(_In_ WDFDEVICE RootHubPdo, _In_ PIRP Irp, _In_ PURB Urb, _In_ UcxController *Controller)
VOID NTAPI UcxCompleteHeldUrbIrp(_In_ PIRP Irp)
NTSTATUS NTAPI UcxCompleteUrb(_In_ PIRP Irp, _In_ PURB Urb, _In_ NTSTATUS Status, _In_ USBD_STATUS UsbdStatus)
FORCEINLINE UcxXrbPreamble *NTAPI UcxXrbFromUrb(_In_ PURB Urb)
#define UCX_USB3_STREAMS_BAD_COUNT
#define UCX_BUGCHECK_USB3
#define UCX_USB3_STREAMS_IRQL
#define UCX_USB3_STREAMS_NOT_GRANTED
#define UCX_USB3_STREAMS_OPEN
NTKERNELAPI VOID NTAPI IoCsqInsertIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIRP Irp, _Out_opt_ PIO_CSQ_IRP_CONTEXT Context)
Insert an IRP into the CSQ.
#define STATUS_NOT_SUPPORTED
#define NT_SUCCESS(StatCode)
#define KeGetCurrentIrql()
_In_ UCXHUB_DEVICE_CONTEXT _In_ UCXENDPOINT Endpoint
#define STATUS_INTERNAL_ERROR
static NTSTATUS NTAPI UcxFailStreamsUrb(_In_ PIRP Irp, _In_ PURB Urb, _In_ NTSTATUS Status)
static NTSTATUS NTAPI UcxCreateStaticStreams(_In_ UcxEndpoint *Endpoint, _In_ ULONG Count, _Outptr_ UcxStaticStreams **StreamsOut)
#define STATUS_MORE_PROCESSING_REQUIRED
PFN_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS GetIsochTransferPathDelays
UcxTransferType TransferType
ULONG MaximumSendPathDelayInMilliSeconds
ULONG MaximumCompletionPathDelayInMilliSeconds
#define RtlZeroMemory(Destination, Length)
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
BOOLEAN NTAPI UcxVerifierWantsFailure(_In_ ULONG Setting)
NTSTATUS NTAPI UcxRandomErrorStatus(VOID)
FORCEINLINE VOID NTAPI UcxVerifierBreak(_In_ BOOLEAN Verifying)
#define STATUS_INVALID_PARAMETER
#define STATUS_NO_SUCH_DEVICE
#define STATUS_INVALID_DEVICE_STATE
USBD_STATUS NTAPI UcxNtStatusToUsbdStatus(_In_ NTSTATUS Status)
#define USBD_STATUS_SUCCESS
#define USBD_STATUS_NOT_SUPPORTED
#define USBD_STATUS_INVALID_PARAMETER
_In_opt_ PUSB_CONFIGURATION_DESCRIPTOR _Inout_ PUSBD_INTERFACE_LIST_ENTRY _Outptr_ PURB * Urb
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_In_ WDFCOLLECTION _In_ ULONG Index