|
ReactOS 0.4.17-dev-1281-g065abb3
|

Go to the source code of this file.
Classes | |
| struct | UcxUrbFunction |
Enumerations | |
| enum class | UcxUrbHandler : UCHAR { NotSupported , InvalidFunction , AbortPipe , GetCurrentFrame , ControlTransfer , BulkOrInterrupt , Isoch , GetSetDescriptor , SetClearFeature , GetStatus , VendorClass , GetConfiguration , GetInterface , MsFeatureDescriptor } |
Variables | |
| static const UcxUrbFunction | UcxUrbFunctions [] |
| static IO_COMPLETION_ROUTINE | UcxLegacyTransferCompletion |
| #define NDEBUG |
Definition at line 11 of file urbroute.cpp.
| #define UCX_DESCRIPTOR | ( | Dir, | |
| To, | |||
| Req | |||
| ) | { UcxUrbHandler::GetSetDescriptor, UCX_DESCRIPTOR_SIZE, UCX_STD_TRANSFER, Dir, UCX_RT_STANDARD, To, Req } |
Definition at line 206 of file urbroute.cpp.
| #define UCX_DESCRIPTOR_SIZE sizeof(struct _URB_CONTROL_DESCRIPTOR_REQUEST) |
Definition at line 196 of file urbroute.cpp.
| #define UCX_DIR_CLIENT 2 |
Definition at line 173 of file urbroute.cpp.
| #define UCX_DIR_IN 1 |
Definition at line 172 of file urbroute.cpp.
| #define UCX_DIR_OUT 0 |
Definition at line 171 of file urbroute.cpp.
| #define UCX_FEATURE | ( | To, | |
| Req | |||
| ) | { UcxUrbHandler::SetClearFeature, UCX_FEATURE_SIZE, UCX_STD_NO_DATA, UCX_DIR_OUT, UCX_RT_STANDARD, To, Req } |
Definition at line 207 of file urbroute.cpp.
| #define UCX_FEATURE_SIZE sizeof(struct _URB_CONTROL_FEATURE_REQUEST) |
Definition at line 197 of file urbroute.cpp.
| #define UCX_INVALID { UcxUrbHandler::InvalidFunction, 0, 0, 0, 0, 0, 0 } |
Definition at line 205 of file urbroute.cpp.
| #define UCX_PIPE_REQUEST_SIZE sizeof(struct _URB_PIPE_REQUEST) |
Definition at line 195 of file urbroute.cpp.
| #define UCX_RT_CLASS 1 |
Definition at line 187 of file urbroute.cpp.
| #define UCX_RT_STANDARD 0 |
Definition at line 186 of file urbroute.cpp.
| #define UCX_RT_VENDOR 2 |
Definition at line 188 of file urbroute.cpp.
| #define UCX_STATUS | ( | To | ) | { UcxUrbHandler::GetStatus, UCX_STATUS_SIZE, UCX_STD_TRANSFER, UCX_DIR_IN, UCX_RT_STANDARD, To, USB_REQUEST_GET_STATUS } |
Definition at line 208 of file urbroute.cpp.
| #define UCX_STATUS_SIZE sizeof(struct _URB_CONTROL_GET_STATUS_REQUEST) |
Definition at line 198 of file urbroute.cpp.
| #define UCX_STD_NO_DATA (UCX_URB_TRANSFER | UCX_URB_DEFAULT_PIPE | UCX_URB_NO_DATA) |
Definition at line 202 of file urbroute.cpp.
| #define UCX_STD_TRANSFER (UCX_URB_TRANSFER | UCX_URB_DEFAULT_PIPE) |
Definition at line 201 of file urbroute.cpp.
| #define UCX_TO_DEVICE 0 |
Definition at line 190 of file urbroute.cpp.
| #define UCX_TO_ENDPOINT 2 |
Definition at line 192 of file urbroute.cpp.
| #define UCX_TO_INTERFACE 1 |
Definition at line 191 of file urbroute.cpp.
| #define UCX_TO_OTHER 3 |
Definition at line 193 of file urbroute.cpp.
| #define UCX_UNSUPPORTED | ( | Length | ) | { UcxUrbHandler::NotSupported, (USHORT)(Length), 0, 0, 0, 0, 0 } |
Definition at line 204 of file urbroute.cpp.
| #define UCX_URB_DEFAULT_PIPE 0x02 |
Definition at line 166 of file urbroute.cpp.
| #define UCX_URB_NO_DATA 0x04 |
Definition at line 167 of file urbroute.cpp.
| #define UCX_URB_PIPE_REQUEST 0x08 |
Definition at line 168 of file urbroute.cpp.
| #define UCX_URB_TRANSFER 0x01 |
Definition at line 165 of file urbroute.cpp.
| #define UCX_VENDOR_CLASS | ( | Type, | |
| To | |||
| ) | { UcxUrbHandler::VendorClass, UCX_VENDOR_SIZE, UCX_STD_TRANSFER, UCX_DIR_CLIENT, Type, To, 0 } |
Definition at line 209 of file urbroute.cpp.
| #define UCX_VENDOR_SIZE sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST) |
Definition at line 199 of file urbroute.cpp.
|
strong |
Definition at line 146 of file urbroute.cpp.
| C_ASSERT | ( | ARRAYSIZE(UcxUrbFunctions) | = =URB_FUNCTION_RESERVE_0X0034+1 | ) |
A single MDL is always accepted, even if shorter than the transfer.
Definition at line 399 of file urbroute.cpp.
Referenced by UcxPrepareTransfer().
|
static |
The transfer specific checks; the last recorded error wins.
Definition at line 642 of file urbroute.cpp.
Referenced by UcxPrepareTransfer().
|
static |
Definition at line 476 of file urbroute.cpp.
Referenced by UcxHandleStandardRequest().
| NTSTATUS NTAPI UcxForwardIrpToQueue | ( | _In_ WDFDEVICE | RootHubPdo, |
| _In_ PIRP | Irp, | ||
| _In_ PIO_COMPLETION_ROUTINE | Completion, | ||
| _In_ PVOID | Context, | ||
| _In_ WDFQUEUE | Queue | ||
| ) |
Definition at line 308 of file urbroute.cpp.
Referenced by UcxForwardDefaultPipeRequest(), UcxForwardStreamsUrb(), UcxHandleIsoch(), UcxProcessLegacyUrb(), and UcxXrbSubmitTransfer().
| NTSTATUS NTAPI UcxForwardIrpWithRequest | ( | _In_ WDFDEVICE | RootHubPdo, |
| _In_ PIRP | Irp, | ||
| _In_ PIO_COMPLETION_ROUTINE | Completion, | ||
| _In_ PVOID | Context, | ||
| _In_ WDFQUEUE | Queue, | ||
| _In_ WDFREQUEST | Request | ||
| ) |
Definition at line 323 of file urbroute.cpp.
Referenced by UcxXrbSubmitTransfer().
|
static |
|
static |
Definition at line 619 of file urbroute.cpp.
Referenced by UcxProcessLegacyUrb().
|
static |
Definition at line 574 of file urbroute.cpp.
Referenced by UcxProcessLegacyUrb().
|
static |
Definition at line 492 of file urbroute.cpp.
Referenced by UcxProcessLegacyUrb().
|
static |
Definition at line 871 of file urbroute.cpp.
Below DISPATCH_LEVEL, locks a buffer passed without an MDL so the HCD can map it.
Definition at line 82 of file urbroute.cpp.
Referenced by UcxForwardDefaultPipeRequest(), UcxHandleIsoch(), UcxProcessLegacyUrb(), and UcxXrbSubmitTransfer().
| USBD_STATUS NTAPI UcxNtStatusToUsbdStatus | ( | _In_ NTSTATUS | Status | ) |
Definition at line 53 of file urbroute.cpp.
Referenced by UcxEndpoint::AbortPipe(), UcxEndpoint::GetIsochPathDelays(), UcxFailStreamsUrb(), UcxHandleGetCurrentFrame(), and UcxLegacyTransferCompletion().
|
static |
Returns USBD_STATUS_SUCCESS with the target pipe, or the status to fail with.
Definition at line 680 of file urbroute.cpp.
Referenced by UcxProcessLegacyUrb().
Validates and routes a URB the way USBPORT did. Owns the IRP afterwards.
Definition at line 760 of file urbroute.cpp.
Referenced by UcxProcessSubmitUrb().
|
static |
Definition at line 444 of file urbroute.cpp.
Referenced by UcxHandleStandardRequest().
|
static |
Keeps the PDO's driver loaded until the routine ran when the system allows it.
Definition at line 280 of file urbroute.cpp.
Referenced by UcxForwardIrpToQueue(), and UcxForwardIrpWithRequest().
Definition at line 435 of file urbroute.cpp.
Referenced by UcxHandleStandardRequest().
Definition at line 455 of file urbroute.cpp.
Referenced by UcxHandleStandardRequest().
Definition at line 130 of file urbroute.cpp.
Referenced by UcxLegacyTransferCompletion(), and UcxXrbTransferCompletion().
| NTSTATUS NTAPI UcxUsbdStatusToNtStatus | ( | _In_ USBD_STATUS | UsbdStatus | ) |
Definition at line 18 of file urbroute.cpp.
Referenced by UcxLegacyTransferCompletion(), UcxProcessLegacyUrb(), UcxXrbStreamsCompletion(), and UcxXrbTransferCompletion().
| BOOLEAN NTAPI UcxValidatePipeHandle | ( | _In_ UcxUsbDevice * | Device, |
| _In_ USBD_PIPE_HANDLE | Handle | ||
| ) |
Definition at line 356 of file urbroute.cpp.
Referenced by UcxPrepareTransfer(), and UcxProcessLegacyUrb().
|
static |
Definition at line 272 of file urbroute.cpp.
Referenced by UcxForwardDefaultPipeRequest(), UcxHandleIsoch(), and UcxProcessLegacyUrb().
|
static |
Definition at line 211 of file urbroute.cpp.
Referenced by UcxProcessLegacyUrb().