ReactOS  0.4.15-dev-2701-g34593d9
wdfusb.h
Go to the documentation of this file.
1 /*++
2 
3 Copyright (c) Microsoft Corporation. All rights reserved.
4 
5 _WdfVersionBuild_
6 
7 Module Name:
8 
9  WdfUsb.h
10 
11 Abstract:
12 
13  Contains prototypes for interfacing with a USB connected device
14 
15 Environment:
16 
17  kernel mode only
18 
19 Revision 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 
86 typedef enum _WDF_USB_REQUEST_TYPE {
98 
103 
109 
116 
117 typedef 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  //
172  } Request;
174  } bm;
175 
177 
178  union {
179  struct {
182  } Bytes;
184  } wValue;
185 
186  union {
187  struct {
188  BYTE LowByte;
189  BYTE HiByte;
190  } Bytes;
191  USHORT Value;
192  } wIndex;
193 
195  } Packet;
196 
197  struct {
199  } Generic;
201 
203 VOID
208  _In_ BYTE Request,
209  _In_ USHORT Value,
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 
227 VOID
232  _In_ BYTE Request,
233  _In_ USHORT Value,
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 
251 VOID
256  _In_ BYTE Request,
257  _In_ USHORT Value,
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 
275 VOID
278  _In_ WDF_USB_BMREQUEST_RECIPIENT BmRequestRecipient,
279  _In_ USHORT FeatureSelector,
280  _In_ USHORT Index,
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 
304 VOID
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  //
340  } DeviceString;
341 
342  struct {
343  WDFMEMORY Buffer;
347 
348  struct {
349  WDFMEMORY Buffer;
350  } DeviceUrb;
351 
352  struct {
353  WDFMEMORY Buffer;
354  size_t Length;
355  size_t Offset;
356  } PipeWrite;
357 
358  struct {
359  WDFMEMORY Buffer;
360  size_t Length;
361  size_t Offset;
362  } PipeRead;
363 
364  struct {
365  WDFMEMORY Buffer;
366  } PipeUrb;
367  } Parameters;
368 
370 
371 typedef
372 _Function_class_(EVT_WDF_USB_READER_COMPLETION_ROUTINE)
375 VOID
376 STDCALL
377 EVT_WDF_USB_READER_COMPLETION_ROUTINE(
378  _In_
379  WDFUSBPIPE Pipe,
380  _In_
381  WDFMEMORY Buffer,
382  _In_
383  size_t NumBytesTransferred,
384  _In_
386  );
387 
388 typedef EVT_WDF_USB_READER_COMPLETION_ROUTINE *PFN_WDF_USB_READER_COMPLETION_ROUTINE;
389 
390 typedef
391 _Function_class_(EVT_WDF_USB_READERS_FAILED)
394 BOOLEAN
395 STDCALL
396 EVT_WDF_USB_READERS_FAILED(
397  _In_
398  WDFUSBPIPE Pipe,
399  _In_
401  _In_
403  );
404 
405 typedef 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  //
421  size_t HeaderLength;
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 
459 VOID
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 
477 WDFIOTARGET
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 
509 VOID
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 
560  } Descriptor;
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 
570  } Urb;
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 
585  } SingleInterface;
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 
603  } MultiInterface;
604 
605  } Types;
606 
608 
609 
611 VOID
614  )
615 {
617 
620 }
621 
623 VOID
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 
646 VOID
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 
664 VOID
667  _In_ PURB Urb
668  )
669 {
671 
674  Params->Types.Urb.Urb = Urb;
675 }
676 
677 
678 VOID
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 
710  } Descriptor;
711 
712  struct {
713  //
714  // The setting index of the WDFUSBINTERFACE to use
715  //
717 
718  } Interface;
719 
720  struct {
721  //
722  // Preformatted select interface URB which will be used in the
723  // select interface request.
724  //
726 
727  } Urb;
728 
729  } Types;
730 
732 
734 VOID
738  )
739 {
741 
744  Params->Types.Descriptor.InterfaceDescriptor = Interface;
745 }
746 
748 VOID
751  _In_ PURB Urb
752  )
753 {
755 
758  Params->Types.Urb.Urb = Urb;
759 }
760 
762 VOID
766  )
767 {
769 
772  Params->Types.Interface.SettingIndex = SettingIndex;
773 }
774 
776 WDFIOTARGET
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 
822 VOID
825  )
826 {
828 
829  Info->Size = sizeof(WDF_USB_PIPE_INFORMATION);
830 }
831 
833 BOOLEAN
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 
845 BOOLEAN
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 
870 VOID
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 //
892 typedef
895 WDFAPI
896 NTSTATUS
897 (STDCALL *PFN_WDFUSBTARGETDEVICECREATE)(
898  _In_
900  _In_
901  WDFDEVICE Device,
902  _In_opt_
904  _Out_
905  WDFUSBDEVICE* UsbDevice
906  );
907 
911 NTSTATUS
912 WdfUsbTargetDeviceCreate(
913  _In_
914  WDFDEVICE Device,
915  _In_opt_
917  _Out_
918  WDFUSBDEVICE* UsbDevice
919  )
920 {
921  return ((PFN_WDFUSBTARGETDEVICECREATE) WdfFunctions[WdfUsbTargetDeviceCreateTableIndex])(WdfDriverGlobals, Device, Attributes, UsbDevice);
922 }
923 
924 //
925 // WDF Function: WdfUsbTargetDeviceCreateWithParameters
926 //
927 typedef
930 WDFAPI
931 NTSTATUS
932 (STDCALL *PFN_WDFUSBTARGETDEVICECREATEWITHPARAMETERS)(
933  _In_
935  _In_
936  WDFDEVICE Device,
937  _In_
939  _In_opt_
941  _Out_
942  WDFUSBDEVICE* UsbDevice
943  );
944 
948 NTSTATUS
949 WdfUsbTargetDeviceCreateWithParameters(
950  _In_
951  WDFDEVICE Device,
952  _In_
954  _In_opt_
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 //
966 typedef
969 WDFAPI
970 NTSTATUS
971 (STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVEINFORMATION)(
972  _In_
974  _In_
975  WDFUSBDEVICE UsbDevice,
976  _Out_
978  );
979 
983 NTSTATUS
984 WdfUsbTargetDeviceRetrieveInformation(
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 //
997 typedef
999 WDFAPI
1000 VOID
1001 (STDCALL *PFN_WDFUSBTARGETDEVICEGETDEVICEDESCRIPTOR)(
1002  _In_
1004  _In_
1005  WDFUSBDEVICE UsbDevice,
1006  _Out_
1008  );
1009 
1012 VOID
1013 WdfUsbTargetDeviceGetDeviceDescriptor(
1014  _In_
1015  WDFUSBDEVICE UsbDevice,
1016  _Out_
1018  )
1019 {
1021 }
1022 
1023 //
1024 // WDF Function: WdfUsbTargetDeviceRetrieveConfigDescriptor
1025 //
1026 typedef
1029 WDFAPI
1030 NTSTATUS
1031 (STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVECONFIGDESCRIPTOR)(
1032  _In_
1034  _In_
1035  WDFUSBDEVICE UsbDevice,
1038  _Inout_
1040  );
1041 
1045 NTSTATUS
1046 WdfUsbTargetDeviceRetrieveConfigDescriptor(
1047  _In_
1048  WDFUSBDEVICE UsbDevice,
1051  _Inout_
1053  )
1054 {
1056 }
1057 
1058 //
1059 // WDF Function: WdfUsbTargetDeviceQueryString
1060 //
1061 typedef
1064 WDFAPI
1065 NTSTATUS
1066 (STDCALL *PFN_WDFUSBTARGETDEVICEQUERYSTRING)(
1067  _In_
1069  _In_
1070  WDFUSBDEVICE UsbDevice,
1071  _In_opt_
1072  WDFREQUEST Request,
1073  _In_opt_
1076  PUSHORT String,
1077  _Inout_
1079  _In_
1081  _In_opt_
1082  USHORT LangID
1083  );
1084 
1088 NTSTATUS
1089 WdfUsbTargetDeviceQueryString(
1090  _In_
1091  WDFUSBDEVICE UsbDevice,
1092  _In_opt_
1093  WDFREQUEST Request,
1094  _In_opt_
1097  PUSHORT String,
1098  _Inout_
1100  _In_
1102  _In_opt_
1103  USHORT LangID
1104  )
1105 {
1107 }
1108 
1109 //
1110 // WDF Function: WdfUsbTargetDeviceAllocAndQueryString
1111 //
1112 typedef
1115 WDFAPI
1116 NTSTATUS
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_
1131  USHORT LangID
1132  );
1133 
1137 NTSTATUS
1138 WdfUsbTargetDeviceAllocAndQueryString(
1139  _In_
1140  WDFUSBDEVICE UsbDevice,
1141  _In_opt_
1143  _Out_
1144  WDFMEMORY* StringMemory,
1145  _Out_opt_
1147  _In_
1149  _In_opt_
1150  USHORT LangID
1151  )
1152 {
1154 }
1155 
1156 //
1157 // WDF Function: WdfUsbTargetDeviceFormatRequestForString
1158 //
1159 typedef
1162 WDFAPI
1163 NTSTATUS
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_
1178  USHORT LangID
1179  );
1180 
1184 NTSTATUS
1185 WdfUsbTargetDeviceFormatRequestForString(
1186  _In_
1187  WDFUSBDEVICE UsbDevice,
1188  _In_
1189  WDFREQUEST Request,
1190  _In_
1191  WDFMEMORY Memory,
1192  _In_opt_
1194  _In_
1196  _In_opt_
1197  USHORT LangID
1198  )
1199 {
1201 }
1202 
1203 //
1204 // WDF Function: WdfUsbTargetDeviceGetNumInterfaces
1205 //
1206 typedef
1208 WDFAPI
1209 UCHAR
1210 (STDCALL *PFN_WDFUSBTARGETDEVICEGETNUMINTERFACES)(
1211  _In_
1213  _In_
1214  WDFUSBDEVICE UsbDevice
1215  );
1216 
1219 UCHAR
1220 WdfUsbTargetDeviceGetNumInterfaces(
1221  _In_
1222  WDFUSBDEVICE UsbDevice
1223  )
1224 {
1225  return ((PFN_WDFUSBTARGETDEVICEGETNUMINTERFACES) WdfFunctions[WdfUsbTargetDeviceGetNumInterfacesTableIndex])(WdfDriverGlobals, UsbDevice);
1226 }
1227 
1228 //
1229 // WDF Function: WdfUsbTargetDeviceSelectConfig
1230 //
1231 typedef
1234 WDFAPI
1235 NTSTATUS
1236 (STDCALL *PFN_WDFUSBTARGETDEVICESELECTCONFIG)(
1237  _In_
1239  _In_
1240  WDFUSBDEVICE UsbDevice,
1241  _In_opt_
1243  _Inout_
1245  );
1246 
1250 NTSTATUS
1251 WdfUsbTargetDeviceSelectConfig(
1252  _In_
1253  WDFUSBDEVICE UsbDevice,
1254  _In_opt_
1256  _Inout_
1258  )
1259 {
1260  return ((PFN_WDFUSBTARGETDEVICESELECTCONFIG) WdfFunctions[WdfUsbTargetDeviceSelectConfigTableIndex])(WdfDriverGlobals, UsbDevice, PipeAttributes, Params);
1261 }
1262 
1263 //
1264 // WDF Function: WdfUsbTargetDeviceWdmGetConfigurationHandle
1265 //
1266 typedef
1268 WDFAPI
1270 (STDCALL *PFN_WDFUSBTARGETDEVICEWDMGETCONFIGURATIONHANDLE)(
1271  _In_
1273  _In_
1274  WDFUSBDEVICE UsbDevice
1275  );
1276 
1280 WdfUsbTargetDeviceWdmGetConfigurationHandle(
1281  _In_
1282  WDFUSBDEVICE UsbDevice
1283  )
1284 {
1285  return ((PFN_WDFUSBTARGETDEVICEWDMGETCONFIGURATIONHANDLE) WdfFunctions[WdfUsbTargetDeviceWdmGetConfigurationHandleTableIndex])(WdfDriverGlobals, UsbDevice);
1286 }
1287 
1288 //
1289 // WDF Function: WdfUsbTargetDeviceRetrieveCurrentFrameNumber
1290 //
1291 typedef
1294 WDFAPI
1295 NTSTATUS
1296 (STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVECURRENTFRAMENUMBER)(
1297  _In_
1299  _In_
1300  WDFUSBDEVICE UsbDevice,
1301  _Out_
1303  );
1304 
1308 NTSTATUS
1309 WdfUsbTargetDeviceRetrieveCurrentFrameNumber(
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 //
1322 typedef
1325 WDFAPI
1326 NTSTATUS
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 
1347 NTSTATUS
1348 WdfUsbTargetDeviceSendControlTransferSynchronously(
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 //
1369 typedef
1372 WDFAPI
1373 NTSTATUS
1374 (STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCONTROLTRANSFER)(
1375  _In_
1377  _In_
1378  WDFUSBDEVICE UsbDevice,
1379  _In_
1380  WDFREQUEST Request,
1381  _In_
1383  _In_opt_
1384  WDFMEMORY TransferMemory,
1385  _In_opt_
1387  );
1388 
1392 NTSTATUS
1393 WdfUsbTargetDeviceFormatRequestForControlTransfer(
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 //
1412 typedef
1415 WDFAPI
1416 NTSTATUS
1417 (STDCALL *PFN_WDFUSBTARGETDEVICEISCONNECTEDSYNCHRONOUS)(
1418  _In_
1420  _In_
1421  WDFUSBDEVICE UsbDevice
1422  );
1423 
1427 NTSTATUS
1428 WdfUsbTargetDeviceIsConnectedSynchronous(
1429  _In_
1430  WDFUSBDEVICE UsbDevice
1431  )
1432 {
1433  return ((PFN_WDFUSBTARGETDEVICEISCONNECTEDSYNCHRONOUS) WdfFunctions[WdfUsbTargetDeviceIsConnectedSynchronousTableIndex])(WdfDriverGlobals, UsbDevice);
1434 }
1435 
1436 //
1437 // WDF Function: WdfUsbTargetDeviceResetPortSynchronously
1438 //
1439 typedef
1442 WDFAPI
1443 NTSTATUS
1444 (STDCALL *PFN_WDFUSBTARGETDEVICERESETPORTSYNCHRONOUSLY)(
1445  _In_
1447  _In_
1448  WDFUSBDEVICE UsbDevice
1449  );
1450 
1454 NTSTATUS
1455 WdfUsbTargetDeviceResetPortSynchronously(
1456  _In_
1457  WDFUSBDEVICE UsbDevice
1458  )
1459 {
1460  return ((PFN_WDFUSBTARGETDEVICERESETPORTSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetDeviceResetPortSynchronouslyTableIndex])(WdfDriverGlobals, UsbDevice);
1461 }
1462 
1463 //
1464 // WDF Function: WdfUsbTargetDeviceCyclePortSynchronously
1465 //
1466 typedef
1469 WDFAPI
1470 NTSTATUS
1471 (STDCALL *PFN_WDFUSBTARGETDEVICECYCLEPORTSYNCHRONOUSLY)(
1472  _In_
1474  _In_
1475  WDFUSBDEVICE UsbDevice
1476  );
1477 
1481 NTSTATUS
1482 WdfUsbTargetDeviceCyclePortSynchronously(
1483  _In_
1484  WDFUSBDEVICE UsbDevice
1485  )
1486 {
1487  return ((PFN_WDFUSBTARGETDEVICECYCLEPORTSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetDeviceCyclePortSynchronouslyTableIndex])(WdfDriverGlobals, UsbDevice);
1488 }
1489 
1490 //
1491 // WDF Function: WdfUsbTargetDeviceFormatRequestForCyclePort
1492 //
1493 typedef
1496 WDFAPI
1497 NTSTATUS
1498 (STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCYCLEPORT)(
1499  _In_
1501  _In_
1502  WDFUSBDEVICE UsbDevice,
1503  _In_
1504  WDFREQUEST Request
1505  );
1506 
1510 NTSTATUS
1511 WdfUsbTargetDeviceFormatRequestForCyclePort(
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 //
1524 typedef
1527 WDFAPI
1528 NTSTATUS
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 
1545 NTSTATUS
1546 WdfUsbTargetDeviceSendUrbSynchronously(
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 //
1563 typedef
1566 WDFAPI
1567 NTSTATUS
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 
1584 NTSTATUS
1585 WdfUsbTargetDeviceFormatRequestForUrb(
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 //
1602 typedef
1605 WDFAPI
1606 NTSTATUS
1607 (STDCALL *PFN_WDFUSBTARGETDEVICEQUERYUSBCAPABILITY)(
1608  _In_
1610  _In_
1611  WDFUSBDEVICE UsbDevice,
1612  _In_
1614  _In_
1619  PVOID CapabilityBuffer,
1620  _Out_opt_
1623  );
1624 
1628 NTSTATUS
1629 WdfUsbTargetDeviceQueryUsbCapability(
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 //
1651 typedef
1654 WDFAPI
1655 NTSTATUS
1656 (STDCALL *PFN_WDFUSBTARGETDEVICECREATEURB)(
1657  _In_
1659  _In_
1660  WDFUSBDEVICE UsbDevice,
1661  _In_opt_
1663  _Out_
1664  WDFMEMORY* UrbMemory,
1666  PURB* Urb
1667  );
1668 
1672 NTSTATUS
1673 WdfUsbTargetDeviceCreateUrb(
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 //
1690 typedef
1693 WDFAPI
1694 NTSTATUS
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 
1713 NTSTATUS
1714 WdfUsbTargetDeviceCreateIsochUrb(
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 //
1733 typedef
1735 WDFAPI
1736 VOID
1737 (STDCALL *PFN_WDFUSBTARGETPIPEGETINFORMATION)(
1738  _In_
1740  _In_
1741  WDFUSBPIPE Pipe,
1742  _Out_
1744  );
1745 
1748 VOID
1749 WdfUsbTargetPipeGetInformation(
1750  _In_
1751  WDFUSBPIPE Pipe,
1752  _Out_
1754  )
1755 {
1757 }
1758 
1759 //
1760 // WDF Function: WdfUsbTargetPipeIsInEndpoint
1761 //
1762 typedef
1764 WDFAPI
1765 BOOLEAN
1766 (STDCALL *PFN_WDFUSBTARGETPIPEISINENDPOINT)(
1767  _In_
1769  _In_
1770  WDFUSBPIPE Pipe
1771  );
1772 
1775 BOOLEAN
1776 WdfUsbTargetPipeIsInEndpoint(
1777  _In_
1778  WDFUSBPIPE Pipe
1779  )
1780 {
1781  return ((PFN_WDFUSBTARGETPIPEISINENDPOINT) WdfFunctions[WdfUsbTargetPipeIsInEndpointTableIndex])(WdfDriverGlobals, Pipe);
1782 }
1783 
1784 //
1785 // WDF Function: WdfUsbTargetPipeIsOutEndpoint
1786 //
1787 typedef
1789 WDFAPI
1790 BOOLEAN
1791 (STDCALL *PFN_WDFUSBTARGETPIPEISOUTENDPOINT)(
1792  _In_
1794  _In_
1795  WDFUSBPIPE Pipe
1796  );
1797 
1800 BOOLEAN
1801 WdfUsbTargetPipeIsOutEndpoint(
1802  _In_
1803  WDFUSBPIPE Pipe
1804  )
1805 {
1806  return ((PFN_WDFUSBTARGETPIPEISOUTENDPOINT) WdfFunctions[WdfUsbTargetPipeIsOutEndpointTableIndex])(WdfDriverGlobals, Pipe);
1807 }
1808 
1809 //
1810 // WDF Function: WdfUsbTargetPipeGetType
1811 //
1812 typedef
1814 WDFAPI
1816 (STDCALL *PFN_WDFUSBTARGETPIPEGETTYPE)(
1817  _In_
1819  _In_
1820  WDFUSBPIPE Pipe
1821  );
1822 
1826 WdfUsbTargetPipeGetType(
1827  _In_
1828  WDFUSBPIPE Pipe
1829  )
1830 {
1831  return ((PFN_WDFUSBTARGETPIPEGETTYPE) WdfFunctions[WdfUsbTargetPipeGetTypeTableIndex])(WdfDriverGlobals, Pipe);
1832 }
1833 
1834 //
1835 // WDF Function: WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
1836 //
1837 typedef
1839 WDFAPI
1840 VOID
1841 (STDCALL *PFN_WDFUSBTARGETPIPESETNOMAXIMUMPACKETSIZECHECK)(
1842  _In_
1844  _In_
1845  WDFUSBPIPE Pipe
1846  );
1847 
1850 VOID
1851 WdfUsbTargetPipeSetNoMaximumPacketSizeCheck(
1852  _In_
1853  WDFUSBPIPE Pipe
1854  )
1855 {
1856  ((PFN_WDFUSBTARGETPIPESETNOMAXIMUMPACKETSIZECHECK) WdfFunctions[WdfUsbTargetPipeSetNoMaximumPacketSizeCheckTableIndex])(WdfDriverGlobals, Pipe);
1857 }
1858 
1859 //
1860 // WDF Function: WdfUsbTargetPipeWriteSynchronously
1861 //
1862 typedef
1865 WDFAPI
1866 NTSTATUS
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 
1885 NTSTATUS
1886 WdfUsbTargetPipeWriteSynchronously(
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 //
1905 typedef
1908 WDFAPI
1909 NTSTATUS
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 
1926 NTSTATUS
1927 WdfUsbTargetPipeFormatRequestForWrite(
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 //
1944 typedef
1947 WDFAPI
1948 NTSTATUS
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 
1967 NTSTATUS
1968 WdfUsbTargetPipeReadSynchronously(
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 //
1987 typedef
1990 WDFAPI
1991 NTSTATUS
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 
2008 NTSTATUS
2009 WdfUsbTargetPipeFormatRequestForRead(
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 //
2026 typedef
2029 WDFAPI
2030 NTSTATUS
2031 (STDCALL *PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER)(
2032  _In_
2034  _In_
2035  WDFUSBPIPE Pipe,
2036  _In_
2038  );
2039 
2043 NTSTATUS
2044 WdfUsbTargetPipeConfigContinuousReader(
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 //
2057 typedef
2060 WDFAPI
2061 NTSTATUS
2062 (STDCALL *PFN_WDFUSBTARGETPIPEABORTSYNCHRONOUSLY)(
2063  _In_
2065  _In_
2066  WDFUSBPIPE Pipe,
2067  _In_opt_
2068  WDFREQUEST Request,
2069  _In_opt_
2071  );
2072 
2076 NTSTATUS
2077 WdfUsbTargetPipeAbortSynchronously(
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 //
2092 typedef
2095 WDFAPI
2096 NTSTATUS
2097 (STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORABORT)(
2098  _In_
2100  _In_
2101  WDFUSBPIPE Pipe,
2102  _In_
2103  WDFREQUEST Request
2104  );
2105 
2109 NTSTATUS
2110 WdfUsbTargetPipeFormatRequestForAbort(
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 //
2123 typedef
2126 WDFAPI
2127 NTSTATUS
2128 (STDCALL *PFN_WDFUSBTARGETPIPERESETSYNCHRONOUSLY)(
2129  _In_
2131  _In_
2132  WDFUSBPIPE Pipe,
2133  _In_opt_
2134  WDFREQUEST Request,
2135  _In_opt_
2137  );
2138 
2142 NTSTATUS
2143 WdfUsbTargetPipeResetSynchronously(
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 //
2158 typedef
2161 WDFAPI
2162 NTSTATUS
2163 (STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORRESET)(
2164  _In_
2166  _In_
2167  WDFUSBPIPE Pipe,
2168  _In_
2169  WDFREQUEST Request
2170  );
2171 
2175 NTSTATUS
2176 WdfUsbTargetPipeFormatRequestForReset(
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 //
2189 typedef
2192 WDFAPI
2193 NTSTATUS
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 
2210 NTSTATUS
2211 WdfUsbTargetPipeSendUrbSynchronously(
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 //
2228 typedef
2231 WDFAPI
2232 NTSTATUS
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 
2249 NTSTATUS
2250 WdfUsbTargetPipeFormatRequestForUrb(
2251  _In_
2252  WDFUSBPIPE PIPE,
2253  _In_
2254  WDFREQUEST Request,
2255  _In_
2256  WDFMEMORY UrbMemory,
2257  _In_opt_
2259  )
2260 {
2261  return ((PFN_WDFUSBTARGETPIPEFORMATREQUESTFORURB) WdfFunctions[WdfUsbTargetPipeFormatRequestForUrbTableIndex])(WdfDriverGlobals, PIPE, Request, UrbMemory, UrbMemoryOffset);
2262 }
2263 
2264 //
2265 // WDF Function: WdfUsbInterfaceGetInterfaceNumber
2266 //
2267 typedef
2269 WDFAPI
2270 BYTE
2271 (STDCALL *PFN_WDFUSBINTERFACEGETINTERFACENUMBER)(
2272  _In_
2274  _In_
2275  WDFUSBINTERFACE UsbInterface
2276  );
2277 
2280 BYTE
2281 WdfUsbInterfaceGetInterfaceNumber(
2282  _In_
2283  WDFUSBINTERFACE UsbInterface
2284  )
2285 {
2286  return ((PFN_WDFUSBINTERFACEGETINTERFACENUMBER) WdfFunctions[WdfUsbInterfaceGetInterfaceNumberTableIndex])(WdfDriverGlobals, UsbInterface);
2287 }
2288 
2289 //
2290 // WDF Function: WdfUsbInterfaceGetNumEndpoints
2291 //
2292 typedef
2294 WDFAPI
2295 BYTE
2296 (STDCALL *PFN_WDFUSBINTERFACEGETNUMENDPOINTS)(
2297  _In_
2299  _In_
2300  WDFUSBINTERFACE UsbInterface,
2301  _In_
2303  );
2304 
2307 BYTE
2308 WdfUsbInterfaceGetNumEndpoints(
2309  _In_
2310  WDFUSBINTERFACE UsbInterface,
2311  _In_
2313  )
2314 {
2315  return ((PFN_WDFUSBINTERFACEGETNUMENDPOINTS) WdfFunctions[WdfUsbInterfaceGetNumEndpointsTableIndex])(WdfDriverGlobals, UsbInterface, SettingIndex);
2316 }
2317 
2318 //
2319 // WDF Function: WdfUsbInterfaceGetDescriptor
2320 //
2321 typedef
2323 WDFAPI
2324 VOID
2325 (STDCALL *PFN_WDFUSBINTERFACEGETDESCRIPTOR)(
2326  _In_
2328  _In_
2329  WDFUSBINTERFACE UsbInterface,
2330  _In_
2332  _Out_
2334  );
2335 
2338 VOID
2339 WdfUsbInterfaceGetDescriptor(
2340  _In_
2341  WDFUSBINTERFACE UsbInterface,
2342  _In_
2344  _Out_
2346  )
2347 {
2349 }
2350 
2351 //
2352 // WDF Function: WdfUsbInterfaceGetNumSettings
2353 //
2354 typedef
2356 WDFAPI
2357 BYTE
2358 (STDCALL *PFN_WDFUSBINTERFACEGETNUMSETTINGS)(
2359  _In_
2361  _In_
2362  WDFUSBINTERFACE UsbInterface
2363  );
2364 
2367 BYTE
2368 WdfUsbInterfaceGetNumSettings(
2369  _In_
2370  WDFUSBINTERFACE UsbInterface
2371  )
2372 {
2373  return ((PFN_WDFUSBINTERFACEGETNUMSETTINGS) WdfFunctions[WdfUsbInterfaceGetNumSettingsTableIndex])(WdfDriverGlobals, UsbInterface);
2374 }
2375 
2376 //
2377 // WDF Function: WdfUsbInterfaceSelectSetting
2378 //
2379 typedef
2382 WDFAPI
2383 NTSTATUS
2384 (STDCALL *PFN_WDFUSBINTERFACESELECTSETTING)(
2385  _In_
2387  _In_
2388  WDFUSBINTERFACE UsbInterface,
2389  _In_opt_
2391  _In_
2393  );
2394 
2398 NTSTATUS
2399 WdfUsbInterfaceSelectSetting(
2400  _In_
2401  WDFUSBINTERFACE UsbInterface,
2402  _In_opt_
2404  _In_
2406  )
2407 {
2409 }
2410 
2411 //
2412 // WDF Function: WdfUsbInterfaceGetEndpointInformation
2413 //
2414 typedef
2416 WDFAPI
2417 VOID
2418 (STDCALL *PFN_WDFUSBINTERFACEGETENDPOINTINFORMATION)(
2419  _In_
2421  _In_
2422  WDFUSBINTERFACE UsbInterface,
2423  _In_
2425  _In_
2427  _Out_
2429  );
2430 
2433 VOID
2434 WdfUsbInterfaceGetEndpointInformation(
2435  _In_
2436  WDFUSBINTERFACE UsbInterface,
2437  _In_
2439  _In_
2441  _Out_
2443  )
2444 {
2446 }
2447 
2448 //
2449 // WDF Function: WdfUsbTargetDeviceGetInterface
2450 //
2451 typedef
2453 WDFAPI
2454 WDFUSBINTERFACE
2455 (STDCALL *PFN_WDFUSBTARGETDEVICEGETINTERFACE)(
2456  _In_
2458  _In_
2459  WDFUSBDEVICE UsbDevice,
2460  _In_
2462  );
2463 
2466 WDFUSBINTERFACE
2467 WdfUsbTargetDeviceGetInterface(
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 //
2480 typedef
2482 WDFAPI
2483 BYTE
2484 (STDCALL *PFN_WDFUSBINTERFACEGETCONFIGUREDSETTINGINDEX)(
2485  _In_
2487  _In_
2488  WDFUSBINTERFACE Interface
2489  );
2490 
2493 BYTE
2494 WdfUsbInterfaceGetConfiguredSettingIndex(
2495  _In_
2496  WDFUSBINTERFACE Interface
2497  )
2498 {
2499  return ((PFN_WDFUSBINTERFACEGETCONFIGUREDSETTINGINDEX) WdfFunctions[WdfUsbInterfaceGetConfiguredSettingIndexTableIndex])(WdfDriverGlobals, Interface);
2500 }
2501 
2502 //
2503 // WDF Function: WdfUsbInterfaceGetNumConfiguredPipes
2504 //
2505 typedef
2507 WDFAPI
2508 BYTE
2509 (STDCALL *PFN_WDFUSBINTERFACEGETNUMCONFIGUREDPIPES)(
2510  _In_
2512  _In_
2513  WDFUSBINTERFACE UsbInterface
2514  );
2515 
2518 BYTE
2519 WdfUsbInterfaceGetNumConfiguredPipes(
2520  _In_
2521  WDFUSBINTERFACE UsbInterface
2522  )
2523 {
2524  return ((PFN_WDFUSBINTERFACEGETNUMCONFIGUREDPIPES) WdfFunctions[WdfUsbInterfaceGetNumConfiguredPipesTableIndex])(WdfDriverGlobals, UsbInterface);
2525 }
2526 
2527 //
2528 // WDF Function: WdfUsbInterfaceGetConfiguredPipe
2529 //
2530 typedef
2532 WDFAPI
2533 WDFUSBPIPE
2534 (STDCALL *PFN_WDFUSBINTERFACEGETCONFIGUREDPIPE)(
2535  _In_
2537  _In_
2538  WDFUSBINTERFACE UsbInterface,
2539  _In_
2540  UCHAR PipeIndex,
2541  _Out_opt_
2543  );
2544 
2547 WDFUSBPIPE
2548 WdfUsbInterfaceGetConfiguredPipe(
2549  _In_
2550  WDFUSBINTERFACE UsbInterface,
2551  _In_
2552  UCHAR PipeIndex,
2553  _Out_opt_
2555  )
2556 {
2557  return ((PFN_WDFUSBINTERFACEGETCONFIGUREDPIPE) WdfFunctions[WdfUsbInterfaceGetConfiguredPipeTableIndex])(WdfDriverGlobals, UsbInterface, PipeIndex, PipeInfo);
2558 }
2559 
2560 //
2561 // WDF Function: WdfUsbTargetPipeWdmGetPipeHandle
2562 //
2563 typedef
2565 WDFAPI
2567 (STDCALL *PFN_WDFUSBTARGETPIPEWDMGETPIPEHANDLE)(
2568  _In_
2570  _In_
2571  WDFUSBPIPE UsbPipe
2572  );
2573 
2577 WdfUsbTargetPipeWdmGetPipeHandle(
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 
_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:949
_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:1331
struct _WDF_USB_CONTROL_SETUP_PACKET::@3688::@3691::@3694 Bytes
union _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3708 Types
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID * CapabilityType
Definition: wdfusb.h:1611
struct _WDF_USB_CONTROL_SETUP_PACKET::@3688 Packet
#define BMREQUEST_TO_OTHER
Definition: wdfusb.h:83
enum _WDF_USB_DEVICE_TRAITS WDF_USB_DEVICE_TRAITS
#define _Must_inspect_result_
Definition: no_sal2.h:62
_In_ WDFUSBDEVICE _In_ UCHAR InterfaceIndex
Definition: wdfusb.h:2459
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfusb.h:901
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
Definition: ndis.h:1548
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3703::@3704 Descriptor
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG CapabilityBufferLength
Definition: wdfusb.h:1611
struct _WDF_USB_INTERFACE_SETTING_PAIR * PWDF_USB_INTERFACE_SETTING_PAIR
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:306
_WdfUsbTargetDeviceSelectSettingType
Definition: wdfusb.h:135
PUSB_INTERFACE_DESCRIPTOR * InterfaceDescriptors
Definition: wdfusb.h:553
FORCEINLINE BOOLEAN WDF_USB_PIPE_DIRECTION_OUT(_In_ UCHAR EndpointAddress)
Definition: wdfusb.h:846
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
WDFUSBINTERFACE ConfiguredUsbInterface
Definition: wdfusb.h:583
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
PVOID USBD_CONFIGURATION_HANDLE
Definition: usb.h:230
#define TRUE
Definition: types.h:120
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket
Definition: wdfusb.h:1331
union _WDF_USB_REQUEST_COMPLETION_PARAMS::@3696 Parameters
union _WDF_USB_CONTROL_SETUP_PACKET::@3688::@3692 wIndex
enum _WDF_USB_BMREQUEST_DIRECTION WDF_USB_BMREQUEST_DIRECTION
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET TransferOffset
Definition: wdfusb.h:1378
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
Definition: wdfusb.h:2329
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET WriteOffset
Definition: wdfusb.h:1914
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3708::@3709 Descriptor
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Inout_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params
Definition: wdfusb.h:1240
WDFCONTEXT EvtUsbTargetPipeReadCompleteContext
Definition: wdfusb.h:447
LONG NTSTATUS
Definition: precomp.h:26
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
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID _Inout_ PUSHORT ConfigDescriptorLength
Definition: wdfusb.h:1036
#define WDF_EXTERN_C_START
Definition: wdfusb.h:39
union _WDF_USB_CONTROL_SETUP_PACKET::@3688::@3690 bm
_In_ NTSTATUS _In_ USBD_STATUS UsbdStatus
Definition: wdfusb.h:400
_Must_inspect_result_ _In_ WDFUSBPIPE PIPE
Definition: wdfusb.h:2237
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_USB_DEVICE_CREATE_CONFIG Config
Definition: wdfusb.h:936
_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_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipeAttributes
Definition: wdfusb.h:1240
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_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:1075
_Must_inspect_result_ __in FxDeviceBase __in ULONG USBDClientContractVersion
struct _WDF_USB_CONTROL_SETUP_PACKET::@3689 Generic
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS * PWDF_USB_DEVICE_SELECT_CONFIG_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:1331
DriverGlobals
struct _WDF_USB_CONTROL_SETUP_PACKET::@3688::@3690::@3693 Request
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY Memory
Definition: wdfusb.h:1168
_WDF_USB_BMREQUEST_DIRECTION
Definition: wdfusb.h:99
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
Definition: wdfusb.h:1070
_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_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT String
Definition: wdfusb.h:1075
#define BMREQUEST_DEVICE_TO_HOST
Definition: wdfusb.h:55
struct _WDF_USB_REQUEST_COMPLETION_PARAMS WDF_USB_REQUEST_COMPLETION_PARAMS
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1044
#define USB_ENDPOINT_DIRECTION_MASK
Definition: usb100.h:73
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3696::@3699 DeviceUrb
#define _In_opt_
Definition: no_sal2.h:212
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ WDFMEMORY TransferMemory
Definition: wdfusb.h:1378
_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:859
WDF_USB_REQUEST_TYPE Type
Definition: wdfusb.h:327
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * StringMemory
Definition: wdfusb.h:1121
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
Definition: wdfusb.h:708
_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:1075
struct _WDF_USB_PIPE_INFORMATION WDF_USB_PIPE_INFORMATION
_In_ WDFUSBINTERFACE _In_ UCHAR PipeIndex
Definition: wdfusb.h:2538
enum _WDF_USB_REQUEST_TYPE * PWDF_USB_REQUEST_TYPE
FORCEINLINE VOID WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params)
Definition: wdfusb.h:612
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
PWDF_OBJECT_ATTRIBUTES BufferAttributes
Definition: wdfusb.h:437
_In_ WDFUSBPIPE _Out_ PWDF_USB_PIPE_INFORMATION PipeInformation
Definition: wdfusb.h:1741
#define GET_ISO_URB_SIZE(n)
Definition: usbdlib.h:125
WdfUsbTargetDeviceSelectSettingType Type
Definition: wdfusb.h:700
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2430
#define FALSE
Definition: types.h:117
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3703::@3706 SingleInterface
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET ReadOffset
Definition: wdfusb.h:1996
#define WDFAPI
Definition: wdftypes.h:53
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
Definition: wdfusb.h:548
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3696::@3702 PipeUrb
struct _WDF_USB_DEVICE_CREATE_CONFIG WDF_USB_DEVICE_CREATE_CONFIG
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST Request
Definition: wdfusb.h:1070
FORCEINLINE VOID WDF_USB_DEVICE_INFORMATION_INIT(_Out_ PWDF_USB_DEVICE_INFORMATION Udi)
Definition: wdfusb.h:510
_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:1953
FORCEINLINE VOID WDF_USB_DEVICE_CREATE_CONFIG_INIT(_Out_ PWDF_USB_DEVICE_CREATE_CONFIG Config, _In_ ULONG USBDClientContractVersion)
Definition: wdfusb.h:871
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3696::@3700 PipeWrite
FORCEINLINE VOID WDF_USB_PIPE_INFORMATION_INIT(_Out_ PWDF_USB_PIPE_INFORMATION Info)
Definition: wdfusb.h:823
unsigned char BOOLEAN
#define BMREQUEST_HOST_TO_DEVICE
Definition: wdfusb.h:51
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID ConfigDescriptor
Definition: wdfusb.h:1036
#define _Out_
Definition: no_sal2.h:160
struct _WDF_USB_PIPE_INFORMATION * PWDF_USB_PIPE_INFORMATION
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3708::@3710 Interface
#define _IRQL_requires_same_
Definition: driverspecs.h:215
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: wdfusb.h:901
Definition: bufpool.h:45
_In_ WDFMEMORY _In_ size_t NumBytesTransferred
Definition: wdfusb.h:381
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFUSBTARGETDEVICECREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Definition: wdfusb.h:894
WdfUsbTargetDeviceSelectConfigType Type
Definition: wdfusb.h:540
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
struct _WDF_USB_CONTINUOUS_READER_CONFIG WDF_USB_CONTINUOUS_READER_CONFIG
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3696::@3698 DeviceControlTransfer
struct _WDF_USB_DEVICE_CREATE_CONFIG * PWDF_USB_DEVICE_CREATE_CONFIG
PFN_WDF_USB_READER_COMPLETION_ROUTINE EvtUsbTargetPipeReadComplete
Definition: wdfusb.h:442
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:406
_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
USBD_VERSION_INFORMATION UsbdVersionInformation
Definition: wdfusb.h:494
#define BMREQUEST_TO_INTERFACE
Definition: wdfusb.h:75
Status
Definition: gdiplustypes.h:24
#define _Out_opt_
Definition: no_sal2.h:214
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS WDF_USB_DEVICE_SELECT_CONFIG_PARAMS
PWDF_DRIVER_GLOBALS WdfDriverGlobals
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
FORCEINLINE BOOLEAN WDF_USB_PIPE_DIRECTION_IN(_In_ UCHAR EndpointAddress)
Definition: wdfusb.h:834
#define STDCALL
Definition: wdf.h:45
_In_ WDFUSBINTERFACE UsbInterface
Definition: wdfusb.h:2276
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3696::@3697 DeviceString
#define USB_REQUEST_CLEAR_FEATURE
Definition: usb100.h:79
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET UrbMemoryOffset
Definition: wdfusb.h:1572
_In_ WDFCOLLECTION _In_ ULONG Index
union _WDF_USB_CONTROL_SETUP_PACKET::@3688::@3691 wValue
_In_ WDFUSBDEVICE _Out_ PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor
Definition: wdfusb.h:1005
_WDF_USB_BMREQUEST_RECIPIENT
Definition: wdfusb.h:110
enum _WdfUsbTargetDeviceSelectSettingType WdfUsbTargetDeviceSelectSettingType
#define BMREQUEST_VENDOR
Definition: wdfusb.h:67
struct _WDF_USB_DEVICE_INFORMATION WDF_USB_DEVICE_INFORMATION
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
Definition: wdfusb.h:901
#define _Inout_
Definition: no_sal2.h:162
FORCEINLINE WDFIOTARGET WdfUsbTargetDeviceGetIoTarget(_In_ WDFUSBDEVICE UsbDevice)
Definition: wdfusb.h:478
PWDF_USB_INTERFACE_SETTING_PAIR Pairs
Definition: wdfusb.h:596
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
_WdfUsbTargetDeviceSelectConfigType
Definition: wdfusb.h:125
struct _WDF_USB_INTERFACE_SETTING_PAIR WDF_USB_INTERFACE_SETTING_PAIR
unsigned char UCHAR
Definition: xmlstorage.h:181
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY ReadMemory
Definition: wdfusb.h:1996
_WDF_USB_DEVICE_TRAITS
Definition: wdfusb.h:141
#define BMREQUEST_TO_ENDPOINT
Definition: wdfusb.h:79
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3703::@3707 MultiInterface
PFN_WDF_USB_READERS_FAILED EvtUsbTargetPipeReadersFailed
Definition: wdfusb.h:453
LONG USBD_STATUS
Definition: usb.h:165
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3696::@3701 PipeRead
#define NTSTATUS
Definition: precomp.h:20
_Must_inspect_result_ _In_ WDFUSBINTERFACE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipesAttributes
Definition: wdfusb.h:2388
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG NumberOfIsochPackets
Definition: wdfusb.h:1699
_In_ WDFUSBPIPE Pipe
Definition: wdfusb.h:1741
WDF_USB_PIPE_TYPE PipeType
Definition: wdfusb.h:812
#define VOID
Definition: acefi.h:82
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS * PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS
WDFUSBINTERFACE UsbInterface
Definition: wdfusb.h:522
enum _WDF_USB_BMREQUEST_TYPE WDF_USB_BMREQUEST_TYPE
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET Offset
Definition: wdfusb.h:1168
#define WDF_EXTERN_C_END
Definition: wdfusb.h:40
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_opt_ PWDF_USB_PIPE_INFORMATION PipeInfo
Definition: wdfusb.h:2538
unsigned char BYTE
Definition: xxhash.c:193
#define _Deref_out_range_(l, h)
Definition: no_sal2.h:376
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474
union _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3703 Types
_WDF_USB_REQUEST_TYPE
Definition: wdfusb.h:86
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
#define _In_
Definition: no_sal2.h:158
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
#define USB_REQUEST_GET_STATUS
Definition: usb100.h:78
GLuint in
Definition: glext.h:9616
EVT_WDF_USB_READERS_FAILED * PFN_WDF_USB_READERS_FAILED
Definition: wdfusb.h:405
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:361
Definition: usb.h:529
unsigned short USHORT
Definition: pedump.c:61
EVT_WDF_USB_READER_COMPLETION_ROUTINE * PFN_WDF_USB_READER_COMPLETION_ROUTINE
Definition: wdfusb.h:388
_In_ UINT _Out_writes_opt_(cch) LPSTR lpszFile
#define BMREQUEST_STANDARD
Definition: wdfusb.h:59
WDF_USB_CONTROL_SETUP_PACKET SetupPacket
Definition: wdfusb.h:344
#define FORCEINLINE
Definition: wdftypes.h:67
#define USB_REQUEST_SET_FEATURE
Definition: usb100.h:80
_In_ WDFUSBPIPE UsbPipe
Definition: wdfusb.h:2572
unsigned int * PULONG
Definition: retypes.h:1
#define NULL
Definition: types.h:112
union _WDF_USB_CONTROL_SETUP_PACKET * PWDF_USB_CONTROL_SETUP_PACKET
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_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
_In_ WDFUSBINTERFACE Interface
Definition: wdfusb.h:2489
struct _WDF_USB_DEVICE_INFORMATION * PWDF_USB_DEVICE_INFORMATION
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_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY WriteMemory
Definition: wdfusb.h:1914
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_ PULONG CurrentFrameNumber
Definition: wdfusb.h:1300
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_to_opt_(CapabilityBufferLength, *ResultLength)) PVOID CapabilityBuffer
Definition: wdfusb.h:1618
#define BOOLEAN
Definition: pedump.c:73
enum _WDF_USB_PIPE_TYPE WDF_USB_PIPE_TYPE
_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:859
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
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY UrbMemory
Definition: wdfusb.h:1572
enum _WDF_USB_BMREQUEST_RECIPIENT WDF_USB_BMREQUEST_RECIPIENT
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _When_(CapabilityBufferLength==0, _Out_opt_) _When_(CapabilityBufferLength !=0 &&ResultLength
Definition: wdfusb.h:1616
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES StringMemoryAttributes
Definition: wdfusb.h:1121
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR _Out_ PWDF_USB_PIPE_INFORMATION EndpointInfo
Definition: wdfusb.h:2422
union _WDF_USB_CONTROL_SETUP_PACKET WDF_USB_CONTROL_SETUP_PACKET
_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:1075
_WDF_USB_PIPE_TYPE
Definition: wdfusb.h:117
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
_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
typedef _Function_class_(EVT_WDF_USB_READER_COMPLETION_ROUTINE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_USB_READER_COMPLETION_ROUTINE(_In_ WDFUSBPIPE Pipe
struct _WDF_USB_REQUEST_COMPLETION_PARAMS * PWDF_USB_REQUEST_COMPLETION_PARAMS
enum _WdfUsbTargetDeviceSelectConfigType WdfUsbTargetDeviceSelectConfigType
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR EndpointIndex
Definition: wdfusb.h:2422
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
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS WDF_USB_INTERFACE_SELECT_SETTING_PARAMS
FORCEINLINE WDFIOTARGET WdfUsbTargetPipeGetIoTarget(_In_ WDFUSBPIPE Pipe)
Definition: wdfusb.h:777
unsigned short * PUSHORT
Definition: retypes.h:2
#define CONST
Definition: pedump.c:81
struct _WDF_USB_CONTINUOUS_READER_CONFIG * PWDF_USB_CONTINUOUS_READER_CONFIG
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_ PWDF_USB_DEVICE_INFORMATION Information
Definition: wdfusb.h:975
#define BMREQUEST_TO_DEVICE
Definition: wdfusb.h:71
_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:1871
_WDF_USB_BMREQUEST_TYPE
Definition: wdfusb.h:104
_In_ WDFUSBINTERFACE _In_ UCHAR SettingIndex
Definition: wdfusb.h:2300
enum _WDF_USB_REQUEST_TYPE WDF_USB_REQUEST_TYPE
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
PVOID USBD_PIPE_HANDLE
Definition: usb.h:229
#define BMREQUEST_CLASS
Definition: wdfusb.h:63