ReactOS 0.4.17-dev-1037-g720d112
usbxhci.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS xHCI Host Controller Driver
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Common declarations for usbxhci
5 * COPYRIGHT: Copyright 2026 Justin Miller <justinmiller100@gmail.com>
6 */
7
8#pragma once
9
10#include <ntddk.h>
11#include <wdf.h>
12#include <ucxclass.h>
13#include <ucxstub.h>
14
15#define XHCI_POOL_TAG 'ichX'
16
17typedef struct _XHCI_CONTROLLER
18{
19 WDFDEVICE Device;
20 UCXCONTROLLER UcxController;
21 UCXROOTHUB UcxRootHub;
23
25
28{
31
33
34/* driver.cpp */
35extern "C" DRIVER_INITIALIZE DriverEntry;
36EVT_WDF_DRIVER_UNLOAD XhciEvtDriverUnload;
37
38/* controller.cpp */
39EVT_WDF_DRIVER_DEVICE_ADD XhciEvtDeviceAdd;
40EVT_WDF_DEVICE_PREPARE_HARDWARE XhciEvtDevicePrepareHardware;
41EVT_WDF_DEVICE_RELEASE_HARDWARE XhciEvtDeviceReleaseHardware;
42EVT_WDF_DEVICE_D0_ENTRY XhciEvtDeviceD0Entry;
43EVT_WDF_DEVICE_D0_EXIT XhciEvtDeviceD0Exit;
44EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL XhciEvtIoDeviceControl;
45EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY XhciEvtControllerQueryUsbCapability;
46EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER XhciEvtControllerGetCurrentFrameNumber;
47EVT_UCX_CONTROLLER_RESET XhciEvtControllerReset;
48
49/* roothub.cpp */
50
54XhciRootHubCreate(
56
57EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubClearHubFeature;
58EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubClearPortFeature;
59EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubGetHubStatus;
60EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubGetPortStatus;
61EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubSetHubFeature;
62EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubSetPortFeature;
63EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubGetPortErrorCount;
64EVT_UCX_ROOTHUB_INTERRUPT_TX XhciEvtRootHubInterruptTx;
65EVT_UCX_ROOTHUB_GET_INFO XhciEvtRootHubGetInfo;
66EVT_UCX_ROOTHUB_GET_20PORT_INFO XhciEvtRootHubGet20PortInfo;
67EVT_UCX_ROOTHUB_GET_30PORT_INFO XhciEvtRootHubGet30PortInfo;
68
69/* usbdevice.cpp */
70EVT_UCX_CONTROLLER_USBDEVICE_ADD XhciEvtControllerUsbDeviceAdd;
71EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE XhciEvtUsbDeviceEndpointsConfigure;
72EVT_UCX_USBDEVICE_ENABLE XhciEvtUsbDeviceEnable;
73EVT_UCX_USBDEVICE_DISABLE XhciEvtUsbDeviceDisable;
74EVT_UCX_USBDEVICE_RESET XhciEvtUsbDeviceReset;
75EVT_UCX_USBDEVICE_ADDRESS XhciEvtUsbDeviceAddress;
76EVT_UCX_USBDEVICE_UPDATE XhciEvtUsbDeviceUpdate;
77EVT_UCX_USBDEVICE_HUB_INFO XhciEvtUsbDeviceHubInfo;
78EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD XhciEvtUsbDeviceDefaultEndpointAdd;
79EVT_UCX_USBDEVICE_ENDPOINT_ADD XhciEvtUsbDeviceEndpointAdd;
LONG NTSTATUS
Definition: precomp.h:26
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define _In_
Definition: no_sal2.h:158
UCXCONTROLLER UcxController
Definition: usbxhci.h:20
WDFDEVICE Device
Definition: usbxhci.h:19
UCXROOTHUB UcxRootHub
Definition: usbxhci.h:21
PXHCI_CONTROLLER Controller
Definition: usbxhci.h:29
#define NTAPI
Definition: typedefs.h:36
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
EVT_UCX_USBDEVICE_ADDRESS XhciEvtUsbDeviceAddress
Definition: usbxhci.h:75
EVT_UCX_ROOTHUB_GET_20PORT_INFO XhciEvtRootHubGet20PortInfo
Definition: usbxhci.h:66
EVT_UCX_USBDEVICE_DISABLE XhciEvtUsbDeviceDisable
Definition: usbxhci.h:73
struct _XHCI_UCX_CONTROLLER_CONTEXT XHCI_UCX_CONTROLLER_CONTEXT
EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubSetHubFeature
Definition: usbxhci.h:61
struct _XHCI_UCX_CONTROLLER_CONTEXT * PXHCI_UCX_CONTROLLER_CONTEXT
EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER XhciEvtControllerGetCurrentFrameNumber
Definition: usbxhci.h:46
struct _XHCI_CONTROLLER XHCI_CONTROLLER
EVT_UCX_ROOTHUB_GET_30PORT_INFO XhciEvtRootHubGet30PortInfo
Definition: usbxhci.h:67
EVT_UCX_ROOTHUB_GET_INFO XhciEvtRootHubGetInfo
Definition: usbxhci.h:65
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL XhciEvtIoDeviceControl
Definition: usbxhci.h:44
EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY XhciEvtControllerQueryUsbCapability
Definition: usbxhci.h:45
EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD XhciEvtUsbDeviceDefaultEndpointAdd
Definition: usbxhci.h:78
EVT_WDF_DRIVER_DEVICE_ADD XhciEvtDeviceAdd
Definition: usbxhci.h:39
DRIVER_INITIALIZE DriverEntry
Definition: usbxhci.h:35
EVT_UCX_USBDEVICE_ENDPOINT_ADD XhciEvtUsbDeviceEndpointAdd
Definition: usbxhci.h:79
EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE XhciEvtUsbDeviceEndpointsConfigure
Definition: usbxhci.h:71
EVT_UCX_ROOTHUB_INTERRUPT_TX XhciEvtRootHubInterruptTx
Definition: usbxhci.h:64
EVT_WDF_DRIVER_UNLOAD XhciEvtDriverUnload
Definition: usbxhci.h:36
EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubClearHubFeature
Definition: usbxhci.h:57
EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubGetHubStatus
Definition: usbxhci.h:59
EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubClearPortFeature
Definition: usbxhci.h:58
EVT_WDF_DEVICE_PREPARE_HARDWARE XhciEvtDevicePrepareHardware
Definition: usbxhci.h:40
EVT_UCX_USBDEVICE_ENABLE XhciEvtUsbDeviceEnable
Definition: usbxhci.h:72
struct _XHCI_CONTROLLER * PXHCI_CONTROLLER
EVT_UCX_CONTROLLER_USBDEVICE_ADD XhciEvtControllerUsbDeviceAdd
Definition: usbxhci.h:70
EVT_WDF_DEVICE_RELEASE_HARDWARE XhciEvtDeviceReleaseHardware
Definition: usbxhci.h:41
EVT_UCX_CONTROLLER_RESET XhciEvtControllerReset
Definition: usbxhci.h:47
EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubGetPortErrorCount
Definition: usbxhci.h:63
EVT_UCX_USBDEVICE_RESET XhciEvtUsbDeviceReset
Definition: usbxhci.h:74
EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubSetPortFeature
Definition: usbxhci.h:62
EVT_WDF_DEVICE_D0_EXIT XhciEvtDeviceD0Exit
Definition: usbxhci.h:43
EVT_UCX_USBDEVICE_HUB_INFO XhciEvtUsbDeviceHubInfo
Definition: usbxhci.h:77
EVT_WDF_DEVICE_D0_ENTRY XhciEvtDeviceD0Entry
Definition: usbxhci.h:42
EVT_UCX_ROOTHUB_CONTROL_URB XhciEvtRootHubGetPortStatus
Definition: usbxhci.h:60
EVT_UCX_USBDEVICE_UPDATE XhciEvtUsbDeviceUpdate
Definition: usbxhci.h:76
#define WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(_contexttype, _castingfunction)
Definition: wdfobject.h:350