ReactOS 0.4.17-dev-1190-g4c812f4
usbdlib.h
Go to the documentation of this file.
1#pragma once
2
3#ifndef DECLSPEC_EXPORT
4#define DECLSPEC_EXPORT __declspec(dllexport)
5#endif
6
11
12#define UsbBuildInterruptOrBulkTransferRequest(urb,length, pipeHandle, transferBuffer, transferBufferMDL, transferBufferLength, transferFlags, link) { \
13 (urb)->UrbHeader.Function = URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER; \
14 (urb)->UrbHeader.Length = (length); \
15 (urb)->UrbBulkOrInterruptTransfer.PipeHandle = (pipeHandle); \
16 (urb)->UrbBulkOrInterruptTransfer.TransferBufferLength = (transferBufferLength); \
17 (urb)->UrbBulkOrInterruptTransfer.TransferBufferMDL = (transferBufferMDL); \
18 (urb)->UrbBulkOrInterruptTransfer.TransferBuffer = (transferBuffer); \
19 (urb)->UrbBulkOrInterruptTransfer.TransferFlags = (transferFlags); \
20 (urb)->UrbBulkOrInterruptTransfer.UrbLink = (link); \
21}
22
23#define UsbBuildGetDescriptorRequest(urb, length, descriptorType, descriptorIndex, languageId, transferBuffer, transferBufferMDL, transferBufferLength, link) { \
24 (urb)->UrbHeader.Function = URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE; \
25 (urb)->UrbHeader.Length = (length); \
26 (urb)->UrbControlDescriptorRequest.TransferBufferLength = (transferBufferLength); \
27 (urb)->UrbControlDescriptorRequest.TransferBufferMDL = (transferBufferMDL); \
28 (urb)->UrbControlDescriptorRequest.TransferBuffer = (transferBuffer); \
29 (urb)->UrbControlDescriptorRequest.DescriptorType = (descriptorType); \
30 (urb)->UrbControlDescriptorRequest.Index = (descriptorIndex); \
31 (urb)->UrbControlDescriptorRequest.LanguageId = (languageId); \
32 (urb)->UrbControlDescriptorRequest.UrbLink = (link); \
33}
34
35#define UsbBuildGetStatusRequest(urb, op, index, transferBuffer, transferBufferMDL, link) { \
36 (urb)->UrbHeader.Function = (op); \
37 (urb)->UrbHeader.Length = sizeof(struct _URB_CONTROL_GET_STATUS_REQUEST); \
38 (urb)->UrbControlGetStatusRequest.TransferBufferLength = sizeof(USHORT); \
39 (urb)->UrbControlGetStatusRequest.TransferBufferMDL = (transferBufferMDL); \
40 (urb)->UrbControlGetStatusRequest.TransferBuffer = (transferBuffer); \
41 (urb)->UrbControlGetStatusRequest.Index = (index); \
42 (urb)->UrbControlGetStatusRequest.UrbLink = (link); \
43}
44
45#define UsbBuildFeatureRequest(urb, op, featureSelector, index, link) { \
46 (urb)->UrbHeader.Function = (op); \
47 (urb)->UrbHeader.Length = sizeof(struct _URB_CONTROL_FEATURE_REQUEST); \
48 (urb)->UrbControlFeatureRequest.FeatureSelector = (featureSelector); \
49 (urb)->UrbControlFeatureRequest.Index = (index); \
50 (urb)->UrbControlFeatureRequest.UrbLink = (link); \
51}
52
53#define UsbBuildSelectConfigurationRequest(urb, length, configurationDescriptor) { \
54 (urb)->UrbHeader.Function = URB_FUNCTION_SELECT_CONFIGURATION; \
55 (urb)->UrbHeader.Length = (length); \
56 (urb)->UrbSelectConfiguration.ConfigurationDescriptor = (configurationDescriptor); \
57}
58
59#define UsbBuildSelectInterfaceRequest(urb, length, configurationHandle, interfaceNumber, alternateSetting) { \
60 (urb)->UrbHeader.Function = URB_FUNCTION_SELECT_INTERFACE; \
61 (urb)->UrbHeader.Length = (length); \
62 (urb)->UrbSelectInterface.Interface.AlternateSetting = (alternateSetting); \
63 (urb)->UrbSelectInterface.Interface.InterfaceNumber = (interfaceNumber); \
64 (urb)->UrbSelectInterface.Interface.Length = (length - sizeof(struct _URB_HEADER) - sizeof(USBD_CONFIGURATION_HANDLE)); \
65 (urb)->UrbSelectInterface.ConfigurationHandle = (configurationHandle); \
66}
67
68#define UsbBuildVendorRequest(urb, cmd, length, transferFlags, reservedbits, request, value, index, transferBuffer, transferBufferMDL, transferBufferLength, link) { \
69 (urb)->UrbHeader.Function = cmd; \
70 (urb)->UrbHeader.Length = (length); \
71 (urb)->UrbControlVendorClassRequest.TransferBufferLength = (transferBufferLength); \
72 (urb)->UrbControlVendorClassRequest.TransferBufferMDL = (transferBufferMDL); \
73 (urb)->UrbControlVendorClassRequest.TransferBuffer = (transferBuffer); \
74 (urb)->UrbControlVendorClassRequest.RequestTypeReservedBits = (reservedbits); \
75 (urb)->UrbControlVendorClassRequest.Request = (request); \
76 (urb)->UrbControlVendorClassRequest.Value = (value); \
77 (urb)->UrbControlVendorClassRequest.Index = (index); \
78 (urb)->UrbControlVendorClassRequest.TransferFlags = (transferFlags); \
79 (urb)->UrbControlVendorClassRequest.UrbLink = (link); \
80}
81
82#if (NTDDI_VERSION >= NTDDI_WINXP)
83
84#define UsbBuildOsFeatureDescriptorRequest(urb, length, interface, index, transferBuffer, transferBufferMDL, transferBufferLength, link) { \
85 (urb)->UrbHeader.Function = URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR; \
86 (urb)->UrbHeader.Length = (length); \
87 (urb)->UrbOSFeatureDescriptorRequest.TransferBufferLength = (transferBufferLength); \
88 (urb)->UrbOSFeatureDescriptorRequest.TransferBufferMDL = (transferBufferMDL); \
89 (urb)->UrbOSFeatureDescriptorRequest.TransferBuffer = (transferBuffer); \
90 (urb)->UrbOSFeatureDescriptorRequest.InterfaceNumber = (interface); \
91 (urb)->UrbOSFeatureDescriptorRequest.MS_FeatureDescriptorIndex = (index); \
92 (urb)->UrbOSFeatureDescriptorRequest.UrbLink = (link); \
93}
94
95#endif /* NTDDI_VERSION >= NTDDI_WINXP */
96
97#if (NTDDI_VERSION >= NTDDI_VISTA)
98
99#define USBD_CLIENT_CONTRACT_VERSION_INVALID 0xFFFFFFFF
100#define USBD_CLIENT_CONTRACT_VERSION_602 0x602
101
102#define USBD_INTERFACE_VERSION_600 0x600
103#define USBD_INTERFACE_VERSION_602 0x602
104#define USBD_INTERFACE_VERSION_603 0x603
105
106DECLARE_HANDLE(USBD_HANDLE);
107
108DECLARE_HANDLE(USBDI_HANDLE);
109
110DECLARE_HANDLE(USBD_FUNCTION_HANDLE);
111typedef USBD_FUNCTION_HANDLE *PUSBD_FUNCTION_HANDLE;
112
117
118/* IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE input; one function handle per function comes back */
122 USBDI_HANDLE Reserved;
126
127/* IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION input; stays pending until the wake */
131 USBD_FUNCTION_HANDLE UsbdFunctionHandle;
134
135#endif // NTDDI_VISTA
136
137#define URB_STATUS(urb) ((urb)->UrbHeader.Status)
138
139#define GET_SELECT_CONFIGURATION_REQUEST_SIZE(totalInterfaces, totalPipes) \
140 (sizeof(struct _URB_SELECT_CONFIGURATION) + \
141 ((totalInterfaces-1) * sizeof(USBD_INTERFACE_INFORMATION)) + \
142 ((totalPipes-totalInterfaces)*sizeof(USBD_PIPE_INFORMATION)))
143
144#define GET_SELECT_INTERFACE_REQUEST_SIZE(totalPipes) \
145 (sizeof(struct _URB_SELECT_INTERFACE) + \
146 ((totalPipes-1)*sizeof(USBD_PIPE_INFORMATION)))
147
148#define GET_USBD_INTERFACE_SIZE(numEndpoints) \
149 (sizeof(USBD_INTERFACE_INFORMATION) + \
150 (sizeof(USBD_PIPE_INFORMATION)*(numEndpoints)) - sizeof(USBD_PIPE_INFORMATION))
151
152#define GET_ISO_URB_SIZE(n) (sizeof(struct _URB_ISOCH_TRANSFER)+ \
153 sizeof(USBD_ISO_PACKET_DESCRIPTOR)*n)
154
155#ifndef _USBD_
156
159VOID
160NTAPI
162 _Out_ PUSBD_VERSION_INFORMATION VersionInformation);
163
166NTAPI
168 _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
171
173PURB
174NTAPI
176 _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
177 _Out_ PUSHORT Siz);
178
182NTAPI
188
192NTAPI
194 _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
201
204PURB
205NTAPI
207 _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
209
212ULONG
213NTAPI
217
220VOID
221NTAPI
225
229NTAPI
236
239NTAPI
241 _In_ PDEVICE_OBJECT RootHubPdo,
242 _Out_ PULONG CurrentFrame);
243
244#if (NTDDI_VERSION >= NTDDI_WINXP)
245
248ULONG
249NTAPI
254
255#endif
256
257#if (NTDDI_VERSION >= NTDDI_VISTA)
258
262NTAPI
263USBD_ValidateConfigurationDescriptor(
269
270/* UsbdEx lib */
271
276 _In_ USBD_HANDLE USBDHandle,
283 _Out_opt_
286);
287
289VOID
291 _In_ USBD_HANDLE USBDHandle,
294);
295
304 _Out_ USBD_HANDLE *USBDHandle
305);
306
307VOID
309 _In_ USBD_HANDLE USBDHandle
310);
311
316 _In_ USBD_HANDLE USBDHandle,
318);
319
324 _In_ USBD_HANDLE USBDHandle,
329 PURB *Urb
330);
331
333VOID
335 _In_ USBD_HANDLE USBDHandle,
337);
338
339#endif
340
341/* Queried with IOCTL_INTERNAL_USB_QUERY_USB_CAPABILITY */
342DEFINE_GUID(GUID_USB_CAPABILITY_CHAINED_MDLS,
343 0xf5ceeb23, 0xad90, 0x458c, 0x97, 0x9a, 0xd5, 0x9b, 0x3a, 0xd6, 0x88, 0x4f);
344DEFINE_GUID(GUID_USB_CAPABILITY_STATIC_STREAMS,
345 0x09051e1f, 0x0dc9, 0x4e6b, 0x8b, 0x12, 0x96, 0x0c, 0xbd, 0x81, 0xaa, 0x8f);
346DEFINE_GUID(GUID_USB_CAPABILITY_SELECTIVE_SUSPEND,
347 0x755c630d, 0xc8a0, 0x4765, 0x94, 0x6f, 0x90, 0xcc, 0x70, 0x38, 0x56, 0xa4);
348DEFINE_GUID(GUID_USB_CAPABILITY_FUNCTION_SUSPEND,
349 0xf4563183, 0xd66e, 0x42bd, 0xbd, 0x53, 0x1a, 0xc7, 0xb0, 0x4c, 0xd5, 0x9d);
350DEFINE_GUID(GUID_USB_CAPABILITY_HIGH_BANDWIDTH_ISOCH,
351 0x9c8a8a27, 0x15f9, 0x42e3, 0xa3, 0x56, 0xcd, 0xa6, 0xae, 0x97, 0xa8, 0xc8);
352DEFINE_GUID(GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE,
353 0x81a885a6, 0xf239, 0x42a2, 0x83, 0x97, 0xa5, 0xd9, 0x5b, 0xea, 0x69, 0x53);
354DEFINE_GUID(GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE,
355 0x8a2f776c, 0x9bd0, 0x4f29, 0x97, 0x71, 0xc7, 0xa3, 0x88, 0x46, 0xd4, 0xc7);
356DEFINE_GUID(GUID_USB_CAPABILITY_TIME_SYNC,
357 0xbb6e6472, 0x4be5, 0x44a3, 0x96, 0x41, 0x34, 0x5e, 0x56, 0xac, 0x34, 0x85);
358DEFINE_GUID(GUID_USB_CAPABILITY_SSP_ISOCH_PIPE_FLAGS,
359 0x59819125, 0x33a3, 0x421a, 0xa5, 0xdd, 0x37, 0x63, 0x9f, 0x30, 0xb9, 0x3e);
360DEFINE_GUID(GUID_USB_CAPABILITY_CONTROLLER_EUSB2_DOUBLE_ISOCH_COMPATIBLE,
361 0x5f0e4b3f, 0xde94, 0x473a, 0xa3, 0x73, 0x78, 0x1a, 0xcb, 0x92, 0xb5, 0xe8);
362
363#endif /* ! _USBD_ */
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
_In_ ULONG _In_ UCHAR Level
Definition: dispmprt.h:1329
#define NULL
Definition: types.h:112
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define APC_LEVEL
Definition: env_spec_w32.h:695
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
_Must_inspect_result_ _In_ UCXUSBDEVICE _In_ ULONG MaxPacketSize
Definition: hubucx.h:289
#define DECLARE_HANDLE(name)
Definition: mimeole.idl:23
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Outptr_result_bytebuffer_(s)
Definition: no_sal2.h:288
#define _Out_opt_
Definition: no_sal2.h:214
#define _Deref_out_range_(l, h)
Definition: no_sal2.h:376
#define _Pre_null_
Definition: no_sal2.h:512
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Out_writes_bytes_to_opt_(s, c)
Definition: no_sal2.h:240
#define _Inout_updates_bytes_(s)
Definition: no_sal2.h:184
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
#define _When_(c, a)
Definition: no_sal2.h:38
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
_In_ UCHAR _Outptr_result_bytebuffer_ DescriptorBufferLength PVOID * DescriptorBuffer
Definition: scsi.h:3930
#define DECLSPEC_IMPORT
Definition: rpc.h:74
COMPOSITE_DEVICE_CAPABILITIES CapabilityFlags
Definition: usbdlib.h:123
USBDI_HANDLE Reserved
Definition: usbdlib.h:122
USBD_FUNCTION_HANDLE UsbdFunctionHandle
Definition: usbdlib.h:131
Definition: usb.h:557
Definition: usbdlib.h:7
PUSBD_INTERFACE_INFORMATION Interface
Definition: usbdlib.h:9
PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
Definition: usbdlib.h:8
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
uint16_t * PUSHORT
Definition: typedefs.h:56
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
_In_ PGUID _In_ ULONG _Out_ PULONG ResultLength
Definition: ucxcontroller.h:83
_In_ PGUID CapabilityType
Definition: ucxcontroller.h:80
_In_ PGUID _In_ ULONG OutputBufferLength
Definition: ucxcontroller.h:81
_Must_inspect_result_ _In_ UCXENDPOINT _In_ PVOID Tag
Definition: ucxendpoint.h:325
LONG USBD_STATUS
Definition: usb.h:171
PUSB_COMMON_DESCRIPTOR NTAPI USBD_ParseDescriptors(PVOID DescriptorBuffer, ULONG TotalLength, PVOID StartPosition, LONG DescriptorType)
Definition: usbd.c:445
PURB NTAPI USBD_CreateConfigurationRequestEx(PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, PUSBD_INTERFACE_LIST_ENTRY InterfaceList)
Definition: usbd.c:329
PUSB_INTERFACE_DESCRIPTOR NTAPI USBD_ParseConfigurationDescriptorEx(PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, PVOID StartPosition, LONG InterfaceNumber, LONG AlternateSetting, LONG InterfaceClass, LONG InterfaceSubClass, LONG InterfaceProtocol)
Definition: usbd.c:496
ULONG NTAPI USBD_CalculateUsbBandwidth(ULONG MaxPacketSize, UCHAR EndpointType, BOOLEAN LowSpeed)
Definition: usbd.c:112
ULONG NTAPI USBD_GetPdoRegistryParameter(PDEVICE_OBJECT PhysicalDeviceObject, PVOID Parameter, ULONG ParameterLength, PWCHAR KeyName, ULONG KeyNameLength)
Definition: usbd.c:620
VOID NTAPI USBD_RegisterHcFilter(PDEVICE_OBJECT DeviceObject, PDEVICE_OBJECT FilterDeviceObject)
Definition: usbd.c:250
VOID NTAPI USBD_GetUSBDIVersion(PUSBD_VERSION_INFORMATION Version)
Definition: usbd.c:294
ULONG NTAPI USBD_GetInterfaceLength(PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor, PUCHAR BufferEnd)
Definition: usbd.c:414
NTSTATUS USBD_QueryUsbCapability(_In_ USBD_HANDLE USBDHandle, _In_ const GUID *CapabilityType, _In_ ULONG OutputBufferLength, _When_(OutputBufferLength==0, _Pre_null_) _When_(OutputBufferLength !=0 &&ResultLength==NULL, _Out_writes_bytes_(OutputBufferLength)) _When_(OutputBufferLength !=0 &&ResultLength !=NULL, _Out_writes_bytes_to_opt_(OutputBufferLength, *ResultLength)) PUCHAR OutputBuffer, _Out_opt_ _When_(ResultLength !=NULL, _Deref_out_range_(<=, OutputBufferLength)) PULONG ResultLength)
Definition: usbdex.c:10
NTSTATUS USBD_UrbAllocate(_In_ USBD_HANDLE USBDHandle, _Outptr_result_bytebuffer_(sizeof(URB)) PURB *Urb)
Definition: usbdex.c:59
NTSTATUS USBD_IsochUrbAllocate(_In_ USBD_HANDLE USBDHandle, _In_ ULONG NumberOfIsochPacket, _Outptr_result_bytebuffer_(sizeof(struct _URB_ISOCH_TRANSFER)+(NumberOfIsochPackets *sizeof(USBD_ISO_PACKET_DESCRIPTOR)) - sizeof(USBD_ISO_PACKET_DESCRIPTOR)) PURB *Urb)
Definition: usbdex.c:69
NTSTATUS USBD_CreateHandle(_In_ PDEVICE_OBJECT DeviceObject, _In_ PDEVICE_OBJECT TargetDeviceObject, _In_ ULONG USBDClientContractVersion, _In_ ULONG PoolTag, _Out_ USBD_HANDLE *USBDHandle)
Definition: usbdex.c:38
VOID USBD_AssignUrbToIoStackLocation(_In_ USBD_HANDLE USBDHandle, _In_ PIO_STACK_LOCATION IoStackLocation, _In_ PURB Urb)
Definition: usbdex.c:28
VOID USBD_UrbFree(_In_ USBD_HANDLE USBDHandle, _In_ PURB Urb)
Definition: usbdex.c:83
_In_ UCHAR EndpointType
Definition: usbdlib.h:252
_In_ ULONG _In_ PVOID StartPosition
Definition: usbdlib.h:186
_In_ UCHAR _In_ BOOLEAN LowSpeed
Definition: usbdlib.h:253
USBD_FUNCTION_HANDLE * PUSBD_FUNCTION_HANDLE
Definition: usbdlib.h:111
DECLSPEC_IMPORT PUSB_INTERFACE_DESCRIPTOR NTAPI USBD_ParseConfigurationDescriptor(_In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, _In_ UCHAR InterfaceNumber, _In_ UCHAR AlternateSetting)
struct _REQUEST_REMOTE_WAKE_NOTIFICATION * PREQUEST_REMOTE_WAKE_NOTIFICATION
_In_ PVOID _In_ LONG _In_ LONG _In_ LONG _In_ LONG InterfaceSubClass
Definition: usbdlib.h:199
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ ULONG _In_ ULONG _Out_ USBD_HANDLE * USBDHandle
Definition: usbdlib.h:305
struct _REGISTER_COMPOSITE_DEVICE REGISTER_COMPOSITE_DEVICE
_In_ ULONG NumberOfIsochPacket
Definition: usbdlib.h:325
_In_ ULONG TotalLength
Definition: usbdlib.h:185
struct _COMPOSITE_DEVICE_CAPABILITIES COMPOSITE_DEVICE_CAPABILITIES
_In_ ULONG _In_ PVOID _In_ LONG DescriptorType
Definition: usbdlib.h:187
_In_ PDEVICE_OBJECT FilterDeviceObject
Definition: usbdlib.h:224
VOID USBD_CloseHandle(_In_ USBD_HANDLE USBDHandle)
Definition: usbdex.c:51
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
Definition: usbdlib.h:208
_In_ PVOID _In_ LONG _In_ LONG AlternateSetting
Definition: usbdlib.h:197
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ ULONG USBDClientContractVersion
Definition: usbdlib.h:302
struct _USBD_INTERFACE_LIST_ENTRY * PUSBD_INTERFACE_LIST_ENTRY
struct _REQUEST_REMOTE_WAKE_NOTIFICATION REQUEST_REMOTE_WAKE_NOTIFICATION
_In_ ULONG ParameterLength
Definition: usbdlib.h:233
_In_ PIO_STACK_LOCATION _In_ PURB Urb
Definition: usbdlib.h:294
#define DECLSPEC_EXPORT
Definition: usbdlib.h:4
_In_ ULONG _In_ ULONG KeyNameLength
Definition: usbdlib.h:235
struct _USBD_INTERFACE_LIST_ENTRY USBD_INTERFACE_LIST_ENTRY
_In_ PVOID _In_ LONG _In_ LONG _In_ LONG _In_ LONG _In_ LONG InterfaceProtocol
Definition: usbdlib.h:200
_In_ PUCHAR BufferEnd
Definition: usbdlib.h:216
DECLSPEC_EXPORT NTSTATUS NTAPI USBD_QueryBusTime(_In_ PDEVICE_OBJECT RootHubPdo, _Out_ PULONG CurrentFrame)
_In_ PVOID _In_ LONG _In_ LONG _In_ LONG InterfaceClass
Definition: usbdlib.h:198
_In_ PVOID _In_ LONG InterfaceNumber
Definition: usbdlib.h:196
_Must_inspect_result_ _In_ PDEVICE_OBJECT TargetDeviceObject
Definition: usbdlib.h:301
struct _COMPOSITE_DEVICE_CAPABILITIES * PCOMPOSITE_DEVICE_CAPABILITIES
struct _REGISTER_COMPOSITE_DEVICE * PREGISTER_COMPOSITE_DEVICE
_In_ PIO_STACK_LOCATION IoStackLocation
Definition: usbdlib.h:292
DECLSPEC_IMPORT PURB NTAPI USBD_CreateConfigurationRequest(_In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, _Out_ PUSHORT Siz)
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
Definition: wdfdevice.h:2705
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3777
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
Definition: wdfmemory.h:164
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
Definition: wdfusb.h:2334
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG NumberOfIsochPackets
Definition: wdfusb.h:1703
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:336