ReactOS 0.4.15-dev-5672-gf73ac17
wdfusb.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation. All rights reserved.
4
5_WdfVersionBuild_
6
7Module Name:
8
9 WdfUsb.h
10
11Abstract:
12
13 Contains prototypes for interfacing with a USB connected device
14
15Environment:
16
17 kernel mode only
18
19Revision History:
20
21--*/
22
23//
24// NOTE: This header is generated by stubwork. Please make any
25// modifications to the corresponding template files
26// (.x or .y) and use stubwork to regenerate the header
27//
28
29#ifndef _WDFUSB_H_
30#define _WDFUSB_H_
31
32#ifndef WDF_EXTERN_C
33 #ifdef __cplusplus
34 #define WDF_EXTERN_C extern "C"
35 #define WDF_EXTERN_C_START extern "C" {
36 #define WDF_EXTERN_C_END }
37 #else
38 #define WDF_EXTERN_C
39 #define WDF_EXTERN_C_START
40 #define WDF_EXTERN_C_END
41 #endif
42#endif
43
45
46
47
48#if (NTDDI_VERSION >= NTDDI_WIN2K)
49
50#ifndef BMREQUEST_HOST_TO_DEVICE
51#define BMREQUEST_HOST_TO_DEVICE 0
52#endif // BMREQUEST_HOST_TO_DEVICE
53
54#ifndef BMREQUEST_DEVICE_TO_HOST
55#define BMREQUEST_DEVICE_TO_HOST 1
56#endif // BMREQUEST_DEVICE_TO_HOST
57
58#ifndef BMREQUEST_STANDARD
59#define BMREQUEST_STANDARD 0
60#endif // BMREQUEST_STANDARD
61
62#ifndef BMREQUEST_CLASS
63#define BMREQUEST_CLASS 1
64#endif // BMREQUEST_CLASS
65
66#ifndef BMREQUEST_VENDOR
67#define BMREQUEST_VENDOR 2
68#endif // BMREQUEST_VENDOR
69
70#ifndef BMREQUEST_TO_DEVICE
71#define BMREQUEST_TO_DEVICE 0
72#endif // BMREQUEST_TO_DEVICE
73
74#ifndef BMREQUEST_TO_INTERFACE
75#define BMREQUEST_TO_INTERFACE 1
76#endif // BMREQUEST_TO_INTERFACE
77
78#ifndef BMREQUEST_TO_ENDPOINT
79#define BMREQUEST_TO_ENDPOINT 2
80#endif // BMREQUEST_TO_ENDPOINT
81
82#ifndef BMREQUEST_TO_OTHER
83#define BMREQUEST_TO_OTHER 3
84#endif // BMREQUEST_TO_OTHER
85
98
103
109
116
117typedef enum _WDF_USB_PIPE_TYPE {
124
134
140
146
147
148
150 struct {
151 union {
152 struct {
153 //
154 // Valid values are BMREQUEST_TO_DEVICE, BMREQUEST_TO_INTERFACE,
155 // BMREQUEST_TO_ENDPOINT, BMREQUEST_TO_OTHER
156 //
158
160
161 //
162 // Valid values are BMREQUEST_STANDARD, BMREQUEST_CLASS,
163 // BMREQUEST_VENDOR
164 //
166
167 //
168 // Valid values are BMREQUEST_HOST_TO_DEVICE,
169 // BMREQUEST_DEVICE_TO_HOST
170 //
174 } bm;
175
177
178 union {
179 struct {
185
186 union {
187 struct {
189 BYTE HiByte;
193
196
197 struct {
201
203VOID
211 )
212{
214
215 Packet->Packet.bm.Request.Dir = (BYTE) Direction;
216 Packet->Packet.bm.Request.Type = (BYTE) BmRequestStandard;
217 Packet->Packet.bm.Request.Recipient = (BYTE) Recipient;
218
219 Packet->Packet.bRequest = Request;
220 Packet->Packet.wValue.Value = Value;
221 Packet->Packet.wIndex.Value = Index;
222
223 // Packet->Packet.wLength will be set by the formatting function
224}
225
227VOID
235 )
236{
238
239 Packet->Packet.bm.Request.Dir = (BYTE) Direction;
240 Packet->Packet.bm.Request.Type = (BYTE) BmRequestClass;
241 Packet->Packet.bm.Request.Recipient = (BYTE) Recipient;
242
243 Packet->Packet.bRequest = Request;
244 Packet->Packet.wValue.Value = Value;
245 Packet->Packet.wIndex.Value = Index;
246
247 // Packet->Packet.wLength will be set by the formatting function
248}
249
251VOID
259 )
260{
262
263 Packet->Packet.bm.Request.Dir = (BYTE) Direction;
264 Packet->Packet.bm.Request.Type = (BYTE) BmRequestVendor;
265 Packet->Packet.bm.Request.Recipient = (BYTE) Recipient;
266
267 Packet->Packet.bRequest = Request;
268 Packet->Packet.wValue.Value = Value;
269 Packet->Packet.wIndex.Value = Index;
270
271 // Packet->Packet.wLength will be set by the formatting function
272}
273
275VOID
278 _In_ WDF_USB_BMREQUEST_RECIPIENT BmRequestRecipient,
279 _In_ USHORT FeatureSelector,
281 _In_ BOOLEAN SetFeature
282 )
283{
285
286 Packet->Packet.bm.Request.Dir = (BYTE) BmRequestHostToDevice;
287 Packet->Packet.bm.Request.Type = (BYTE) BmRequestStandard;
288 Packet->Packet.bm.Request.Recipient = (BYTE) BmRequestRecipient;
289
290 if (SetFeature) {
291 Packet->Packet.bRequest = USB_REQUEST_SET_FEATURE;
292 }
293 else {
294 Packet->Packet.bRequest = USB_REQUEST_CLEAR_FEATURE;
295 }
296
297 Packet->Packet.wValue.Value = FeatureSelector;
298 Packet->Packet.wIndex.Value = Index;
299
300 // Packet->Packet.wLength will be set by the formatting function
301}
302
304VOID
307 _In_ WDF_USB_BMREQUEST_RECIPIENT BmRequestRecipient,
309 )
310{
312
313 Packet->Packet.bm.Request.Dir = (BYTE) BmRequestDeviceToHost;
314 Packet->Packet.bm.Request.Type = (BYTE) BmRequestStandard;
315 Packet->Packet.bm.Request.Recipient = (BYTE) BmRequestRecipient;
316
317 Packet->Packet.bRequest = USB_REQUEST_GET_STATUS;
318 Packet->Packet.wIndex.Value = Index;
319 Packet->Packet.wValue.Value = 0;
320
321 // Packet->Packet.wLength will be set by the formatting function
322}
323
326
328
329 union {
330 struct {
331 WDFMEMORY Buffer;
334
335 //
336 // If STATUS_BUFFER_OVERFLOW is returned, this field will contain the
337 // number of bytes required to retrieve the entire string.
338 //
341
342 struct {
343 WDFMEMORY Buffer;
347
348 struct {
349 WDFMEMORY Buffer;
351
352 struct {
353 WDFMEMORY Buffer;
354 size_t Length;
355 size_t Offset;
357
358 struct {
359 WDFMEMORY Buffer;
360 size_t Length;
361 size_t Offset;
363
364 struct {
365 WDFMEMORY Buffer;
368
370
371typedef
372_Function_class_(EVT_WDF_USB_READER_COMPLETION_ROUTINE)
375VOID
377EVT_WDF_USB_READER_COMPLETION_ROUTINE(
378 _In_
379 WDFUSBPIPE Pipe,
380 _In_
381 WDFMEMORY Buffer,
382 _In_
384 _In_
386 );
387
388typedef EVT_WDF_USB_READER_COMPLETION_ROUTINE *PFN_WDF_USB_READER_COMPLETION_ROUTINE;
389
390typedef
391_Function_class_(EVT_WDF_USB_READERS_FAILED)
396EVT_WDF_USB_READERS_FAILED(
397 _In_
398 WDFUSBPIPE Pipe,
399 _In_
401 _In_
403 );
404
405typedef EVT_WDF_USB_READERS_FAILED *PFN_WDF_USB_READERS_FAILED;
406
408 //
409 // Size of the string in bytes
410 //
412
413 //
414 // Number of bytes to send ask for from the usb device.
415 //
417
418 //
419 // Number of bytes to allocate before the requested transfer length
420 //
422
423 //
424 // Number of bytes to allocate after the requested transfer length
425 //
427
428 //
429 // Number of reads to send to the device at once. If zero is specified, the
430 // default will be used.
431 //
433
434 //
435 // Optional attributes to apply to each WDFMEMORY allocated for each read
436 //
438
439 //
440 // Event callback invoked when a read is completed
441 //
443
444 //
445 // Context to be passed to EvtUsbTargetPipeReadComplete
446 //
448
449 //
450 // Event callback invoked when a reader fails. If TRUE is returned, the
451 // readers are restarted.
452 //
454
456
457
459VOID
462 _In_ PFN_WDF_USB_READER_COMPLETION_ROUTINE EvtUsbTargetPipeReadComplete,
463 _In_ WDFCONTEXT EvtUsbTargetPipeReadCompleteContext,
464 _In_ size_t TransferLength
465 )
466
467{
470
471 Config->EvtUsbTargetPipeReadComplete = EvtUsbTargetPipeReadComplete;
472 Config->EvtUsbTargetPipeReadCompleteContext = EvtUsbTargetPipeReadCompleteContext;
473 Config->TransferLength = TransferLength;
474}
475
477WDFIOTARGET
479 _In_ WDFUSBDEVICE UsbDevice
480 )
481{
482 return (WDFIOTARGET) UsbDevice;
483}
484
486 //
487 // Size of this structure in bytes
488 //
490
491 //
492 // USBD version information
493 //
495
496 //
497 // Usb controller port capabilities
498 //
500
501 //
502 // Bitfield of WDF_USB_DEVICE_TRAITS values
503 //
505
507
509VOID
512 )
513{
515 Udi->Size = sizeof(WDF_USB_DEVICE_INFORMATION);
516}
517
519 //
520 // Interface to select
521 //
522 WDFUSBINTERFACE UsbInterface;
523
524 //
525 // Setting to select on UsbInterface
526 //
528
530
532 //
533 // Size of the structure in bytes
534 //
536
537 //
538 // Type of select config, one of WdfUsbTargetDeviceSelectConfigType values
539 //
541
542
543 union {
544 struct {
545 //
546 // Configuration descriptor to use
547 //
549
550 //
551 // Array of interface descriptors pointers.
552 //
554
555 //
556 // Number of elements in the InterfaceDescrtiptors pointer array.
557 //
559
561
562 struct {
563 //
564 // Preallocated select config URB formatted by the caller.
565 // Will be used, as supplied without modification, as the select
566 // config request.
567 //
569
571
572 struct {
573 //
574 // Number of pipes configured on the single after. This value is
575 // returned to the caller after a succssful call.
576 //
578
579 //
580 // The interface which was configred. This value is returned to the
581 // caller after a successful call.
582 //
583 WDFUSBINTERFACE ConfiguredUsbInterface;
584
586
587 struct {
588 //
589 // Number of interface pairs in the Pairs array
590 //
592
593 //
594 // Array of interface + settings
595 //
597
598 //
599 // Number of interfaces which were configured after a successful call
600 //
602
604
606
608
609
611VOID
614 )
615{
617
620}
621
623VOID
626 _In_opt_ UCHAR NumberInterfaces,
628 )
629{
631
633
634 if (SettingPairs != NULL && NumberInterfaces != 0) {
636
637 Params->Types.MultiInterface.NumberInterfaces = NumberInterfaces;
638 Params->Types.MultiInterface.Pairs = SettingPairs;
639 }
640 else {
642 }
643}
644
646VOID
650 _In_ PUSB_INTERFACE_DESCRIPTOR* InterfaceDescriptors,
651 _In_ ULONG NumInterfaceDescriptors
652 )
653{
655
658 Params->Types.Descriptor.ConfigurationDescriptor = ConfigDescriptor;
659 Params->Types.Descriptor.InterfaceDescriptors = InterfaceDescriptors;
660 Params->Types.Descriptor.NumInterfaceDescriptors = NumInterfaceDescriptors;
661}
662
664VOID
667 _In_ PURB Urb
668 )
669{
671
674 Params->Types.Urb.Urb = Urb;
675}
676
677
678VOID
682 )
683{
685
688}
689
691 //
692 // Size of this data structure in bytes
693 //
695
696 //
697 // Type of select interface as indicated by one of the
698 // WdfUsbTargetDeviceSelectSettingType values.
699 //
701
702 union {
703
704 struct {
705 //
706 // Interface descriptor that will be used in the interface selection
707 //
709
711
712 struct {
713 //
714 // The setting index of the WDFUSBINTERFACE to use
715 //
717
719
720 struct {
721 //
722 // Preformatted select interface URB which will be used in the
723 // select interface request.
724 //
726
728
730
732
734VOID
738 )
739{
741
744 Params->Types.Descriptor.InterfaceDescriptor = Interface;
745}
746
748VOID
751 _In_ PURB Urb
752 )
753{
755
758 Params->Types.Urb.Urb = Urb;
759}
760
762VOID
766 )
767{
769
772 Params->Types.Interface.SettingIndex = SettingIndex;
773}
774
776WDFIOTARGET
778 _In_ WDFUSBPIPE Pipe
779 )
780{
781 return (WDFIOTARGET) Pipe;
782}
783
785 //
786 // Size of the structure in bytes
787 //
789
790 //
791 // Maximum packet size this device is capable of
792 //
794
795 //
796 // Raw endpoint address of the device as described by its descriptor
797 //
799
800 //
801 // Polling interval
802 //
804
805 //
806 // Which alternate setting this structure is relevant for
807 //
809
810 //
811 // The type of the pipe
813
814 //
815 // Maximum size of one transfer which should be sent to the host controller
816 //
818
820
822VOID
825 )
826{
828
829 Info->Size = sizeof(WDF_USB_PIPE_INFORMATION);
830}
831
835 _In_ UCHAR EndpointAddress
836 )
837{
838 //
839 // If the high bit is set, we have an IN pipe
840 //
841 return (EndpointAddress & USB_ENDPOINT_DIRECTION_MASK) ? TRUE : FALSE;
842}
843
847 _In_ UCHAR EndpointAddress
848 )
849{
850 //
851 // If the high bit is clear, we have an OUT pipe
852 //
853 return (EndpointAddress & USB_ENDPOINT_DIRECTION_MASK) == 0x00 ? TRUE : FALSE;
854}
855
857 //
858 // Size of this structure in bytes
859 //
861
862 //
863 // USBD Client Contraction of the Wdf Client
864 //
866
868
870VOID
874 )
875{
877
878 Config->Size = sizeof(WDF_USB_DEVICE_CREATE_CONFIG);
879 Config->USBDClientContractVersion = USBDClientContractVersion;
880}
881
882//
883// For WdfUsbTargetDeviceCreateIsochUrb's typedef
884//
885#ifdef __MSC_VER
886#pragma warning(disable:28285)
887#endif
888
889//
890// WDF Function: WdfUsbTargetDeviceCreate
891//
892typedef
895WDFAPI
897(STDCALL *PFN_WDFUSBTARGETDEVICECREATE)(
898 _In_
900 _In_
901 WDFDEVICE Device,
904 _Out_
905 WDFUSBDEVICE* UsbDevice
906 );
907
912WdfUsbTargetDeviceCreate(
913 _In_
914 WDFDEVICE Device,
917 _Out_
918 WDFUSBDEVICE* UsbDevice
919 )
920{
922}
923
924//
925// WDF Function: WdfUsbTargetDeviceCreateWithParameters
926//
927typedef
930WDFAPI
932(STDCALL *PFN_WDFUSBTARGETDEVICECREATEWITHPARAMETERS)(
933 _In_
935 _In_
936 WDFDEVICE Device,
937 _In_
941 _Out_
942 WDFUSBDEVICE* UsbDevice
943 );
944
949WdfUsbTargetDeviceCreateWithParameters(
950 _In_
951 WDFDEVICE Device,
952 _In_
956 _Out_
957 WDFUSBDEVICE* UsbDevice
958 )
959{
960 return ((PFN_WDFUSBTARGETDEVICECREATEWITHPARAMETERS) WdfFunctions[WdfUsbTargetDeviceCreateWithParametersTableIndex])(WdfDriverGlobals, Device, Config, Attributes, UsbDevice);
961}
962
963//
964// WDF Function: WdfUsbTargetDeviceRetrieveInformation
965//
966typedef
969WDFAPI
971(STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVEINFORMATION)(
972 _In_
974 _In_
975 WDFUSBDEVICE UsbDevice,
976 _Out_
978 );
979
984WdfUsbTargetDeviceRetrieveInformation(
985 _In_
986 WDFUSBDEVICE UsbDevice,
987 _Out_
989 )
990{
991 return ((PFN_WDFUSBTARGETDEVICERETRIEVEINFORMATION) WdfFunctions[WdfUsbTargetDeviceRetrieveInformationTableIndex])(WdfDriverGlobals, UsbDevice, Information);
992}
993
994//
995// WDF Function: WdfUsbTargetDeviceGetDeviceDescriptor
996//
997typedef
999WDFAPI
1000VOID
1001(STDCALL *PFN_WDFUSBTARGETDEVICEGETDEVICEDESCRIPTOR)(
1002 _In_
1004 _In_
1005 WDFUSBDEVICE UsbDevice,
1006 _Out_
1008 );
1009
1012VOID
1013WdfUsbTargetDeviceGetDeviceDescriptor(
1014 _In_
1015 WDFUSBDEVICE UsbDevice,
1016 _Out_
1018 )
1019{
1021}
1022
1023//
1024// WDF Function: WdfUsbTargetDeviceRetrieveConfigDescriptor
1025//
1026typedef
1029WDFAPI
1031(STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVECONFIGDESCRIPTOR)(
1032 _In_
1034 _In_
1035 WDFUSBDEVICE UsbDevice,
1038 _Inout_
1040 );
1041
1046WdfUsbTargetDeviceRetrieveConfigDescriptor(
1047 _In_
1048 WDFUSBDEVICE UsbDevice,
1051 _Inout_
1053 )
1054{
1056}
1057
1058//
1059// WDF Function: WdfUsbTargetDeviceQueryString
1060//
1061typedef
1064WDFAPI
1066(STDCALL *PFN_WDFUSBTARGETDEVICEQUERYSTRING)(
1067 _In_
1069 _In_
1070 WDFUSBDEVICE UsbDevice,
1071 _In_opt_
1072 WDFREQUEST Request,
1073 _In_opt_
1077 _Inout_
1079 _In_
1081 _In_opt_
1083 );
1084
1089WdfUsbTargetDeviceQueryString(
1090 _In_
1091 WDFUSBDEVICE UsbDevice,
1092 _In_opt_
1093 WDFREQUEST Request,
1094 _In_opt_
1098 _Inout_
1100 _In_
1102 _In_opt_
1104 )
1105{
1107}
1108
1109//
1110// WDF Function: WdfUsbTargetDeviceAllocAndQueryString
1111//
1112typedef
1115WDFAPI
1117(STDCALL *PFN_WDFUSBTARGETDEVICEALLOCANDQUERYSTRING)(
1118 _In_
1120 _In_
1121 WDFUSBDEVICE UsbDevice,
1122 _In_opt_
1124 _Out_
1125 WDFMEMORY* StringMemory,
1126 _Out_opt_
1128 _In_
1130 _In_opt_
1132 );
1133
1138WdfUsbTargetDeviceAllocAndQueryString(
1139 _In_
1140 WDFUSBDEVICE UsbDevice,
1141 _In_opt_
1143 _Out_
1144 WDFMEMORY* StringMemory,
1145 _Out_opt_
1147 _In_
1149 _In_opt_
1151 )
1152{
1154}
1155
1156//
1157// WDF Function: WdfUsbTargetDeviceFormatRequestForString
1158//
1159typedef
1162WDFAPI
1164(STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORSTRING)(
1165 _In_
1167 _In_
1168 WDFUSBDEVICE UsbDevice,
1169 _In_
1170 WDFREQUEST Request,
1171 _In_
1172 WDFMEMORY Memory,
1173 _In_opt_
1175 _In_
1177 _In_opt_
1179 );
1180
1185WdfUsbTargetDeviceFormatRequestForString(
1186 _In_
1187 WDFUSBDEVICE UsbDevice,
1188 _In_
1189 WDFREQUEST Request,
1190 _In_
1191 WDFMEMORY Memory,
1192 _In_opt_
1194 _In_
1196 _In_opt_
1198 )
1199{
1201}
1202
1203//
1204// WDF Function: WdfUsbTargetDeviceGetNumInterfaces
1205//
1206typedef
1208WDFAPI
1209UCHAR
1210(STDCALL *PFN_WDFUSBTARGETDEVICEGETNUMINTERFACES)(
1211 _In_
1213 _In_
1214 WDFUSBDEVICE UsbDevice
1215 );
1216
1219UCHAR
1220WdfUsbTargetDeviceGetNumInterfaces(
1221 _In_
1222 WDFUSBDEVICE UsbDevice
1223 )
1224{
1225 return ((PFN_WDFUSBTARGETDEVICEGETNUMINTERFACES) WdfFunctions[WdfUsbTargetDeviceGetNumInterfacesTableIndex])(WdfDriverGlobals, UsbDevice);
1226}
1227
1228//
1229// WDF Function: WdfUsbTargetDeviceSelectConfig
1230//
1231typedef
1234WDFAPI
1236(STDCALL *PFN_WDFUSBTARGETDEVICESELECTCONFIG)(
1237 _In_
1239 _In_
1240 WDFUSBDEVICE UsbDevice,
1241 _In_opt_
1243 _Inout_
1245 );
1246
1251WdfUsbTargetDeviceSelectConfig(
1252 _In_
1253 WDFUSBDEVICE UsbDevice,
1254 _In_opt_
1256 _Inout_
1258 )
1259{
1261}
1262
1263//
1264// WDF Function: WdfUsbTargetDeviceWdmGetConfigurationHandle
1265//
1266typedef
1268WDFAPI
1270(STDCALL *PFN_WDFUSBTARGETDEVICEWDMGETCONFIGURATIONHANDLE)(
1271 _In_
1273 _In_
1274 WDFUSBDEVICE UsbDevice
1275 );
1276
1280WdfUsbTargetDeviceWdmGetConfigurationHandle(
1281 _In_
1282 WDFUSBDEVICE UsbDevice
1283 )
1284{
1285 return ((PFN_WDFUSBTARGETDEVICEWDMGETCONFIGURATIONHANDLE) WdfFunctions[WdfUsbTargetDeviceWdmGetConfigurationHandleTableIndex])(WdfDriverGlobals, UsbDevice);
1286}
1287
1288//
1289// WDF Function: WdfUsbTargetDeviceRetrieveCurrentFrameNumber
1290//
1291typedef
1294WDFAPI
1296(STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVECURRENTFRAMENUMBER)(
1297 _In_
1299 _In_
1300 WDFUSBDEVICE UsbDevice,
1301 _Out_
1303 );
1304
1309WdfUsbTargetDeviceRetrieveCurrentFrameNumber(
1310 _In_
1311 WDFUSBDEVICE UsbDevice,
1312 _Out_
1314 )
1315{
1316 return ((PFN_WDFUSBTARGETDEVICERETRIEVECURRENTFRAMENUMBER) WdfFunctions[WdfUsbTargetDeviceRetrieveCurrentFrameNumberTableIndex])(WdfDriverGlobals, UsbDevice, CurrentFrameNumber);
1317}
1318
1319//
1320// WDF Function: WdfUsbTargetDeviceSendControlTransferSynchronously
1321//
1322typedef
1325WDFAPI
1327(STDCALL *PFN_WDFUSBTARGETDEVICESENDCONTROLTRANSFERSYNCHRONOUSLY)(
1328 _In_
1330 _In_
1331 WDFUSBDEVICE UsbDevice,
1332 _In_opt_
1333 WDFREQUEST Request,
1334 _In_opt_
1336 _In_
1338 _In_opt_
1340 _Out_opt_
1342 );
1343
1348WdfUsbTargetDeviceSendControlTransferSynchronously(
1349 _In_
1350 WDFUSBDEVICE UsbDevice,
1351 _In_opt_
1352 WDFREQUEST Request,
1353 _In_opt_
1355 _In_
1357 _In_opt_
1359 _Out_opt_
1361 )
1362{
1364}
1365
1366//
1367// WDF Function: WdfUsbTargetDeviceFormatRequestForControlTransfer
1368//
1369typedef
1372WDFAPI
1374(STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCONTROLTRANSFER)(
1375 _In_
1377 _In_
1378 WDFUSBDEVICE UsbDevice,
1379 _In_
1380 WDFREQUEST Request,
1381 _In_
1383 _In_opt_
1385 _In_opt_
1387 );
1388
1393WdfUsbTargetDeviceFormatRequestForControlTransfer(
1394 _In_
1395 WDFUSBDEVICE UsbDevice,
1396 _In_
1397 WDFREQUEST Request,
1398 _In_
1400 _In_opt_
1401 WDFMEMORY TransferMemory,
1402 _In_opt_
1404 )
1405{
1407}
1408
1409//
1410// WDF Function: WdfUsbTargetDeviceIsConnectedSynchronous
1411//
1412typedef
1415WDFAPI
1417(STDCALL *PFN_WDFUSBTARGETDEVICEISCONNECTEDSYNCHRONOUS)(
1418 _In_
1420 _In_
1421 WDFUSBDEVICE UsbDevice
1422 );
1423
1428WdfUsbTargetDeviceIsConnectedSynchronous(
1429 _In_
1430 WDFUSBDEVICE UsbDevice
1431 )
1432{
1433 return ((PFN_WDFUSBTARGETDEVICEISCONNECTEDSYNCHRONOUS) WdfFunctions[WdfUsbTargetDeviceIsConnectedSynchronousTableIndex])(WdfDriverGlobals, UsbDevice);
1434}
1435
1436//
1437// WDF Function: WdfUsbTargetDeviceResetPortSynchronously
1438//
1439typedef
1442WDFAPI
1444(STDCALL *PFN_WDFUSBTARGETDEVICERESETPORTSYNCHRONOUSLY)(
1445 _In_
1447 _In_
1448 WDFUSBDEVICE UsbDevice
1449 );
1450
1455WdfUsbTargetDeviceResetPortSynchronously(
1456 _In_
1457 WDFUSBDEVICE UsbDevice
1458 )
1459{
1460 return ((PFN_WDFUSBTARGETDEVICERESETPORTSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetDeviceResetPortSynchronouslyTableIndex])(WdfDriverGlobals, UsbDevice);
1461}
1462
1463//
1464// WDF Function: WdfUsbTargetDeviceCyclePortSynchronously
1465//
1466typedef
1469WDFAPI
1471(STDCALL *PFN_WDFUSBTARGETDEVICECYCLEPORTSYNCHRONOUSLY)(
1472 _In_
1474 _In_
1475 WDFUSBDEVICE UsbDevice
1476 );
1477
1482WdfUsbTargetDeviceCyclePortSynchronously(
1483 _In_
1484 WDFUSBDEVICE UsbDevice
1485 )
1486{
1487 return ((PFN_WDFUSBTARGETDEVICECYCLEPORTSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetDeviceCyclePortSynchronouslyTableIndex])(WdfDriverGlobals, UsbDevice);
1488}
1489
1490//
1491// WDF Function: WdfUsbTargetDeviceFormatRequestForCyclePort
1492//
1493typedef
1496WDFAPI
1498(STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCYCLEPORT)(
1499 _In_
1501 _In_
1502 WDFUSBDEVICE UsbDevice,
1503 _In_
1504 WDFREQUEST Request
1505 );
1506
1511WdfUsbTargetDeviceFormatRequestForCyclePort(
1512 _In_
1513 WDFUSBDEVICE UsbDevice,
1514 _In_
1515 WDFREQUEST Request
1516 )
1517{
1518 return ((PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCYCLEPORT) WdfFunctions[WdfUsbTargetDeviceFormatRequestForCyclePortTableIndex])(WdfDriverGlobals, UsbDevice, Request);
1519}
1520
1521//
1522// WDF Function: WdfUsbTargetDeviceSendUrbSynchronously
1523//
1524typedef
1527WDFAPI
1529(STDCALL *PFN_WDFUSBTARGETDEVICESENDURBSYNCHRONOUSLY)(
1530 _In_
1532 _In_
1533 WDFUSBDEVICE UsbDevice,
1534 _In_opt_
1535 WDFREQUEST Request,
1536 _In_opt_
1538 _In_reads_(_Inexpressible_("union bug in SAL"))
1539 PURB Urb
1540 );
1541
1546WdfUsbTargetDeviceSendUrbSynchronously(
1547 _In_
1548 WDFUSBDEVICE UsbDevice,
1549 _In_opt_
1550 WDFREQUEST Request,
1551 _In_opt_
1553 _In_reads_(_Inexpressible_("union bug in SAL"))
1554 PURB Urb
1555 )
1556{
1557 return ((PFN_WDFUSBTARGETDEVICESENDURBSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetDeviceSendUrbSynchronouslyTableIndex])(WdfDriverGlobals, UsbDevice, Request, RequestOptions, Urb);
1558}
1559
1560//
1561// WDF Function: WdfUsbTargetDeviceFormatRequestForUrb
1562//
1563typedef
1566WDFAPI
1568(STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORURB)(
1569 _In_
1571 _In_
1572 WDFUSBDEVICE UsbDevice,
1573 _In_
1574 WDFREQUEST Request,
1575 _In_
1576 WDFMEMORY UrbMemory,
1577 _In_opt_
1579 );
1580
1585WdfUsbTargetDeviceFormatRequestForUrb(
1586 _In_
1587 WDFUSBDEVICE UsbDevice,
1588 _In_
1589 WDFREQUEST Request,
1590 _In_
1591 WDFMEMORY UrbMemory,
1592 _In_opt_
1594 )
1595{
1597}
1598
1599//
1600// WDF Function: WdfUsbTargetDeviceQueryUsbCapability
1601//
1602typedef
1605WDFAPI
1607(STDCALL *PFN_WDFUSBTARGETDEVICEQUERYUSBCAPABILITY)(
1608 _In_
1610 _In_
1611 WDFUSBDEVICE UsbDevice,
1612 _In_
1614 _In_
1619 PVOID CapabilityBuffer,
1620 _Out_opt_
1623 );
1624
1629WdfUsbTargetDeviceQueryUsbCapability(
1630 _In_
1631 WDFUSBDEVICE UsbDevice,
1632 _In_
1634 _In_
1639 PVOID CapabilityBuffer,
1640 _Out_opt_
1643 )
1644{
1645 return ((PFN_WDFUSBTARGETDEVICEQUERYUSBCAPABILITY) WdfFunctions[WdfUsbTargetDeviceQueryUsbCapabilityTableIndex])(WdfDriverGlobals, UsbDevice, CapabilityType, CapabilityBufferLength, CapabilityBuffer, ResultLength);
1646}
1647
1648//
1649// WDF Function: WdfUsbTargetDeviceCreateUrb
1650//
1651typedef
1654WDFAPI
1656(STDCALL *PFN_WDFUSBTARGETDEVICECREATEURB)(
1657 _In_
1659 _In_
1660 WDFUSBDEVICE UsbDevice,
1661 _In_opt_
1663 _Out_
1664 WDFMEMORY* UrbMemory,
1666 PURB* Urb
1667 );
1668
1673WdfUsbTargetDeviceCreateUrb(
1674 _In_
1675 WDFUSBDEVICE UsbDevice,
1676 _In_opt_
1678 _Out_
1679 WDFMEMORY* UrbMemory,
1681 PURB* Urb
1682 )
1683{
1684 return ((PFN_WDFUSBTARGETDEVICECREATEURB) WdfFunctions[WdfUsbTargetDeviceCreateUrbTableIndex])(WdfDriverGlobals, UsbDevice, Attributes, UrbMemory, Urb);
1685}
1686
1687//
1688// WDF Function: WdfUsbTargetDeviceCreateIsochUrb
1689//
1690typedef
1693WDFAPI
1695(STDCALL *PFN_WDFUSBTARGETDEVICECREATEISOCHURB)(
1696 _In_
1698 _In_
1699 WDFUSBDEVICE UsbDevice,
1700 _In_opt_
1702 _In_
1704 _Out_
1705 WDFMEMORY* UrbMemory,
1707 PURB* Urb
1708 );
1709
1714WdfUsbTargetDeviceCreateIsochUrb(
1715 _In_
1716 WDFUSBDEVICE UsbDevice,
1717 _In_opt_
1719 _In_
1721 _Out_
1722 WDFMEMORY* UrbMemory,
1724 PURB* Urb
1725 )
1726{
1728}
1729
1730//
1731// WDF Function: WdfUsbTargetPipeGetInformation
1732//
1733typedef
1735WDFAPI
1736VOID
1737(STDCALL *PFN_WDFUSBTARGETPIPEGETINFORMATION)(
1738 _In_
1740 _In_
1741 WDFUSBPIPE Pipe,
1742 _Out_
1744 );
1745
1748VOID
1749WdfUsbTargetPipeGetInformation(
1750 _In_
1751 WDFUSBPIPE Pipe,
1752 _Out_
1754 )
1755{
1757}
1758
1759//
1760// WDF Function: WdfUsbTargetPipeIsInEndpoint
1761//
1762typedef
1764WDFAPI
1765BOOLEAN
1766(STDCALL *PFN_WDFUSBTARGETPIPEISINENDPOINT)(
1767 _In_
1769 _In_
1770 WDFUSBPIPE Pipe
1771 );
1772
1775BOOLEAN
1776WdfUsbTargetPipeIsInEndpoint(
1777 _In_
1778 WDFUSBPIPE Pipe
1779 )
1780{
1781 return ((PFN_WDFUSBTARGETPIPEISINENDPOINT) WdfFunctions[WdfUsbTargetPipeIsInEndpointTableIndex])(WdfDriverGlobals, Pipe);
1782}
1783
1784//
1785// WDF Function: WdfUsbTargetPipeIsOutEndpoint
1786//
1787typedef
1789WDFAPI
1790BOOLEAN
1791(STDCALL *PFN_WDFUSBTARGETPIPEISOUTENDPOINT)(
1792 _In_
1794 _In_
1795 WDFUSBPIPE Pipe
1796 );
1797
1800BOOLEAN
1801WdfUsbTargetPipeIsOutEndpoint(
1802 _In_
1803 WDFUSBPIPE Pipe
1804 )
1805{
1806 return ((PFN_WDFUSBTARGETPIPEISOUTENDPOINT) WdfFunctions[WdfUsbTargetPipeIsOutEndpointTableIndex])(WdfDriverGlobals, Pipe);
1807}
1808
1809//
1810// WDF Function: WdfUsbTargetPipeGetType
1811//
1812typedef
1814WDFAPI
1816(STDCALL *PFN_WDFUSBTARGETPIPEGETTYPE)(
1817 _In_
1819 _In_
1820 WDFUSBPIPE Pipe
1821 );
1822
1826WdfUsbTargetPipeGetType(
1827 _In_
1828 WDFUSBPIPE Pipe
1829 )
1830{
1831 return ((PFN_WDFUSBTARGETPIPEGETTYPE) WdfFunctions[WdfUsbTargetPipeGetTypeTableIndex])(WdfDriverGlobals, Pipe);
1832}
1833
1834//
1835// WDF Function: WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
1836//
1837typedef
1839WDFAPI
1840VOID
1841(STDCALL *PFN_WDFUSBTARGETPIPESETNOMAXIMUMPACKETSIZECHECK)(
1842 _In_
1844 _In_
1845 WDFUSBPIPE Pipe
1846 );
1847
1850VOID
1851WdfUsbTargetPipeSetNoMaximumPacketSizeCheck(
1852 _In_
1853 WDFUSBPIPE Pipe
1854 )
1855{
1856 ((PFN_WDFUSBTARGETPIPESETNOMAXIMUMPACKETSIZECHECK) WdfFunctions[WdfUsbTargetPipeSetNoMaximumPacketSizeCheckTableIndex])(WdfDriverGlobals, Pipe);
1857}
1858
1859//
1860// WDF Function: WdfUsbTargetPipeWriteSynchronously
1861//
1862typedef
1865WDFAPI
1867(STDCALL *PFN_WDFUSBTARGETPIPEWRITESYNCHRONOUSLY)(
1868 _In_
1870 _In_
1871 WDFUSBPIPE Pipe,
1872 _In_opt_
1873 WDFREQUEST Request,
1874 _In_opt_
1876 _In_opt_
1878 _Out_opt_
1880 );
1881
1886WdfUsbTargetPipeWriteSynchronously(
1887 _In_
1888 WDFUSBPIPE Pipe,
1889 _In_opt_
1890 WDFREQUEST Request,
1891 _In_opt_
1893 _In_opt_
1895 _Out_opt_
1897 )
1898{
1900}
1901
1902//
1903// WDF Function: WdfUsbTargetPipeFormatRequestForWrite
1904//
1905typedef
1908WDFAPI
1910(STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORWRITE)(
1911 _In_
1913 _In_
1914 WDFUSBPIPE Pipe,
1915 _In_
1916 WDFREQUEST Request,
1917 _In_opt_
1918 WDFMEMORY WriteMemory,
1919 _In_opt_
1921 );
1922
1927WdfUsbTargetPipeFormatRequestForWrite(
1928 _In_
1929 WDFUSBPIPE Pipe,
1930 _In_
1931 WDFREQUEST Request,
1932 _In_opt_
1933 WDFMEMORY WriteMemory,
1934 _In_opt_
1936 )
1937{
1938 return ((PFN_WDFUSBTARGETPIPEFORMATREQUESTFORWRITE) WdfFunctions[WdfUsbTargetPipeFormatRequestForWriteTableIndex])(WdfDriverGlobals, Pipe, Request, WriteMemory, WriteOffset);
1939}
1940
1941//
1942// WDF Function: WdfUsbTargetPipeReadSynchronously
1943//
1944typedef
1947WDFAPI
1949(STDCALL *PFN_WDFUSBTARGETPIPEREADSYNCHRONOUSLY)(
1950 _In_
1952 _In_
1953 WDFUSBPIPE Pipe,
1954 _In_opt_
1955 WDFREQUEST Request,
1956 _In_opt_
1958 _In_opt_
1960 _Out_opt_
1962 );
1963
1968WdfUsbTargetPipeReadSynchronously(
1969 _In_
1970 WDFUSBPIPE Pipe,
1971 _In_opt_
1972 WDFREQUEST Request,
1973 _In_opt_
1975 _In_opt_
1977 _Out_opt_
1979 )
1980{
1982}
1983
1984//
1985// WDF Function: WdfUsbTargetPipeFormatRequestForRead
1986//
1987typedef
1990WDFAPI
1992(STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORREAD)(
1993 _In_
1995 _In_
1996 WDFUSBPIPE Pipe,
1997 _In_
1998 WDFREQUEST Request,
1999 _In_opt_
2000 WDFMEMORY ReadMemory,
2001 _In_opt_
2003 );
2004
2009WdfUsbTargetPipeFormatRequestForRead(
2010 _In_
2011 WDFUSBPIPE Pipe,
2012 _In_
2013 WDFREQUEST Request,
2014 _In_opt_
2015 WDFMEMORY ReadMemory,
2016 _In_opt_
2018 )
2019{
2020 return ((PFN_WDFUSBTARGETPIPEFORMATREQUESTFORREAD) WdfFunctions[WdfUsbTargetPipeFormatRequestForReadTableIndex])(WdfDriverGlobals, Pipe, Request, ReadMemory, ReadOffset);
2021}
2022
2023//
2024// WDF Function: WdfUsbTargetPipeConfigContinuousReader
2025//
2026typedef
2029WDFAPI
2031(STDCALL *PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER)(
2032 _In_
2034 _In_
2035 WDFUSBPIPE Pipe,
2036 _In_
2038 );
2039
2044WdfUsbTargetPipeConfigContinuousReader(
2045 _In_
2046 WDFUSBPIPE Pipe,
2047 _In_
2049 )
2050{
2051 return ((PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER) WdfFunctions[WdfUsbTargetPipeConfigContinuousReaderTableIndex])(WdfDriverGlobals, Pipe, Config);
2052}
2053
2054//
2055// WDF Function: WdfUsbTargetPipeAbortSynchronously
2056//
2057typedef
2060WDFAPI
2062(STDCALL *PFN_WDFUSBTARGETPIPEABORTSYNCHRONOUSLY)(
2063 _In_
2065 _In_
2066 WDFUSBPIPE Pipe,
2067 _In_opt_
2068 WDFREQUEST Request,
2069 _In_opt_
2071 );
2072
2077WdfUsbTargetPipeAbortSynchronously(
2078 _In_
2079 WDFUSBPIPE Pipe,
2080 _In_opt_
2081 WDFREQUEST Request,
2082 _In_opt_
2084 )
2085{
2086 return ((PFN_WDFUSBTARGETPIPEABORTSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetPipeAbortSynchronouslyTableIndex])(WdfDriverGlobals, Pipe, Request, RequestOptions);
2087}
2088
2089//
2090// WDF Function: WdfUsbTargetPipeFormatRequestForAbort
2091//
2092typedef
2095WDFAPI
2097(STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORABORT)(
2098 _In_
2100 _In_
2101 WDFUSBPIPE Pipe,
2102 _In_
2103 WDFREQUEST Request
2104 );
2105
2110WdfUsbTargetPipeFormatRequestForAbort(
2111 _In_
2112 WDFUSBPIPE Pipe,
2113 _In_
2114 WDFREQUEST Request
2115 )
2116{
2117 return ((PFN_WDFUSBTARGETPIPEFORMATREQUESTFORABORT) WdfFunctions[WdfUsbTargetPipeFormatRequestForAbortTableIndex])(WdfDriverGlobals, Pipe, Request);
2118}
2119
2120//
2121// WDF Function: WdfUsbTargetPipeResetSynchronously
2122//
2123typedef
2126WDFAPI
2128(STDCALL *PFN_WDFUSBTARGETPIPERESETSYNCHRONOUSLY)(
2129 _In_
2131 _In_
2132 WDFUSBPIPE Pipe,
2133 _In_opt_
2134 WDFREQUEST Request,
2135 _In_opt_
2137 );
2138
2143WdfUsbTargetPipeResetSynchronously(
2144 _In_
2145 WDFUSBPIPE Pipe,
2146 _In_opt_
2147 WDFREQUEST Request,
2148 _In_opt_
2150 )
2151{
2152 return ((PFN_WDFUSBTARGETPIPERESETSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetPipeResetSynchronouslyTableIndex])(WdfDriverGlobals, Pipe, Request, RequestOptions);
2153}
2154
2155//
2156// WDF Function: WdfUsbTargetPipeFormatRequestForReset
2157//
2158typedef
2161WDFAPI
2163(STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORRESET)(
2164 _In_
2166 _In_
2167 WDFUSBPIPE Pipe,
2168 _In_
2169 WDFREQUEST Request
2170 );
2171
2176WdfUsbTargetPipeFormatRequestForReset(
2177 _In_
2178 WDFUSBPIPE Pipe,
2179 _In_
2180 WDFREQUEST Request
2181 )
2182{
2183 return ((PFN_WDFUSBTARGETPIPEFORMATREQUESTFORRESET) WdfFunctions[WdfUsbTargetPipeFormatRequestForResetTableIndex])(WdfDriverGlobals, Pipe, Request);
2184}
2185
2186//
2187// WDF Function: WdfUsbTargetPipeSendUrbSynchronously
2188//
2189typedef
2192WDFAPI
2194(STDCALL *PFN_WDFUSBTARGETPIPESENDURBSYNCHRONOUSLY)(
2195 _In_
2197 _In_
2198 WDFUSBPIPE Pipe,
2199 _In_opt_
2200 WDFREQUEST Request,
2201 _In_opt_
2203 _In_reads_(_Inexpressible_("union bug in SAL"))
2204 PURB Urb
2205 );
2206
2211WdfUsbTargetPipeSendUrbSynchronously(
2212 _In_
2213 WDFUSBPIPE Pipe,
2214 _In_opt_
2215 WDFREQUEST Request,
2216 _In_opt_
2218 _In_reads_(_Inexpressible_("union bug in SAL"))
2219 PURB Urb
2220 )
2221{
2222 return ((PFN_WDFUSBTARGETPIPESENDURBSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetPipeSendUrbSynchronouslyTableIndex])(WdfDriverGlobals, Pipe, Request, RequestOptions, Urb);
2223}
2224
2225//
2226// WDF Function: WdfUsbTargetPipeFormatRequestForUrb
2227//
2228typedef
2231WDFAPI
2233(STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORURB)(
2234 _In_
2236 _In_
2237 WDFUSBPIPE PIPE,
2238 _In_
2239 WDFREQUEST Request,
2240 _In_
2241 WDFMEMORY UrbMemory,
2242 _In_opt_
2244 );
2245
2250WdfUsbTargetPipeFormatRequestForUrb(
2251 _In_
2252 WDFUSBPIPE PIPE,
2253 _In_
2254 WDFREQUEST Request,
2255 _In_
2256 WDFMEMORY UrbMemory,
2257 _In_opt_
2259 )
2260{
2262}
2263
2264//
2265// WDF Function: WdfUsbInterfaceGetInterfaceNumber
2266//
2267typedef
2269WDFAPI
2270BYTE
2271(STDCALL *PFN_WDFUSBINTERFACEGETINTERFACENUMBER)(
2272 _In_
2274 _In_
2275 WDFUSBINTERFACE UsbInterface
2276 );
2277
2280BYTE
2281WdfUsbInterfaceGetInterfaceNumber(
2282 _In_
2283 WDFUSBINTERFACE UsbInterface
2284 )
2285{
2286 return ((PFN_WDFUSBINTERFACEGETINTERFACENUMBER) WdfFunctions[WdfUsbInterfaceGetInterfaceNumberTableIndex])(WdfDriverGlobals, UsbInterface);
2287}
2288
2289//
2290// WDF Function: WdfUsbInterfaceGetNumEndpoints
2291//
2292typedef
2294WDFAPI
2295BYTE
2296(STDCALL *PFN_WDFUSBINTERFACEGETNUMENDPOINTS)(
2297 _In_
2299 _In_
2300 WDFUSBINTERFACE UsbInterface,
2301 _In_
2303 );
2304
2307BYTE
2308WdfUsbInterfaceGetNumEndpoints(
2309 _In_
2310 WDFUSBINTERFACE UsbInterface,
2311 _In_
2313 )
2314{
2316}
2317
2318//
2319// WDF Function: WdfUsbInterfaceGetDescriptor
2320//
2321typedef
2323WDFAPI
2324VOID
2325(STDCALL *PFN_WDFUSBINTERFACEGETDESCRIPTOR)(
2326 _In_
2328 _In_
2329 WDFUSBINTERFACE UsbInterface,
2330 _In_
2332 _Out_
2334 );
2335
2338VOID
2339WdfUsbInterfaceGetDescriptor(
2340 _In_
2341 WDFUSBINTERFACE UsbInterface,
2342 _In_
2344 _Out_
2346 )
2347{
2349}
2350
2351//
2352// WDF Function: WdfUsbInterfaceGetNumSettings
2353//
2354typedef
2356WDFAPI
2357BYTE
2358(STDCALL *PFN_WDFUSBINTERFACEGETNUMSETTINGS)(
2359 _In_
2361 _In_
2362 WDFUSBINTERFACE UsbInterface
2363 );
2364
2367BYTE
2368WdfUsbInterfaceGetNumSettings(
2369 _In_
2370 WDFUSBINTERFACE UsbInterface
2371 )
2372{
2373 return ((PFN_WDFUSBINTERFACEGETNUMSETTINGS) WdfFunctions[WdfUsbInterfaceGetNumSettingsTableIndex])(WdfDriverGlobals, UsbInterface);
2374}
2375
2376//
2377// WDF Function: WdfUsbInterfaceSelectSetting
2378//
2379typedef
2382WDFAPI
2384(STDCALL *PFN_WDFUSBINTERFACESELECTSETTING)(
2385 _In_
2387 _In_
2388 WDFUSBINTERFACE UsbInterface,
2389 _In_opt_
2391 _In_
2393 );
2394
2399WdfUsbInterfaceSelectSetting(
2400 _In_
2401 WDFUSBINTERFACE UsbInterface,
2402 _In_opt_
2404 _In_
2406 )
2407{
2409}
2410
2411//
2412// WDF Function: WdfUsbInterfaceGetEndpointInformation
2413//
2414typedef
2416WDFAPI
2417VOID
2418(STDCALL *PFN_WDFUSBINTERFACEGETENDPOINTINFORMATION)(
2419 _In_
2421 _In_
2422 WDFUSBINTERFACE UsbInterface,
2423 _In_
2425 _In_
2427 _Out_
2429 );
2430
2433VOID
2434WdfUsbInterfaceGetEndpointInformation(
2435 _In_
2436 WDFUSBINTERFACE UsbInterface,
2437 _In_
2439 _In_
2441 _Out_
2443 )
2444{
2446}
2447
2448//
2449// WDF Function: WdfUsbTargetDeviceGetInterface
2450//
2451typedef
2453WDFAPI
2454WDFUSBINTERFACE
2455(STDCALL *PFN_WDFUSBTARGETDEVICEGETINTERFACE)(
2456 _In_
2458 _In_
2459 WDFUSBDEVICE UsbDevice,
2460 _In_
2462 );
2463
2466WDFUSBINTERFACE
2467WdfUsbTargetDeviceGetInterface(
2468 _In_
2469 WDFUSBDEVICE UsbDevice,
2470 _In_
2472 )
2473{
2474 return ((PFN_WDFUSBTARGETDEVICEGETINTERFACE) WdfFunctions[WdfUsbTargetDeviceGetInterfaceTableIndex])(WdfDriverGlobals, UsbDevice, InterfaceIndex);
2475}
2476
2477//
2478// WDF Function: WdfUsbInterfaceGetConfiguredSettingIndex
2479//
2480typedef
2482WDFAPI
2483BYTE
2484(STDCALL *PFN_WDFUSBINTERFACEGETCONFIGUREDSETTINGINDEX)(
2485 _In_
2487 _In_
2488 WDFUSBINTERFACE Interface
2489 );
2490
2493BYTE
2494WdfUsbInterfaceGetConfiguredSettingIndex(
2495 _In_
2496 WDFUSBINTERFACE Interface
2497 )
2498{
2499 return ((PFN_WDFUSBINTERFACEGETCONFIGUREDSETTINGINDEX) WdfFunctions[WdfUsbInterfaceGetConfiguredSettingIndexTableIndex])(WdfDriverGlobals, Interface);
2500}
2501
2502//
2503// WDF Function: WdfUsbInterfaceGetNumConfiguredPipes
2504//
2505typedef
2507WDFAPI
2508BYTE
2509(STDCALL *PFN_WDFUSBINTERFACEGETNUMCONFIGUREDPIPES)(
2510 _In_
2512 _In_
2513 WDFUSBINTERFACE UsbInterface
2514 );
2515
2518BYTE
2519WdfUsbInterfaceGetNumConfiguredPipes(
2520 _In_
2521 WDFUSBINTERFACE UsbInterface
2522 )
2523{
2524 return ((PFN_WDFUSBINTERFACEGETNUMCONFIGUREDPIPES) WdfFunctions[WdfUsbInterfaceGetNumConfiguredPipesTableIndex])(WdfDriverGlobals, UsbInterface);
2525}
2526
2527//
2528// WDF Function: WdfUsbInterfaceGetConfiguredPipe
2529//
2530typedef
2532WDFAPI
2533WDFUSBPIPE
2534(STDCALL *PFN_WDFUSBINTERFACEGETCONFIGUREDPIPE)(
2535 _In_
2537 _In_
2538 WDFUSBINTERFACE UsbInterface,
2539 _In_
2541 _Out_opt_
2543 );
2544
2547WDFUSBPIPE
2548WdfUsbInterfaceGetConfiguredPipe(
2549 _In_
2550 WDFUSBINTERFACE UsbInterface,
2551 _In_
2553 _Out_opt_
2555 )
2556{
2558}
2559
2560//
2561// WDF Function: WdfUsbTargetPipeWdmGetPipeHandle
2562//
2563typedef
2565WDFAPI
2567(STDCALL *PFN_WDFUSBTARGETPIPEWDMGETPIPEHANDLE)(
2568 _In_
2570 _In_
2571 WDFUSBPIPE UsbPipe
2572 );
2573
2577WdfUsbTargetPipeWdmGetPipeHandle(
2578 _In_
2579 WDFUSBPIPE UsbPipe
2580 )
2581{
2582 return ((PFN_WDFUSBTARGETPIPEWDMGETPIPEHANDLE) WdfFunctions[WdfUsbTargetPipeWdmGetPipeHandleTableIndex])(WdfDriverGlobals, UsbPipe);
2583}
2584
2585
2586
2587#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
2588
2589
2591
2592#endif // _WDFUSB_H_
2593
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NTSTATUS
Definition: precomp.h:20
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
DriverGlobals
_Must_inspect_result_ __in FxDeviceBase __in ULONG USBDClientContractVersion
Status
Definition: gdiplustypes.h:25
GLuint in
Definition: glext.h:9616
#define _Function_class_(x)
Definition: ms_sal.h:2946
#define _Out_opt_
Definition: ms_sal.h:346
#define _Inout_
Definition: ms_sal.h:378
#define _Deref_out_range_(lb, ub)
Definition: ms_sal.h:575
#define _Out_writes_opt_(size)
Definition: ms_sal.h:349
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
Definition: ndis.h:1549
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
#define CONST
Definition: pedump.c:81
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
Definition: usb.h:529
WDFCONTEXT EvtUsbTargetPipeReadCompleteContext
Definition: wdfusb.h:447
PFN_WDF_USB_READER_COMPLETION_ROUTINE EvtUsbTargetPipeReadComplete
Definition: wdfusb.h:442
PFN_WDF_USB_READERS_FAILED EvtUsbTargetPipeReadersFailed
Definition: wdfusb.h:453
PWDF_OBJECT_ATTRIBUTES BufferAttributes
Definition: wdfusb.h:437
USBD_VERSION_INFORMATION UsbdVersionInformation
Definition: wdfusb.h:494
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
Definition: wdfusb.h:548
WdfUsbTargetDeviceSelectConfigType Type
Definition: wdfusb.h:540
WDFUSBINTERFACE ConfiguredUsbInterface
Definition: wdfusb.h:583
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3708::@3712 MultiInterface
PUSB_INTERFACE_DESCRIPTOR * InterfaceDescriptors
Definition: wdfusb.h:553
union _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3708 Types
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3708::@3709 Descriptor
PWDF_USB_INTERFACE_SETTING_PAIR Pairs
Definition: wdfusb.h:596
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3708::@3711 SingleInterface
WdfUsbTargetDeviceSelectSettingType Type
Definition: wdfusb.h:700
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3713::@3715 Interface
PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
Definition: wdfusb.h:708
union _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3713 Types
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3713::@3714 Descriptor
WDFUSBINTERFACE UsbInterface
Definition: wdfusb.h:522
WDF_USB_PIPE_TYPE PipeType
Definition: wdfusb.h:812
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3701::@3705 PipeWrite
union _WDF_USB_REQUEST_COMPLETION_PARAMS::@3701 Parameters
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3701::@3706 PipeRead
WDF_USB_CONTROL_SETUP_PACKET SetupPacket
Definition: wdfusb.h:344
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3701::@3702 DeviceString
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3701::@3704 DeviceUrb
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3701::@3707 PipeUrb
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3701::@3703 DeviceControlTransfer
WDF_USB_REQUEST_TYPE Type
Definition: wdfusb.h:327
uint32_t * PULONG
Definition: typedefs.h:59
uint16_t * PUSHORT
Definition: typedefs.h:56
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG
Definition: typedefs.h:59
union _WDF_USB_CONTROL_SETUP_PACKET::@3693::@3696 wValue
struct _WDF_USB_CONTROL_SETUP_PACKET::@3694 Generic
struct _WDF_USB_CONTROL_SETUP_PACKET::@3693 Packet
struct _WDF_USB_CONTROL_SETUP_PACKET::@3693::@3696::@3699 Bytes
union _WDF_USB_CONTROL_SETUP_PACKET::@3693::@3695 bm
struct _WDF_USB_CONTROL_SETUP_PACKET::@3693::@3695::@3698 Request
union _WDF_USB_CONTROL_SETUP_PACKET::@3693::@3697 wIndex
#define USB_REQUEST_GET_STATUS
Definition: usb100.h:78
#define USB_REQUEST_SET_FEATURE
Definition: usb100.h:80
#define USB_ENDPOINT_DIRECTION_MASK
Definition: usb100.h:73
#define USB_REQUEST_CLEAR_FEATURE
Definition: usb100.h:79
PVOID USBD_PIPE_HANDLE
Definition: usb.h:229
LONG USBD_STATUS
Definition: usb.h:165
PVOID USBD_CONFIGURATION_HANDLE
Definition: usb.h:230
#define GET_ISO_URB_SIZE(n)
Definition: usbdlib.h:125
#define STDCALL
Definition: wdf.h:45
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:476
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfUsbTargetDeviceIsConnectedSynchronousTableIndex
Definition: wdffuncenum.h:360
@ WdfUsbInterfaceGetNumSettingsTableIndex
Definition: wdffuncenum.h:411
@ WdfUsbTargetDeviceRetrieveConfigDescriptorTableIndex
Definition: wdffuncenum.h:350
@ WdfUsbTargetDeviceRetrieveInformationTableIndex
Definition: wdffuncenum.h:348
@ WdfUsbTargetPipeSetNoMaximumPacketSizeCheckTableIndex
Definition: wdffuncenum.h:370
@ WdfUsbTargetDeviceAllocAndQueryStringTableIndex
Definition: wdffuncenum.h:352
@ WdfUsbTargetDeviceRetrieveCurrentFrameNumberTableIndex
Definition: wdffuncenum.h:357
@ WdfUsbTargetPipeWriteSynchronouslyTableIndex
Definition: wdffuncenum.h:371
@ WdfUsbTargetPipeGetInformationTableIndex
Definition: wdffuncenum.h:366
@ WdfUsbInterfaceGetDescriptorTableIndex
Definition: wdffuncenum.h:384
@ WdfUsbTargetDeviceSendControlTransferSynchronouslyTableIndex
Definition: wdffuncenum.h:358
@ WdfUsbTargetPipeSendUrbSynchronouslyTableIndex
Definition: wdffuncenum.h:380
@ WdfUsbTargetPipeIsOutEndpointTableIndex
Definition: wdffuncenum.h:368
@ WdfUsbTargetPipeFormatRequestForReadTableIndex
Definition: wdffuncenum.h:374
@ WdfUsbTargetDeviceFormatRequestForUrbTableIndex
Definition: wdffuncenum.h:365
@ WdfUsbTargetDeviceCreateWithParametersTableIndex
Definition: wdffuncenum.h:446
@ WdfUsbTargetDeviceGetInterfaceTableIndex
Definition: wdffuncenum.h:387
@ WdfUsbTargetPipeFormatRequestForResetTableIndex
Definition: wdffuncenum.h:379
@ WdfUsbInterfaceSelectSettingTableIndex
Definition: wdffuncenum.h:385
@ WdfUsbTargetPipeFormatRequestForAbortTableIndex
Definition: wdffuncenum.h:377
@ WdfUsbTargetDeviceFormatRequestForControlTransferTableIndex
Definition: wdffuncenum.h:359
@ WdfUsbInterfaceGetConfiguredSettingIndexTableIndex
Definition: wdffuncenum.h:388
@ WdfUsbInterfaceGetNumEndpointsTableIndex
Definition: wdffuncenum.h:383
@ WdfUsbTargetDeviceResetPortSynchronouslyTableIndex
Definition: wdffuncenum.h:361
@ WdfUsbTargetDeviceQueryUsbCapabilityTableIndex
Definition: wdffuncenum.h:447
@ WdfUsbTargetDeviceQueryStringTableIndex
Definition: wdffuncenum.h:351
@ WdfUsbTargetDeviceCyclePortSynchronouslyTableIndex
Definition: wdffuncenum.h:362
@ WdfUsbTargetPipeGetTypeTableIndex
Definition: wdffuncenum.h:369
@ WdfUsbTargetPipeReadSynchronouslyTableIndex
Definition: wdffuncenum.h:373
@ WdfUsbInterfaceGetConfiguredPipeTableIndex
Definition: wdffuncenum.h:390
@ WdfUsbTargetDeviceFormatRequestForCyclePortTableIndex
Definition: wdffuncenum.h:363
@ WdfUsbTargetDeviceSendUrbSynchronouslyTableIndex
Definition: wdffuncenum.h:364
@ WdfUsbTargetDeviceCreateUrbTableIndex
Definition: wdffuncenum.h:448
@ WdfUsbTargetDeviceGetNumInterfacesTableIndex
Definition: wdffuncenum.h:354
@ WdfUsbTargetPipeFormatRequestForWriteTableIndex
Definition: wdffuncenum.h:372
@ WdfUsbTargetDeviceCreateTableIndex
Definition: wdffuncenum.h:347
@ WdfUsbTargetPipeResetSynchronouslyTableIndex
Definition: wdffuncenum.h:378
@ WdfUsbTargetDeviceFormatRequestForStringTableIndex
Definition: wdffuncenum.h:353
@ WdfUsbTargetPipeWdmGetPipeHandleTableIndex
Definition: wdffuncenum.h:391
@ WdfUsbTargetPipeIsInEndpointTableIndex
Definition: wdffuncenum.h:367
@ WdfUsbTargetPipeConfigContinuousReaderTableIndex
Definition: wdffuncenum.h:375
@ WdfUsbTargetDeviceCreateIsochUrbTableIndex
Definition: wdffuncenum.h:449
@ WdfUsbTargetDeviceSelectConfigTableIndex
Definition: wdffuncenum.h:355
@ WdfUsbInterfaceGetInterfaceNumberTableIndex
Definition: wdffuncenum.h:382
@ WdfUsbTargetPipeAbortSynchronouslyTableIndex
Definition: wdffuncenum.h:376
@ WdfUsbTargetDeviceWdmGetConfigurationHandleTableIndex
Definition: wdffuncenum.h:356
@ WdfUsbTargetPipeFormatRequestForUrbTableIndex
Definition: wdffuncenum.h:381
@ WdfUsbInterfaceGetEndpointInformationTableIndex
Definition: wdffuncenum.h:386
@ WdfUsbInterfaceGetNumConfiguredPipesTableIndex
Definition: wdffuncenum.h:389
@ WdfUsbTargetDeviceGetDeviceDescriptorTableIndex
Definition: wdffuncenum.h:349
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
Definition: wdfiotarget.h:960
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
Definition: wdfiotarget.h:870
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
Definition: wdfiotarget.h:867
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:308
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
#define WDFAPI
Definition: wdftypes.h:53
#define FORCEINLINE
Definition: wdftypes.h:67
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY Memory
Definition: wdfusb.h:1172
EVT_WDF_USB_READERS_FAILED * PFN_WDF_USB_READERS_FAILED
Definition: wdfusb.h:405
_Must_inspect_result_ _In_ WDFUSBPIPE PIPE
Definition: wdfusb.h:2237
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_opt_ PWDF_USB_PIPE_INFORMATION PipeInfo
Definition: wdfusb.h:2543
_In_ WDFUSBINTERFACE UsbInterface
Definition: wdfusb.h:2276
struct _WDF_USB_REQUEST_COMPLETION_PARAMS * PWDF_USB_REQUEST_COMPLETION_PARAMS
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipeAttributes
Definition: wdfusb.h:1242
VOID FORCEINLINE WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_DECONFIG(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params)
Definition: wdfusb.h:680
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
Definition: wdfusb.h:1074
#define BMREQUEST_TO_INTERFACE
Definition: wdfusb.h:75
FORCEINLINE VOID WDF_USB_PIPE_INFORMATION_INIT(_Out_ PWDF_USB_PIPE_INFORMATION Info)
Definition: wdfusb.h:823
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
Definition: wdfusb.h:2334
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG CapabilityBufferLength
Definition: wdfusb.h:1615
_WDF_USB_BMREQUEST_DIRECTION
Definition: wdfusb.h:99
@ BmRequestDeviceToHost
Definition: wdfusb.h:101
@ BmRequestHostToDevice
Definition: wdfusb.h:100
struct _WDF_USB_DEVICE_INFORMATION * PWDF_USB_DEVICE_INFORMATION
FORCEINLINE VOID WDF_USB_CONTROL_SETUP_PACKET_INIT_GET_STATUS(_Out_ PWDF_USB_CONTROL_SETUP_PACKET Packet, _In_ WDF_USB_BMREQUEST_RECIPIENT BmRequestRecipient, _In_ USHORT Index)
Definition: wdfusb.h:305
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY ReadMemory
Definition: wdfusb.h:2000
#define BMREQUEST_TO_DEVICE
Definition: wdfusb.h:71
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY WriteMemory
Definition: wdfusb.h:1918
_In_ WDFUSBINTERFACE _In_ UCHAR PipeIndex
Definition: wdfusb.h:2540
_In_ WDFUSBINTERFACE Interface
Definition: wdfusb.h:2489
_In_ WDFUSBDEVICE _Out_ PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor
Definition: wdfusb.h:1008
FORCEINLINE WDFIOTARGET WdfUsbTargetPipeGetIoTarget(_In_ WDFUSBPIPE Pipe)
Definition: wdfusb.h:777
enum _WDF_USB_BMREQUEST_DIRECTION WDF_USB_BMREQUEST_DIRECTION
_In_ NTSTATUS _In_ USBD_STATUS UsbdStatus
Definition: wdfusb.h:403
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY UrbMemory
Definition: wdfusb.h:1576
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
Definition: wdfusb.h:906
FORCEINLINE VOID WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params, _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptor, _In_ PUSB_INTERFACE_DESCRIPTOR *InterfaceDescriptors, _In_ ULONG NumInterfaceDescriptors)
Definition: wdfusb.h:647
#define BMREQUEST_VENDOR
Definition: wdfusb.h:67
enum _WdfUsbTargetDeviceSelectConfigType WdfUsbTargetDeviceSelectConfigType
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID ConfigDescriptor
Definition: wdfusb.h:1036
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET TransferOffset
Definition: wdfusb.h:1387
FORCEINLINE VOID WDF_USB_CONTINUOUS_READER_CONFIG_INIT(_Out_ PWDF_USB_CONTINUOUS_READER_CONFIG Config, _In_ PFN_WDF_USB_READER_COMPLETION_ROUTINE EvtUsbTargetPipeReadComplete, _In_ WDFCONTEXT EvtUsbTargetPipeReadCompleteContext, _In_ size_t TransferLength)
Definition: wdfusb.h:460
#define WDF_EXTERN_C_END
Definition: wdfusb.h:40
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Inout_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params
Definition: wdfusb.h:1245
FORCEINLINE VOID WDF_USB_DEVICE_CREATE_CONFIG_INIT(_Out_ PWDF_USB_DEVICE_CREATE_CONFIG Config, _In_ ULONG USBDClientContractVersion)
Definition: wdfusb.h:871
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfusb.h:901
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET UrbMemoryOffset
Definition: wdfusb.h:1579
_Must_inspect_result_ _In_ WDFUSBPIPE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_opt_ PWDF_MEMORY_DESCRIPTOR _Out_opt_ PULONG BytesRead
Definition: wdfusb.h:1962
_WDF_USB_DEVICE_TRAITS
Definition: wdfusb.h:141
@ WDF_USB_DEVICE_TRAIT_SELF_POWERED
Definition: wdfusb.h:142
@ WDF_USB_DEVICE_TRAIT_AT_HIGH_SPEED
Definition: wdfusb.h:144
@ WDF_USB_DEVICE_TRAIT_REMOTE_WAKE_CAPABLE
Definition: wdfusb.h:143
FORCEINLINE BOOLEAN WDF_USB_PIPE_DIRECTION_IN(_In_ UCHAR EndpointAddress)
Definition: wdfusb.h:834
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG NumberOfIsochPackets
Definition: wdfusb.h:1703
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES StringMemoryAttributes
Definition: wdfusb.h:1123
_WDF_USB_BMREQUEST_TYPE
Definition: wdfusb.h:104
@ BmRequestStandard
Definition: wdfusb.h:105
@ BmRequestClass
Definition: wdfusb.h:106
@ BmRequestVendor
Definition: wdfusb.h:107
struct _WDF_USB_DEVICE_CREATE_CONFIG * PWDF_USB_DEVICE_CREATE_CONFIG
_In_ WDFUSBPIPE UsbPipe
Definition: wdfusb.h:2572
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_ PULONG CurrentFrameNumber
Definition: wdfusb.h:1303
FORCEINLINE VOID WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_URB(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params, _In_ PURB Urb)
Definition: wdfusb.h:665
#define BMREQUEST_CLASS
Definition: wdfusb.h:63
_WDF_USB_BMREQUEST_RECIPIENT
Definition: wdfusb.h:110
@ BmRequestToOther
Definition: wdfusb.h:114
@ BmRequestToInterface
Definition: wdfusb.h:112
@ BmRequestToEndpoint
Definition: wdfusb.h:113
@ BmRequestToDevice
Definition: wdfusb.h:111
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: wdfusb.h:903
struct _WDF_USB_INTERFACE_SETTING_PAIR * PWDF_USB_INTERFACE_SETTING_PAIR
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS WDF_USB_INTERFACE_SELECT_SETTING_PARAMS
enum _WDF_USB_BMREQUEST_TYPE WDF_USB_BMREQUEST_TYPE
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_(CapabilityBufferLength)) _When_(CapabilityBufferLength !=0 &&ResultLength !
Definition: wdfusb.h:1617
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_USB_DEVICE_CREATE_CONFIG Config
Definition: wdfusb.h:938
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID _Inout_ PUSHORT ConfigDescriptorLength
Definition: wdfusb.h:1040
enum _WDF_USB_REQUEST_TYPE * PWDF_USB_REQUEST_TYPE
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS * PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor
Definition: wdfusb.h:1339
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT NumCharacters
Definition: wdfusb.h:1078
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID * CapabilityType
Definition: wdfusb.h:1613
FORCEINLINE VOID WDF_USB_DEVICE_INFORMATION_INIT(_Out_ PWDF_USB_DEVICE_INFORMATION Udi)
Definition: wdfusb.h:510
union _WDF_USB_CONTROL_SETUP_PACKET WDF_USB_CONTROL_SETUP_PACKET
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS WDF_USB_DEVICE_SELECT_CONFIG_PARAMS
#define WDF_EXTERN_C_START
Definition: wdfusb.h:39
#define BMREQUEST_TO_OTHER
Definition: wdfusb.h:83
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS * PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS
_Must_inspect_result_ _In_ WDFUSBPIPE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_opt_ PWDF_MEMORY_DESCRIPTOR _Out_opt_ PULONG BytesWritten
Definition: wdfusb.h:1880
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY _Outptr_opt_result_bytebuffer_(sizeof(URB)) PURB *Urb)
Definition: wdfusb.h:1665
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFUSBTARGETDEVICECREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Definition: wdfusb.h:894
FORCEINLINE VOID WDF_USB_CONTROL_SETUP_PACKET_INIT_CLASS(_Out_ PWDF_USB_CONTROL_SETUP_PACKET Packet, _In_ WDF_USB_BMREQUEST_DIRECTION Direction, _In_ WDF_USB_BMREQUEST_RECIPIENT Recipient, _In_ BYTE Request, _In_ USHORT Value, _In_ USHORT Index)
Definition: wdfusb.h:228
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR _Out_ PWDF_USB_PIPE_INFORMATION EndpointInfo
Definition: wdfusb.h:2429
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_reads_(_Inexpressible_("union bug in SAL")) PURB Urb)
Definition: wdfusb.h:1538
FORCEINLINE VOID WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params)
Definition: wdfusb.h:612
enum _WDF_USB_DEVICE_TRAITS WDF_USB_DEVICE_TRAITS
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _When_(CapabilityBufferLength==0, _Out_opt_) _When_(CapabilityBufferLength !=0 &&ResultLength
Definition: wdfusb.h:1616
FORCEINLINE VOID WDF_USB_CONTROL_SETUP_PACKET_INIT(_Out_ PWDF_USB_CONTROL_SETUP_PACKET Packet, _In_ WDF_USB_BMREQUEST_DIRECTION Direction, _In_ WDF_USB_BMREQUEST_RECIPIENT Recipient, _In_ BYTE Request, _In_ USHORT Value, _In_ USHORT Index)
Definition: wdfusb.h:204
#define BMREQUEST_HOST_TO_DEVICE
Definition: wdfusb.h:51
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR StringIndex
Definition: wdfusb.h:1080
struct _WDF_USB_DEVICE_CREATE_CONFIG WDF_USB_DEVICE_CREATE_CONFIG
_WDF_USB_PIPE_TYPE
Definition: wdfusb.h:117
@ WdfUsbPipeTypeInterrupt
Definition: wdfusb.h:122
@ WdfUsbPipeTypeControl
Definition: wdfusb.h:119
@ WdfUsbPipeTypeBulk
Definition: wdfusb.h:121
@ WdfUsbPipeTypeIsochronous
Definition: wdfusb.h:120
@ WdfUsbPipeTypeInvalid
Definition: wdfusb.h:118
#define BMREQUEST_TO_ENDPOINT
Definition: wdfusb.h:79
struct _WDF_USB_CONTINUOUS_READER_CONFIG * PWDF_USB_CONTINUOUS_READER_CONFIG
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST Request
Definition: wdfusb.h:1072
#define BMREQUEST_STANDARD
Definition: wdfusb.h:59
FORCEINLINE VOID WDF_USB_CONTROL_SETUP_PACKET_INIT_FEATURE(_Out_ PWDF_USB_CONTROL_SETUP_PACKET Packet, _In_ WDF_USB_BMREQUEST_RECIPIENT BmRequestRecipient, _In_ USHORT FeatureSelector, _In_ USHORT Index, _In_ BOOLEAN SetFeature)
Definition: wdfusb.h:276
_WDF_USB_REQUEST_TYPE
Definition: wdfusb.h:86
@ WdfUsbRequestTypeDeviceControlTransfer
Definition: wdfusb.h:90
@ WdfUsbRequestTypePipeReset
Definition: wdfusb.h:95
@ WdfUsbRequestTypePipeWrite
Definition: wdfusb.h:92
@ WdfUsbRequestTypePipeRead
Definition: wdfusb.h:93
@ WdfUsbRequestTypeInvalid
Definition: wdfusb.h:87
@ WdfUsbRequestTypePipeUrb
Definition: wdfusb.h:96
@ WdfUsbRequestTypePipeAbort
Definition: wdfusb.h:94
@ WdfUsbRequestTypeDeviceUrb
Definition: wdfusb.h:91
@ WdfUsbRequestTypeDeviceString
Definition: wdfusb.h:89
@ WdfUsbRequestTypeNoFormat
Definition: wdfusb.h:88
_WdfUsbTargetDeviceSelectSettingType
Definition: wdfusb.h:135
@ WdfUsbInterfaceSelectSettingTypeUrb
Definition: wdfusb.h:138
@ WdfUsbInterfaceSelectSettingTypeDescriptor
Definition: wdfusb.h:136
@ WdfUsbInterfaceSelectSettingTypeSetting
Definition: wdfusb.h:137
_In_ WDFMEMORY _In_ size_t NumBytesTransferred
Definition: wdfusb.h:383
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET ReadOffset
Definition: wdfusb.h:2003
struct _WDF_USB_INTERFACE_SETTING_PAIR WDF_USB_INTERFACE_SETTING_PAIR
struct _WDF_USB_DEVICE_INFORMATION WDF_USB_DEVICE_INFORMATION
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
Definition: wdfusb.h:1083
_WdfUsbTargetDeviceSelectConfigType
Definition: wdfusb.h:125
@ WdfUsbTargetDeviceSelectConfigTypeUrb
Definition: wdfusb.h:132
@ WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs
Definition: wdfusb.h:130
@ WdfUsbTargetDeviceSelectConfigTypeSingleInterface
Definition: wdfusb.h:128
@ WdfUsbTargetDeviceSelectConfigTypeInterfacesDescriptor
Definition: wdfusb.h:131
@ WdfUsbTargetDeviceSelectConfigTypeDeconfig
Definition: wdfusb.h:127
@ WdfUsbTargetDeviceSelectConfigTypeInvalid
Definition: wdfusb.h:126
@ WdfUsbTargetDeviceSelectConfigTypeMultiInterface
Definition: wdfusb.h:129
FORCEINLINE WDFIOTARGET WdfUsbTargetDeviceGetIoTarget(_In_ WDFUSBDEVICE UsbDevice)
Definition: wdfusb.h:478
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET WriteOffset
Definition: wdfusb.h:1921
enum _WDF_USB_REQUEST_TYPE WDF_USB_REQUEST_TYPE
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_ PWDF_USB_DEVICE_INFORMATION Information
Definition: wdfusb.h:978
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR EndpointIndex
Definition: wdfusb.h:2426
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * StringMemory
Definition: wdfusb.h:1125
EVT_WDF_USB_READER_COMPLETION_ROUTINE * PFN_WDF_USB_READER_COMPLETION_ROUTINE
Definition: wdfusb.h:388
struct _WDF_USB_REQUEST_COMPLETION_PARAMS WDF_USB_REQUEST_COMPLETION_PARAMS
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ WDFMEMORY TransferMemory
Definition: wdfusb.h:1384
_In_ WDFUSBPIPE _Out_ PWDF_USB_PIPE_INFORMATION PipeInformation
Definition: wdfusb.h:1744
FORCEINLINE VOID WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_SETTING(_Out_ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params, _In_ UCHAR SettingIndex)
Definition: wdfusb.h:763
FORCEINLINE VOID WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params, _In_opt_ UCHAR NumberInterfaces, _In_opt_ PWDF_USB_INTERFACE_SETTING_PAIR SettingPairs)
Definition: wdfusb.h:624
FORCEINLINE BOOLEAN WDF_USB_PIPE_DIRECTION_OUT(_In_ UCHAR EndpointAddress)
Definition: wdfusb.h:846
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT String
Definition: wdfusb.h:1075
_In_ WDFUSBDEVICE _In_ UCHAR InterfaceIndex
Definition: wdfusb.h:2462
union _WDF_USB_CONTROL_SETUP_PACKET * PWDF_USB_CONTROL_SETUP_PACKET
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket
Definition: wdfusb.h:1337
_Must_inspect_result_ _In_ WDFUSBINTERFACE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipesAttributes
Definition: wdfusb.h:2390
FORCEINLINE VOID WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_DESCRIPTOR(_Out_ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params, _In_ PUSB_INTERFACE_DESCRIPTOR Interface)
Definition: wdfusb.h:735
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_to_opt_(CapabilityBufferLength, *ResultLength)) PVOID CapabilityBuffer
Definition: wdfusb.h:1618
enum _WDF_USB_PIPE_TYPE WDF_USB_PIPE_TYPE
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ PWDF_MEMORY_DESCRIPTOR _Out_opt_ PULONG BytesTransferred
Definition: wdfusb.h:1342
enum _WDF_USB_BMREQUEST_RECIPIENT WDF_USB_BMREQUEST_RECIPIENT
struct _WDF_USB_CONTINUOUS_READER_CONFIG WDF_USB_CONTINUOUS_READER_CONFIG
_In_ WDFUSBPIPE Pipe
Definition: wdfusb.h:1741
struct _WDF_USB_PIPE_INFORMATION WDF_USB_PIPE_INFORMATION
enum _WdfUsbTargetDeviceSelectSettingType WdfUsbTargetDeviceSelectSettingType
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET Offset
Definition: wdfusb.h:1174
#define BMREQUEST_DEVICE_TO_HOST
Definition: wdfusb.h:55
FORCEINLINE VOID WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR(_Out_ PWDF_USB_CONTROL_SETUP_PACKET Packet, _In_ WDF_USB_BMREQUEST_DIRECTION Direction, _In_ WDF_USB_BMREQUEST_RECIPIENT Recipient, _In_ BYTE Request, _In_ USHORT Value, _In_ USHORT Index)
Definition: wdfusb.h:252
struct _WDF_USB_PIPE_INFORMATION * PWDF_USB_PIPE_INFORMATION
_In_ WDFUSBINTERFACE _In_ UCHAR SettingIndex
Definition: wdfusb.h:2303
FORCEINLINE VOID WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_URB(_Out_ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params, _In_ PURB Urb)
Definition: wdfusb.h:749
unsigned char UCHAR
Definition: xmlstorage.h:181
unsigned char BYTE
Definition: xxhash.c:193