#include "usbxhci.h"
#include <debug.h>
Go to the source code of this file.
|
| | _IRQL_requires_ (PASSIVE_LEVEL) static NTSTATUS NTAPI XhciCreateUcxController(_In_ PXHCI_CONTROLLER Controller) |
| | Sends a synchronous IOCTL to the specified device object.
|
| |
| NTSTATUS NTAPI | XhciEvtDeviceAdd (_In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit) |
| |
| NTSTATUS NTAPI | XhciEvtDevicePrepareHardware (_In_ WDFDEVICE Device, _In_ WDFCMRESLIST ResourcesRaw, _In_ WDFCMRESLIST ResourcesTranslated) |
| |
| NTSTATUS NTAPI | XhciEvtDeviceReleaseHardware (_In_ WDFDEVICE Device, _In_ WDFCMRESLIST ResourcesTranslated) |
| |
| NTSTATUS NTAPI | XhciEvtDeviceD0Entry (_In_ WDFDEVICE Device, _In_ WDF_POWER_DEVICE_STATE PreviousState) |
| |
| NTSTATUS NTAPI | XhciEvtDeviceD0Exit (_In_ WDFDEVICE Device, _In_ WDF_POWER_DEVICE_STATE TargetState) |
| |
| VOID NTAPI | XhciEvtIoDeviceControl (_In_ WDFQUEUE Queue, _In_ WDFREQUEST Request, _In_ size_t OutputBufferLength, _In_ size_t InputBufferLength, _In_ ULONG IoControlCode) |
| |
| NTSTATUS NTAPI | XhciEvtControllerQueryUsbCapability (_In_ UCXCONTROLLER UcxController, _In_ PGUID CapabilityType, _In_ ULONG OutputBufferLength, _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, _Out_ PULONG ResultLength) |
| |
| NTSTATUS NTAPI | XhciEvtControllerGetCurrentFrameNumber (_In_ UCXCONTROLLER UcxController, _Out_ PULONG FrameNumber) |
| |
| VOID NTAPI | XhciEvtControllerReset (_In_ UCXCONTROLLER UcxController) |
| |
◆ NDEBUG
◆ _IRQL_requires_()
Sends a synchronous IOCTL to the specified device object.
- Parameters
-
| [in] | IoControlCode | The IOCTL to send to the device. |
| [in] | DeviceObject | Pointer to the device object that will handle the IOCTL. |
| [in] | InputBuffer | Optional pointer to a buffer containing input data for the IOCTL. When specified, the buffer should be at least of InputBufferLength size. |
| [in] | InputBufferLength | Size in bytes, of the buffer pointed by InputBuffer. |
| [out] | OutputBuffer | Optional pointer to a buffer that will receive output data from the IOCTL. When specified, the buffer should be at least of OutputBufferLength size. |
| [in] | OutputBufferLength | Size in bytes, of the buffer pointed by OutputBuffer. |
| [in] | FileObject | Optional pointer to a file object that may be necessary for the IOCTL. |
- Returns
- An NTSTATUS code indicating success or failure of this function.
- Note
- Must be called at PASSIVE_LEVEL with all APCs enabled.
Definition at line 13 of file controller.cpp.
19{
23
29
31
34 {
37 }
38
41}
#define NT_SUCCESS(StatCode)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
FORCEINLINE VOID NTAPI UCX_CONTROLLER_CONFIG_INIT(_Out_ PUCX_CONTROLLER_CONFIG Config, _In_ LPCSTR DeviceDescription)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER XhciEvtControllerGetCurrentFrameNumber
EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY XhciEvtControllerQueryUsbCapability
EVT_UCX_CONTROLLER_USBDEVICE_ADD XhciEvtControllerUsbDeviceAdd
EVT_UCX_CONTROLLER_RESET XhciEvtControllerReset
#define WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(_attributes, _contexttype)
◆ XhciEvtControllerGetCurrentFrameNumber()
Definition at line 196 of file controller.cpp.
199{
201
202
206}
#define STATUS_NOT_IMPLEMENTED
#define UNREFERENCED_PARAMETER(P)
◆ XhciEvtControllerQueryUsbCapability()
Definition at line 178 of file controller.cpp.
184{
189
192}
#define STATUS_NOT_SUPPORTED
_In_ PGUID _In_ ULONG _Out_ PULONG ResultLength
_In_ PGUID CapabilityType
_In_ PGUID _In_ ULONG OutputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
◆ XhciEvtControllerReset()
| VOID NTAPI XhciEvtControllerReset |
( |
_In_ UCXCONTROLLER |
UcxController | ) |
|
Definition at line 210 of file controller.cpp.
212{
214
216
218 UcxControllerResetComplete(UcxController, &
Info);
219}
FORCEINLINE VOID NTAPI UCX_CONTROLLER_RESET_COMPLETE_INFO_INIT(_Out_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo, _In_ UCX_CONTROLLER_STATE UcxControllerState, _In_ BOOLEAN UcxCoordinated)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
◆ XhciEvtDeviceAdd()
Definition at line 45 of file controller.cpp.
48{
55
58
64 WdfDeviceInitSetPnpPowerEventCallbacks(
DeviceInit, &PnpPower);
65
68 {
71 }
72
74
77 {
80 }
81
84
85
88
91 {
94 }
95
99
101}
_Must_inspect_result_ _In_ PUCXHUB_DEVICE_CREATE_INFO _Out_ UCXUSBDEVICE * Device
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl
PFN_WDF_DEVICE_D0_ENTRY EvtDeviceD0Entry
PFN_WDF_DEVICE_D0_EXIT EvtDeviceD0Exit
PFN_WDF_DEVICE_PREPARE_HARDWARE EvtDevicePrepareHardware
PFN_WDF_DEVICE_RELEASE_HARDWARE EvtDeviceReleaseHardware
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL XhciEvtIoDeviceControl
EVT_WDF_DEVICE_PREPARE_HARDWARE XhciEvtDevicePrepareHardware
EVT_WDF_DEVICE_RELEASE_HARDWARE XhciEvtDeviceReleaseHardware
EVT_WDF_DEVICE_D0_EXIT XhciEvtDeviceD0Exit
EVT_WDF_DEVICE_D0_ENTRY XhciEvtDeviceD0Entry
_In_ PWDFDEVICE_INIT DeviceInit
_Must_inspect_result_ _In_ WDFDRIVER Driver
FORCEINLINE VOID WDF_PNPPOWER_EVENT_CALLBACKS_INIT(_Out_ PWDF_PNPPOWER_EVENT_CALLBACKS Callbacks)
FORCEINLINE VOID WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(_Out_ PWDF_IO_QUEUE_CONFIG Config, _In_ WDF_IO_QUEUE_DISPATCH_TYPE DispatchType)
@ WdfIoQueueDispatchParallel
#define WDF_NO_OBJECT_ATTRIBUTES
◆ XhciEvtDeviceD0Entry()
Definition at line 134 of file controller.cpp.
137{
140
141
144}
_In_ WDF_POWER_DEVICE_STATE PreviousState
◆ XhciEvtDeviceD0Exit()
Definition at line 148 of file controller.cpp.
151{
154
157}
_In_ WDF_POWER_DEVICE_STATE TargetState
◆ XhciEvtDevicePrepareHardware()
| NTSTATUS NTAPI XhciEvtDevicePrepareHardware |
( |
_In_ WDFDEVICE |
Device, |
|
|
_In_ WDFCMRESLIST |
ResourcesRaw, |
|
|
_In_ WDFCMRESLIST |
ResourcesTranslated |
|
) |
| |
Definition at line 105 of file controller.cpp.
109{
113
114
117}
_In_ WDFCMRESLIST _In_ WDFCMRESLIST ResourcesTranslated
_In_ WDFCMRESLIST ResourcesRaw
◆ XhciEvtDeviceReleaseHardware()
| NTSTATUS NTAPI XhciEvtDeviceReleaseHardware |
( |
_In_ WDFDEVICE |
Device, |
|
|
_In_ WDFCMRESLIST |
ResourcesTranslated |
|
) |
| |
◆ XhciEvtIoDeviceControl()
Definition at line 161 of file controller.cpp.
167{
169
171 return;
172
174}
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
#define STATUS_INVALID_DEVICE_REQUEST
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue