ReactOS 0.4.17-dev-1037-g720d112
usbdevice.cpp
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: UCX USB device and endpoint creation callbacks
5 * COPYRIGHT: Copyright 2026 Justin Miller <justinmiller100@gmail.com>
6 */
7
8#include "usbxhci.h"
9
10#define NDEBUG
11#include <debug.h>
12
16 _In_ UCXCONTROLLER UcxController,
19{
21 UCXUSBDEVICE UsbDevice;
23
25
37
38 Status = UcxUsbDeviceCreate(UcxController, &UsbDeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &UsbDevice);
39 if (!NT_SUCCESS(Status))
40 DPRINT1("UcxUsbDeviceCreate failed 0x%lx\n", Status);
41
42 return Status;
43}
44
45/* Device management requests, each carrying the matching USBDEVICE_* payload */
46
47VOID
50 _In_ UCXCONTROLLER UcxController,
51 _In_ WDFREQUEST Request)
52{
53 UNREFERENCED_PARAMETER(UcxController);
54 WdfRequestComplete(Request, STATUS_NOT_IMPLEMENTED);
55}
56
57VOID
60 _In_ UCXCONTROLLER UcxController,
61 _In_ WDFREQUEST Request)
62{
63 UNREFERENCED_PARAMETER(UcxController);
64
65 /* Enable Slot command */
66 WdfRequestComplete(Request, STATUS_NOT_IMPLEMENTED);
67}
68
69VOID
72 _In_ UCXCONTROLLER UcxController,
73 _In_ WDFREQUEST Request)
74{
75 UNREFERENCED_PARAMETER(UcxController);
76
77 /* Disable Slot command */
78 WdfRequestComplete(Request, STATUS_NOT_IMPLEMENTED);
79}
80
81VOID
84 _In_ UCXCONTROLLER UcxController,
85 _In_ WDFREQUEST Request)
86{
87 UNREFERENCED_PARAMETER(UcxController);
88
89 /* Reset Device command */
90 WdfRequestComplete(Request, STATUS_NOT_IMPLEMENTED);
91}
92
93VOID
96 _In_ UCXCONTROLLER UcxController,
97 _In_ WDFREQUEST Request)
98{
99 UNREFERENCED_PARAMETER(UcxController);
100
101 /* Address Device command */
102 WdfRequestComplete(Request, STATUS_NOT_IMPLEMENTED);
103}
104
105VOID
106NTAPI
108 _In_ UCXCONTROLLER UcxController,
109 _In_ WDFREQUEST Request)
110{
111 UNREFERENCED_PARAMETER(UcxController);
112
113 /* Evaluate Context command */
114 WdfRequestComplete(Request, STATUS_NOT_IMPLEMENTED);
115}
116
117VOID
118NTAPI
120 _In_ UCXCONTROLLER UcxController,
121 _In_ WDFREQUEST Request)
122{
123 UNREFERENCED_PARAMETER(UcxController);
124 WdfRequestComplete(Request, STATUS_NOT_IMPLEMENTED);
125}
126
127/* Endpoint creation */
128
130NTAPI
132 _In_ UCXCONTROLLER UcxController,
133 _In_ UCXUSBDEVICE UcxUsbDevice,
136{
137 UNREFERENCED_PARAMETER(UcxController);
141
144}
145
147NTAPI
149 _In_ UCXCONTROLLER UcxController,
150 _In_ UCXUSBDEVICE UcxUsbDevice,
155{
156 UNREFERENCED_PARAMETER(UcxController);
158 UNREFERENCED_PARAMETER(UsbEndpointDescriptor);
162
165}
LONG NTSTATUS
Definition: precomp.h:26
#define DPRINT1
Definition: precomp.h:8
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
Status
Definition: gdiplustypes.h:24
_Must_inspect_result_ _In_ UCXUSBDEVICE _In_ ULONG MaxPacketSize
Definition: hubucx.h:289
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
_In_ PUCXUSBDEVICE_INFO UcxUsbDeviceInfo
_In_ PUCXUSBDEVICE_INFO _In_ PUCXUSBDEVICE_INIT UsbDeviceInit
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
_Must_inspect_result_ _In_ UCXUSBDEVICE UsbDevice
Definition: ucxendpoint.h:313
struct _UCXENDPOINT_INIT * PUCXENDPOINT_INIT
Definition: ucxobjects.h:20
struct _UCXUSBDEVICE_INIT * PUCXUSBDEVICE_INIT
Definition: ucxobjects.h:19
_In_ UCXUSBDEVICE _In_ ULONG _In_opt_ PUSB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR SuperSpeedEndpointCompanionDescriptor
Definition: ucxusbdevice.h:303
_In_ UCXUSBDEVICE _In_ ULONG UsbEndpointDescriptorBufferLength
Definition: ucxusbdevice.h:302
_In_ UCXUSBDEVICE _In_ ULONG _In_ PUCXENDPOINT_INIT UcxEndpointInit
Definition: ucxusbdevice.h:289
FORCEINLINE VOID NTAPI UcxUsbDeviceInitSetEventCallbacks(_Inout_ PUCXUSBDEVICE_INIT UsbDeviceInit, _In_ PUCX_USBDEVICE_EVENT_CALLBACKS EventCallbacks)
Definition: ucxusbdevice.h:450
_In_ UCXUSBDEVICE UcxUsbDevice
Definition: ucxusbdevice.h:287
FORCEINLINE VOID NTAPI UCX_USBDEVICE_EVENT_CALLBACKS_INIT(_Out_ PUCX_USBDEVICE_EVENT_CALLBACKS Callbacks, _In_ PFN_UCX_USBDEVICE_ENDPOINTS_CONFIGURE EvtUsbDeviceEndpointsConfigure, _In_ PFN_UCX_USBDEVICE_ENABLE EvtUsbDeviceEnable, _In_ PFN_UCX_USBDEVICE_DISABLE EvtUsbDeviceDisable, _In_ PFN_UCX_USBDEVICE_RESET EvtUsbDeviceReset, _In_ PFN_UCX_USBDEVICE_ADDRESS EvtUsbDeviceAddress, _In_ PFN_UCX_USBDEVICE_UPDATE EvtUsbDeviceUpdate, _In_ PFN_UCX_USBDEVICE_HUB_INFO EvtUsbDeviceHubInfo, _In_ PFN_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD EvtUsbDeviceDefaultEndpointAdd, _In_ PFN_UCX_USBDEVICE_ENDPOINT_ADD EvtUsbDeviceEndpointAdd)
Definition: ucxusbdevice.h:364
EVT_UCX_USBDEVICE_ADDRESS XhciEvtUsbDeviceAddress
Definition: usbxhci.h:75
EVT_UCX_USBDEVICE_DISABLE XhciEvtUsbDeviceDisable
Definition: usbxhci.h:73
EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD XhciEvtUsbDeviceDefaultEndpointAdd
Definition: usbxhci.h:78
EVT_UCX_USBDEVICE_ENDPOINT_ADD XhciEvtUsbDeviceEndpointAdd
Definition: usbxhci.h:79
EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE XhciEvtUsbDeviceEndpointsConfigure
Definition: usbxhci.h:71
EVT_UCX_USBDEVICE_ENABLE XhciEvtUsbDeviceEnable
Definition: usbxhci.h:72
EVT_UCX_CONTROLLER_USBDEVICE_ADD XhciEvtControllerUsbDeviceAdd
Definition: usbxhci.h:70
EVT_UCX_USBDEVICE_RESET XhciEvtUsbDeviceReset
Definition: usbxhci.h:74
EVT_UCX_USBDEVICE_HUB_INFO XhciEvtUsbDeviceHubInfo
Definition: usbxhci.h:77
EVT_UCX_USBDEVICE_UPDATE XhciEvtUsbDeviceUpdate
Definition: usbxhci.h:76
#define WDF_NO_OBJECT_ATTRIBUTES
Definition: wdftypes.h:105