ReactOS 0.4.17-dev-1037-g720d112
usbdclient.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS USB 3 stack
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Client handle interface between usbd and the USB controller extension
5 * COPYRIGHT: Copyright 2026 Justin Miller <justinmiller100@gmail.com>
6 */
7
8#pragma once
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14/* {DEEE98EA-C0A1-42C3-9738-A04606C84E93} */
15DEFINE_GUID(GUID_USBD_CLIENT_INTERFACE,
16 0xdeee98ea, 0xc0a1, 0x42c3, 0x97, 0x38, 0xa0, 0x46, 0x06, 0xc8, 0x4e, 0x93);
17
18#define USBD_CLIENT_INTERFACE_VERSION 0x602
19
20DECLARE_HANDLE(USBD_CLIENT_HANDLE);
21
22typedef
25 _In_ USBD_CLIENT_HANDLE Handle);
26
27typedef
31 _In_ USBD_CLIENT_HANDLE Handle,
32 _Out_ PURB* Urb);
33
34typedef
38 _In_ USBD_CLIENT_HANDLE Handle,
40 _Out_ PURB* Urb);
41
42typedef
46 _In_ USBD_CLIENT_HANDLE Handle,
47 _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
49 _Out_ PURB* Urb);
50
51typedef
54 _In_ PURB Urb);
55
57{
59
60 /* Filled by the requester */
62 USBD_CLIENT_HANDLE Handle;
73
74 /* Filled by the controller extension */
82
83#ifdef _WIN64
84C_ASSERT(sizeof(USBD_CLIENT_INTERFACE) == 0x98);
85#else
87#endif
88
89#ifdef __cplusplus
90}
91#endif
#define VOID
Definition: acefi.h:82
#define NTSTATUS
Definition: precomp.h:19
ULONG Handle
Definition: gdb_input.c:15
#define C_ASSERT(e)
Definition: intsafe.h:73
#define DECLARE_HANDLE(name)
Definition: mimeole.idl:23
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
Definition: usb.h:557
ULONG VerifierStaticStreamCountOverride
Definition: usbdclient.h:70
PFN_USBD_CLIENT_XRB_FREE ReleaseUrb
Definition: usbdclient.h:80
ULONG VerifierFailStaticStreamSupport
Definition: usbdclient.h:69
PFN_USBD_CLIENT_ISOCH_XRB_ALLOCATE AllocIsochUrb
Definition: usbdclient.h:77
PFN_USBD_CLIENT_UNREGISTER Unregister
Definition: usbdclient.h:75
PFN_USBD_CLIENT_XRB_ALLOCATE AllocUrb
Definition: usbdclient.h:76
PDEVICE_OBJECT DeviceObject
Definition: usbdclient.h:63
USBD_CLIENT_HANDLE Handle
Definition: usbdclient.h:62
ULONG VerifierFailEnableStaticStreams
Definition: usbdclient.h:71
ULONG VerifierFailChainedMdlSupport
Definition: usbdclient.h:68
ULONG VerifierFailRegistration
Definition: usbdclient.h:67
PFN_USBD_CLIENT_SELECT_XRB_BUILD AllocSelectConfigUrb
Definition: usbdclient.h:78
PFN_USBD_CLIENT_SELECT_XRB_BUILD AllocSelectInterfaceUrb
Definition: usbdclient.h:79
Definition: usbdlib.h:7
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ NTSTATUS(NTAPI * PFN_USBD_CLIENT_ISOCH_XRB_ALLOCATE)(_In_ USBD_CLIENT_HANDLE Handle, _In_ ULONG NumberOfIsochPackets, _Out_ PURB *Urb)
Definition: usbdclient.h:37
struct _USBD_CLIENT_INTERFACE USBD_CLIENT_INTERFACE
_Must_inspect_result_ NTSTATUS(NTAPI * PFN_USBD_CLIENT_XRB_ALLOCATE)(_In_ USBD_CLIENT_HANDLE Handle, _Out_ PURB *Urb)
Definition: usbdclient.h:30
_Must_inspect_result_ NTSTATUS(NTAPI * PFN_USBD_CLIENT_SELECT_XRB_BUILD)(_In_ USBD_CLIENT_HANDLE Handle, _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, _In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList, _Out_ PURB *Urb)
Definition: usbdclient.h:45
VOID(NTAPI * PFN_USBD_CLIENT_XRB_FREE)(_In_ PURB Urb)
Definition: usbdclient.h:53
struct _USBD_CLIENT_INTERFACE * PUSBD_CLIENT_INTERFACE
VOID(NTAPI * PFN_USBD_CLIENT_UNREGISTER)(_In_ USBD_CLIENT_HANDLE Handle)
Definition: usbdclient.h:24
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
Definition: usbdlib.h:208
_In_ PIO_STACK_LOCATION _In_ PURB Urb
Definition: usbdlib.h:294
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG NumberOfIsochPackets
Definition: wdfusb.h:1703