ReactOS 0.4.17-dev-1281-g065abb3
desccheck.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS SuperSpeed USB Hub Driver
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Descriptor validation for devices and hubs
5 * COPYRIGHT: Copyright 2026 Justin Miller <justin.miller@reactos.org>
6 */
7
8#pragma once
9
10/*
11 * Validation codes, used as the ETW payload and the validation bitmap bit
12 * index. The numbering must never change; gaps are reserved codes.
13 */
14enum class HubDescCode : ULONG
15{
18 Hub20Null = 2,
23 Hub20NoPorts = 7,
32 Hub30WrongType = 16,
34 Hub30NoPorts = 18,
40 BosWrongType = 24,
43 BosNull = 27,
44 BosUnknownType = 28,
46 BulkAtLowSpeed = 30,
48 BulkMaxPacket = 32,
74 ConfigWrongType = 58,
76 ConfigNull = 60,
93 DeviceWrongType = 77,
95 DeviceNull = 79,
103 HeaderPastBuffer = 87,
107 HeaderLengthZero = 91,
111 IadCountTooLarge = 95,
112 IadCountZero = 96,
117 DuplicateAlternate = 101,
118 DuplicateEndpoint = 102,
119 DuplicateInterface = 103,
125 InterruptInterval = 109,
126 InterruptMaxPacket = 110,
127 IsochAtLowSpeed = 111,
128 IsochInterval = 112,
129 IsochMaxPacket = 113,
137 MsOsExtConfigCount = 121,
141 MsOsExtConfigIndex = 125,
144 StringLengthOdd = 128,
149 StringWrongType = 133,
154 SsCapU1TooLarge = 138,
155 SsCapU2TooLarge = 139,
160 SsCapNoSpeeds = 144,
163 Usb20CapReserved = 147,
165 BaselineBeslZero = 149,
166 BeslWithoutLpm = 150,
168 DeepBeslZero = 152,
169 BosContainerIdZero = 153,
172 ConfigSubsetLength = 156,
190 MsOs20RegistryType = 174,
197 MsOs20ModelIdZero = 183,
200 MsOs20HeaderLength = 190,
204 MsOs20PastEnd = 194,
205 PlatformReserved = 195,
206 PlatformUuidZero = 196,
211 MsOs20MultipleCcgp = 201,
212 MsOs20CcgpLength = 202,
228 SspCapReservedByte = 218,
229 SspCapReservedWord = 219,
230 SspAttrNotRx = 220,
231 SspAttrNotTx = 221,
232 SspAttrTxMissing = 222,
235 SspMinLaneMismatch = 225,
237 SspSpeedIdCount = 227,
238 SspMinSpeedMissing = 228,
239 PdLengthTooLarge = 229,
240 PdLengthTooSmall = 230,
241 PdBufferTooSmall = 231,
242 PdReserved = 232,
248 BillboardNoModes = 238,
259 Count = 254
260};
261
262/* The device validation bitmap: 256 bits */
263#define HUB_DESC_BITMAP_ULONGS 8
264
266typedef
272
275{
276 /* Version the strictness gates use, not necessarily the one in the descriptor */
278
279 /* SuperSpeedPlus devices report UsbSuperSpeed */
281
282 /* From the hub global flags; always FALSE for hub descriptors */
286
287 /* Per device lenient validation mode (UseWin8DescriptorValidation errata) */
289
290 /* Findings belong to the hub itself; only changes the default log text */
292
293 /* Nonzero when the port supports SuperSpeedPlus isochronous bursting */
295
296 /* HUB_DESC_BITMAP_ULONGS words, or NULL */
298
299 /* NULL logs with DPRINT */
302};
303
306{
313};
314
315/* Device flags the BOS walk sets (in/out, only ever set) */
316#define HUB_BOS_SUPERSPEED_CAPABLE 0x00000001
317#define HUB_BOS_ENHANCED_SUPERSPEED_CAPABLE 0x00000002
318#define HUB_BOS_CHARGING_POLICY 0x00000004
319
320#include <pshpack1.h>
321
322/* MS OS 2.0 descriptor set information entry in the BOS platform capability */
324{
329};
330
331/* USB platform features (dual role) capability, version 1 */
333{
342};
343
344/* MS OS 2.0 descriptors */
346{
349};
350
352{
357};
358
359/* Configuration subset (bValue = configuration) or function subset (bValue = first interface) */
361{
367};
368
370{
375};
376
377/* Followed by the name, a USHORT data length and the data */
379{
384};
385
387{
392};
393
395{
399};
400
402{
405};
406
407/* MS OS 1.0 descriptors */
409{
415};
416
418{
422};
423
425{
428};
429
431{
437};
438
440{
446};
447
449{
452};
453
454#include <poppack.h>
455
461C_ASSERT(sizeof(HubMsOsString) == 18);
465
468{
472
473 /* NULL when the device reported an all zero container ID */
475
477
478 /* Entry chosen for this OS version, or NULL */
480
482
485};
486
487/* HubMsOs20Info.Flags */
488#define HUB_MSOS20_SET_INFO 0x00000001
489#define HUB_MSOS20_SET_HEADER 0x00000002
490#define HUB_MSOS20_ALT_ENUM 0x00000004
491#define HUB_MSOS20_CONFIG_SUBSET 0x00000008
492#define HUB_MSOS20_FUNCTION_SUBSET 0x00000010
493#define HUB_MSOS20_COMPATIBLE_ID 0x00000020
494#define HUB_MSOS20_REGISTRY 0x00000040
495#define HUB_MSOS20_RESUME_TIME 0x00000080
496#define HUB_MSOS20_MODEL_ID 0x00000100
497#define HUB_MSOS20_CCGP 0x00000200
498
501{
507};
508
509/* Context setup */
510
512VOID
513NTAPI
516 _In_ USHORT BcdUsb,
518 _In_ BOOLEAN Win8Behavior,
519 _In_ ULONG SspIsochBurstCount,
521
523VOID
524NTAPI
527 _In_ USHORT BcdUsb,
528 _In_ USB_DEVICE_SPEED Speed);
529
531PCSTR
532NTAPI
535
537VOID
538NTAPI
543
544/* Validators. FALSE means the caller fails the operation. */
545
548NTAPI
553 _Inout_opt_ PBOOLEAN IsBillboard);
554
557NTAPI
563
566NTAPI
571
578NTAPI
579HubDescCheckBos(
589
592NTAPI
597 _Out_opt_ PULONG AdjustedLength);
598
604NTAPI
609
612NTAPI
616
619NTAPI
624
627NTAPI
632
635NTAPI
640
646NTAPI
651
658NTAPI
659HubDescCheckMsOs20Set(
665
668NTAPI
673
676NTAPI
681
682/* Search helpers */
683
686NTAPI
691 _In_ UCHAR Type);
692
698NTAPI
703 _In_ LONG Alternate,
705 _In_ LONG SubClass,
707 _Out_opt_ PBOOLEAN HasAlternates);
708
711NTAPI
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
Definition: bufpool.h:45
#define Code
Definition: deflate.h:80
@ Warning
PUCHAR End
Definition: desccheck.cpp:2229
VOID(NTAPI * PFN_HUB_DESC_LOG)(_In_opt_ PVOID Context, _In_ HubDescCode Code, _In_ BOOLEAN Warning)
Definition: desccheck.h:268
VOID NTAPI HubDescInitHubContext(_Out_ HubDescContext *Context, _In_ USHORT BcdUsb, _In_ USB_DEVICE_SPEED Speed)
Definition: desccheck.cpp:112
_In_ ULONG _Out_opt_ HubBosInfo _Out_opt_ PUSHORT _Out_opt_ PUSHORT _Inout_opt_ PBOOLEAN _Inout_opt_ HubLpmInfo * Lpm
Definition: desccheck.h:587
BOOLEAN NTAPI HubDescNextMsOs20(_In_ PUCHAR End, _Inout_ HubMsOs20Common **Current)
Definition: desccheck.cpp:2647
BOOLEAN NTAPI HubDescCheckMsOsString(_In_ const HubDescContext *Context, _In_ const HubMsOsString *Descriptor)
Definition: desccheck.cpp:2490
BOOLEAN NTAPI HubDescCheck30Hub(_In_ const HubDescContext *Context, _In_reads_bytes_opt_(Length) PUSB_30_HUB_DESCRIPTOR Descriptor, _In_ ULONG Length)
Definition: desccheck.cpp:3272
BOOLEAN NTAPI HubDescCheckConfiguration(_In_ const HubDescContext *Context, _In_reads_bytes_opt_(Length) PUSB_CONFIGURATION_DESCRIPTOR Descriptor, _In_ ULONG Length, _Out_opt_ PBOOLEAN SupportsStreams)
Definition: desccheck.cpp:1237
VOID NTAPI HubDescLog(_In_ const HubDescContext *Context, _In_ HubDescCode Code, _In_ BOOLEAN Warning)
Definition: desccheck.cpp:383
_In_ ULONG _Out_opt_ HubBosInfo _Out_opt_ PUSHORT _Out_opt_ PUSHORT _Inout_opt_ PBOOLEAN LtmCapable
Definition: desccheck.h:586
BOOLEAN NTAPI HubDescCheckMsOsExtConfigHeader(_In_ const HubDescContext *Context, _In_reads_bytes_(Length) const HubMsOsExtConfigHeader *Descriptor, _In_ ULONG Length)
Definition: desccheck.cpp:2563
BOOLEAN NTAPI HubDescCheckDevice(_In_ const HubDescContext *Context, _In_reads_bytes_opt_(Length) PUSB_DEVICE_DESCRIPTOR Descriptor, _In_ ULONG Length, _Inout_opt_ PBOOLEAN IsBillboard)
Definition: desccheck.cpp:1367
_In_ ULONG _In_ const HubMsOs20SetInfo * SetInfo
Definition: desccheck.h:663
VOID NTAPI HubDescInitDeviceContext(_Out_ HubDescContext *Context, _In_ USHORT BcdUsb, _In_ USB_DEVICE_SPEED Speed, _In_ BOOLEAN Win8Behavior, _In_ ULONG SspIsochBurstCount, _In_opt_ PULONG Bitmap)
Definition: desccheck.cpp:91
HubDescCode
Definition: desccheck.h:15
@ MsOs20PlatformLength
@ ConfigBufferTooSmall
@ PlatformBufferTooSmall
@ SspCapAttributesReserved
@ ConfigTotalLengthTooLarge
@ FunctionSubsetLength
@ CompanionControlBytesPerInterval
@ PlatformFeaturesVersion
@ MsOs20ResumeTimeLength
@ MsOs20MultiplePlatform
@ CapMultipleBillboard
@ InterfaceBufferTooSmall
@ SspCompanionLengthTooSmall
@ BillboardPreferredInvalid
@ Hub20RemovableReserved
@ MsOsContainerIdIndex
@ MsOs20MultipleResumeTime
@ IadFirstInterfaceTooLarge
@ ConfigLengthTooSmall
@ Hub20RemovableMissingPort
@ MsOsExtConfigBufferSize
@ FunctionSubsetMisplacedFeature
@ FirstAlternateNotZero
@ BosBufferLargerThanTotal
@ DeviceBufferTooSmall
@ SsCapAttributesReserved
@ EndpointCountMismatch
@ MsOsExtConfigCompatibleId
@ SspCompanionBytesRange
@ MsOs20RegistryNameTooLarge
@ ConfigSubsetMisplacedFeature
@ FunctionSubsetTotalTooLarge
@ CompanionBulkReserved
@ MsOsExtConfigFirstInterface
@ SspCompanionNotSuperSpeed
@ PlatformFeaturesTooSmall
@ BosTotalLengthTooSmall
@ MsOs20RegistryDataTooLarge
@ Hub30RemovableMissingPort
@ MsOs20RegistryTooSmall
@ MsOsContainerIdVersion
@ DeepBeslNotAboveBaseline
@ ConfigMissingCompanion
@ BillboardDeviceVersion
@ ConfigLengthTooLarge
@ CompanionIsochReserved
@ MsOs20BytesVsSetInfo
@ MsOs20NoVersionMatch
@ CompanionInterruptBurst
@ SspCapBufferTooSmall
@ EndpointBeforeInterface
@ EndpointAddressReserved
@ FunctionSubsetFeatureLength
@ SsCapFunctionalityReserved
@ BillboardTooManyModes
@ BillboardBufferTooSmall
@ ContainerIdLengthTooLarge
@ CompanionInterruptBytesPerInterval
@ CompanionInterruptAttributes
@ IsochPacketInAlternate0
@ CapMultipleContainerId
@ CompanionIsochBytesPerInterval
@ MsOs20ResumeSignaling
@ BulkAttributesReserved
@ FunctionSubsetTotalTooSmall
@ SspCompanionLengthTooLarge
@ MsOs20CompatibleIdAfterNull
@ MsOs20CompatibleIdLength
@ PlatformLengthTooSmall
@ EndpointAttributesReserved
@ CompanionLengthTooSmall
@ CompanionControlBurst
@ DeviceLengthTooSmall
@ MsOsExtConfigBufferVsLength
@ MsOs20RegistryNameOddOrZero
@ SspCapFunctionalityReserved
@ InterfaceLengthTooLarge
@ InterfaceLengthTooSmall
@ MsOsExtConfigSubCompatibleId
@ InterruptAttributesReserved
@ PlatformFeaturesLength
@ CompanionControlAttributes
@ SsCapFunctionalityNotInSpeeds
@ MsOsContainerIdBufferSize
@ HeaderPastTotalLength
@ ConfigSubsetFeatureLength
@ Usb20CapBufferTooSmall
@ MsOs20SetHeaderLength
@ Hub30CharacteristicsReserved
@ SspCompanionBufferTooSmall
@ StringLengthTooSmall
@ ConfigTotalLengthTooSmall
@ MsOs20MultipleSetHeaders
@ MsOs20FeatureOutOfOrder
@ CompanionLengthTooLarge
@ MsOsExtConfigLengthVsCount
@ CompanionBulkStreams
@ MsOsContainerIdLength
@ SspCompanionUnexpected
@ EndpointLengthTooLarge
@ BillboardLengthInvalid
@ ContainerIdBufferTooSmall
@ CompanionBufferTooSmall
@ PlatformFeaturesMultiple
@ Usb20CapLengthTooSmall
@ DuplicateSerialNumber
@ ContainerIdLengthTooSmall
@ CompanionInterruptBurstPacket
@ Usb20CapLengthTooLarge
@ CompanionBulkBytesPerInterval
@ Hub30RemovableReserved
@ BillboardLengthTooSmall
@ StringLengthTooLarge
@ ConfigSubsetTotalTooSmall
@ ConfigSubsetTotalTooLarge
@ HeaderLengthTooSmall
@ CompanionIsochBurstPacket
@ ConfigMissingSspCompanion
@ StringBufferTooSmall
@ MsOs20RegistryDataZero
@ EndpointLengthTooSmall
@ MsOs20ResumeRecovery
@ MsOs20TotalLengthMismatch
@ MsOs20MultipleModelId
@ SerialNumberBadCharacter
@ ControlAttributesReserved
@ HeaderBufferTooSmall
@ Hub30DecodeLatencyReserved
@ Hub20PowerMaskNotOnes
@ CompanionNotSuperSpeed
@ SspCompanionReserved
@ Hub20CharacteristicsReserved
@ MsOsExtConfigVersion
@ CapMultipleSuperSpeedPlus
@ SspAttrSymmetricMismatch
@ CapMultipleSuperSpeed
@ MsOs20MultipleCompatibleId
@ MsOs20VersionMismatch
@ EndpointBufferTooSmall
@ CompanionIsochBytesNotOne
@ SspCapLengthTooSmall
@ ConfigBufferTooSmallForInterfaces
@ MsOs20DuplicateVersion
BOOLEAN NTAPI HubDescCheck20Hub(_In_ const HubDescContext *Context, _In_reads_bytes_opt_(Length) PUSB_HUB_DESCRIPTOR Descriptor, _In_ ULONG Length)
Definition: desccheck.cpp:3198
_In_ ULONG _Out_opt_ HubBosInfo _Out_opt_ PUSHORT U1ExitLatency
Definition: desccheck.h:584
BOOLEAN NTAPI HubDescCheckSerialNumber(_In_ const HubDescContext *Context, _In_reads_bytes_(*Length) PUSB_STRING_DESCRIPTOR Descriptor, _Inout_ PULONG Length)
Definition: desccheck.cpp:2418
_In_ ULONG _Out_opt_ HubBosInfo _Out_opt_ PUSHORT _Out_opt_ PUSHORT U2ExitLatency
Definition: desccheck.h:585
PUSB_COMMON_DESCRIPTOR NTAPI HubDescFind(_In_reads_bytes_(TotalLength) PVOID Buffer, _In_ ULONG TotalLength, _In_ PVOID Position, _In_ UCHAR Type)
Definition: desccheck.cpp:3333
BOOLEAN NTAPI HubDescCheckMsOsContainerId(_In_ const HubDescContext *Context, _In_reads_bytes_(Length) const HubMsOsContainerId *Descriptor, _In_ ULONG Length)
Definition: desccheck.cpp:2541
BOOLEAN NTAPI HubDescCheckMsOsContainerIdHeader(_In_ const HubDescContext *Context, _In_reads_bytes_(Length) const HubMsOsHeader *Descriptor, _In_ ULONG Length)
Definition: desccheck.cpp:2505
BOOLEAN NTAPI HubDescCheckString(_In_ const HubDescContext *Context, _In_reads_bytes_(Length) PUSB_STRING_DESCRIPTOR Descriptor, _In_ ULONG Length, _Out_opt_ PULONG AdjustedLength)
Definition: desccheck.cpp:2400
PUSB_INTERFACE_DESCRIPTOR NTAPI HubDescFindInterface(_In_ PUSB_CONFIGURATION_DESCRIPTOR Config, _In_ PVOID Position, _In_ LONG Number, _In_ LONG Alternate, _In_ LONG Class, _In_ LONG SubClass, _In_ LONG Protocol, _Out_opt_ PBOOLEAN HasAlternates)
Definition: desccheck.cpp:3371
PCSTR NTAPI HubDescCodeName(_In_ HubDescCode Code)
Definition: desccheck.cpp:128
_In_ ULONG _Out_opt_ HubBosInfo _Out_opt_ PUSHORT _Out_opt_ PUSHORT _Inout_opt_ PBOOLEAN _Inout_opt_ HubLpmInfo _Inout_opt_ PULONG DeviceFlags
Definition: desccheck.h:588
BOOLEAN NTAPI HubDescCheckMsOsExtConfig(_In_ const HubDescContext *Context, _In_reads_bytes_(sizeof(HubMsOsExtConfig)) const HubMsOsExtConfig *Descriptor, _In_ ULONG Length)
Definition: desccheck.cpp:2606
BOOLEAN NTAPI HubDescCheckBosHeader(_In_ const HubDescContext *Context, _In_reads_bytes_opt_(Length) PUSB_BOS_DESCRIPTOR Descriptor, _In_ ULONG Length)
Definition: desccheck.cpp:2197
_Check_return_ _In_ ULONG _Inout_ PDXGK_CHILD_CONTAINER_ID ContainerId
Definition: dispmprt.h:1484
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
HubUxdSettings Current
#define C_ASSERT(e)
Definition: intsafe.h:73
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81
_In_ ULONG Number
Definition: haltypes.h:1940
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Out_opt_
Definition: no_sal2.h:214
#define _Inout_
Definition: no_sal2.h:162
#define _Inout_opt_
Definition: no_sal2.h:216
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Inout_updates_bytes_(s)
Definition: no_sal2.h:184
#define _In_reads_bytes_opt_(s)
Definition: no_sal2.h:224
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
static BOOL Set
Definition: pageheap.c:10
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
HubPlatformFeatures * PlatformFeatures
Definition: desccheck.h:481
BOOLEAN ChargingPolicy
Definition: desccheck.h:484
PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR SuperSpeedPlus
Definition: desccheck.h:471
PUSB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR ContainerId
Definition: desccheck.h:474
HubMsOs20SetInfo * MsOs20SetInfo
Definition: desccheck.h:479
PUSB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR Usb20
Definition: desccheck.h:469
PUSB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR Billboard
Definition: desccheck.h:476
PUSB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR SuperSpeed
Definition: desccheck.h:470
BOOLEAN DiscardContainerId
Definition: desccheck.h:483
USB_DEVICE_SPEED Speed
Definition: desccheck.h:280
BOOLEAN ReservedFields
Definition: desccheck.h:285
BOOLEAN Win8Behavior
Definition: desccheck.h:288
PULONG Bitmap
Definition: desccheck.h:297
BOOLEAN ForHub
Definition: desccheck.h:291
PVOID LogContext
Definition: desccheck.h:301
ULONG SspIsochBurstCount
Definition: desccheck.h:294
USHORT BcdUsb
Definition: desccheck.h:277
BOOLEAN Strictest
Definition: desccheck.h:283
PFN_HUB_DESC_LOG Log
Definition: desccheck.h:300
BOOLEAN LegacyStrict
Definition: desccheck.h:284
UCHAR Deep
Definition: desccheck.h:312
BOOLEAN BeslAndAltHird
Definition: desccheck.h:308
BOOLEAN BaselineValid
Definition: desccheck.h:309
BOOLEAN Capable
Definition: desccheck.h:307
BOOLEAN DeepValid
Definition: desccheck.h:310
UCHAR Baseline
Definition: desccheck.h:311
USHORT wLength
Definition: desccheck.h:403
USHORT wDescriptorType
Definition: desccheck.h:404
USHORT wLength
Definition: desccheck.h:347
USHORT wDescriptorType
Definition: desccheck.h:348
UCHAR SubCompatibleId[8]
Definition: desccheck.h:374
HubMsOs20Ccgp * Ccgp
Definition: desccheck.h:506
HubMsOs20CompatibleId * CompatibleId
Definition: desccheck.h:503
HubMsOs20ModelId * ModelId
Definition: desccheck.h:505
HubMsOs20ResumeTime * ResumeTime
Definition: desccheck.h:504
UCHAR ModelId[16]
Definition: desccheck.h:398
USHORT wDescriptorType
Definition: desccheck.h:397
USHORT wDescriptorType
Definition: desccheck.h:381
USHORT wPropertyDataType
Definition: desccheck.h:382
USHORT wPropertyNameLength
Definition: desccheck.h:383
USHORT wDescriptorType
Definition: desccheck.h:389
UCHAR bResumeSignalingTime
Definition: desccheck.h:391
UCHAR bResumeRecoveryTime
Definition: desccheck.h:390
ULONG dwWindowsVersion
Definition: desccheck.h:355
USHORT wDescriptorType
Definition: desccheck.h:354
UCHAR bAltEnumCode
Definition: desccheck.h:328
ULONG dwWindowsVersion
Definition: desccheck.h:325
USHORT wTotalLength
Definition: desccheck.h:366
USHORT wLength
Definition: desccheck.h:362
USHORT wDescriptorType
Definition: desccheck.h:363
HubMsOsHeader Header
Definition: desccheck.h:426
HubMsOsExtConfigFunction Function[1]
Definition: desccheck.h:451
HubMsOsExtConfigHeader Header
Definition: desccheck.h:450
USHORT wIndex
Definition: desccheck.h:421
ULONG dwLength
Definition: desccheck.h:419
USHORT bcdVersion
Definition: desccheck.h:420
UCHAR bLength
Definition: desccheck.h:410
UCHAR bVendorCode
Definition: desccheck.h:413
UCHAR bDescriptorType
Definition: desccheck.h:411
WCHAR Signature[7]
Definition: desccheck.h:412
GUID PlatformCapabilityUuid
Definition: desccheck.h:338
UCHAR bDevCapabilityType
Definition: desccheck.h:336
static COORD Position
Definition: mouse.c:34
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: typedefs.h:53
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
uint16_t * PUSHORT
Definition: typedefs.h:56
const char * PCSTR
Definition: typedefs.h:52
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
_In_ ULONG TotalLength
Definition: usbdlib.h:185
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
Definition: wdfdevice.h:1707
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:342
_Reserved_ PVOID Reserved
Definition: winddi.h:3974