34 #define WDF_EXTERN_C extern "C"
35 #define WDF_EXTERN_C_START extern "C" {
36 #define WDF_EXTERN_C_END }
39 #define WDF_EXTERN_C_START
40 #define WDF_EXTERN_C_END
48#if (NTDDI_VERSION >= NTDDI_WIN2K)
50#ifndef BMREQUEST_HOST_TO_DEVICE
51#define BMREQUEST_HOST_TO_DEVICE 0
54#ifndef BMREQUEST_DEVICE_TO_HOST
55#define BMREQUEST_DEVICE_TO_HOST 1
58#ifndef BMREQUEST_STANDARD
59#define BMREQUEST_STANDARD 0
62#ifndef BMREQUEST_CLASS
63#define BMREQUEST_CLASS 1
66#ifndef BMREQUEST_VENDOR
67#define BMREQUEST_VENDOR 2
70#ifndef BMREQUEST_TO_DEVICE
71#define BMREQUEST_TO_DEVICE 0
74#ifndef BMREQUEST_TO_INTERFACE
75#define BMREQUEST_TO_INTERFACE 1
78#ifndef BMREQUEST_TO_ENDPOINT
79#define BMREQUEST_TO_ENDPOINT 2
82#ifndef BMREQUEST_TO_OTHER
83#define BMREQUEST_TO_OTHER 3
217 Packet->Packet.bm.Request.Recipient = (
BYTE) Recipient;
241 Packet->Packet.bm.Request.Recipient = (
BYTE) Recipient;
265 Packet->Packet.bm.Request.Recipient = (
BYTE) Recipient;
288 Packet->Packet.bm.Request.Recipient = (
BYTE) BmRequestRecipient;
297 Packet->Packet.wValue.Value = FeatureSelector;
315 Packet->Packet.bm.Request.Recipient = (
BYTE) BmRequestRecipient;
319 Packet->Packet.wValue.Value = 0;
377EVT_WDF_USB_READER_COMPLETION_ROUTINE(
396EVT_WDF_USB_READERS_FAILED(
464 _In_ size_t TransferLength
471 Config->EvtUsbTargetPipeReadComplete = EvtUsbTargetPipeReadComplete;
472 Config->EvtUsbTargetPipeReadCompleteContext = EvtUsbTargetPipeReadCompleteContext;
473 Config->TransferLength = TransferLength;
634 if (SettingPairs !=
NULL && NumberInterfaces != 0) {
637 Params->Types.MultiInterface.NumberInterfaces = NumberInterfaces;
638 Params->Types.MultiInterface.Pairs = SettingPairs;
659 Params->Types.Descriptor.InterfaceDescriptors = InterfaceDescriptors;
660 Params->Types.Descriptor.NumInterfaceDescriptors = NumInterfaceDescriptors;
674 Params->Types.Urb.Urb = Urb;
758 Params->Types.Urb.Urb = Urb;
781 return (WDFIOTARGET)
Pipe;
886#pragma warning(disable:28285)
897(
STDCALL *PFN_WDFUSBTARGETDEVICECREATE)(
912WdfUsbTargetDeviceCreate(
932(
STDCALL *PFN_WDFUSBTARGETDEVICECREATEWITHPARAMETERS)(
949WdfUsbTargetDeviceCreateWithParameters(
971(
STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVEINFORMATION)(
984WdfUsbTargetDeviceRetrieveInformation(
1001(
STDCALL *PFN_WDFUSBTARGETDEVICEGETDEVICEDESCRIPTOR)(
1013WdfUsbTargetDeviceGetDeviceDescriptor(
1031(
STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVECONFIGDESCRIPTOR)(
1046WdfUsbTargetDeviceRetrieveConfigDescriptor(
1066(
STDCALL *PFN_WDFUSBTARGETDEVICEQUERYSTRING)(
1089WdfUsbTargetDeviceQueryString(
1117(
STDCALL *PFN_WDFUSBTARGETDEVICEALLOCANDQUERYSTRING)(
1138WdfUsbTargetDeviceAllocAndQueryString(
1164(
STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORSTRING)(
1185WdfUsbTargetDeviceFormatRequestForString(
1210(
STDCALL *PFN_WDFUSBTARGETDEVICEGETNUMINTERFACES)(
1220WdfUsbTargetDeviceGetNumInterfaces(
1236(
STDCALL *PFN_WDFUSBTARGETDEVICESELECTCONFIG)(
1251WdfUsbTargetDeviceSelectConfig(
1270(
STDCALL *PFN_WDFUSBTARGETDEVICEWDMGETCONFIGURATIONHANDLE)(
1280WdfUsbTargetDeviceWdmGetConfigurationHandle(
1296(
STDCALL *PFN_WDFUSBTARGETDEVICERETRIEVECURRENTFRAMENUMBER)(
1309WdfUsbTargetDeviceRetrieveCurrentFrameNumber(
1327(
STDCALL *PFN_WDFUSBTARGETDEVICESENDCONTROLTRANSFERSYNCHRONOUSLY)(
1348WdfUsbTargetDeviceSendControlTransferSynchronously(
1374(
STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCONTROLTRANSFER)(
1393WdfUsbTargetDeviceFormatRequestForControlTransfer(
1417(
STDCALL *PFN_WDFUSBTARGETDEVICEISCONNECTEDSYNCHRONOUS)(
1428WdfUsbTargetDeviceIsConnectedSynchronous(
1444(
STDCALL *PFN_WDFUSBTARGETDEVICERESETPORTSYNCHRONOUSLY)(
1455WdfUsbTargetDeviceResetPortSynchronously(
1471(
STDCALL *PFN_WDFUSBTARGETDEVICECYCLEPORTSYNCHRONOUSLY)(
1482WdfUsbTargetDeviceCyclePortSynchronously(
1498(
STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCYCLEPORT)(
1511WdfUsbTargetDeviceFormatRequestForCyclePort(
1529(
STDCALL *PFN_WDFUSBTARGETDEVICESENDURBSYNCHRONOUSLY)(
1546WdfUsbTargetDeviceSendUrbSynchronously(
1568(
STDCALL *PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORURB)(
1585WdfUsbTargetDeviceFormatRequestForUrb(
1607(
STDCALL *PFN_WDFUSBTARGETDEVICEQUERYUSBCAPABILITY)(
1619 PVOID CapabilityBuffer,
1629WdfUsbTargetDeviceQueryUsbCapability(
1639 PVOID CapabilityBuffer,
1656(
STDCALL *PFN_WDFUSBTARGETDEVICECREATEURB)(
1673WdfUsbTargetDeviceCreateUrb(
1695(
STDCALL *PFN_WDFUSBTARGETDEVICECREATEISOCHURB)(
1714WdfUsbTargetDeviceCreateIsochUrb(
1737(
STDCALL *PFN_WDFUSBTARGETPIPEGETINFORMATION)(
1749WdfUsbTargetPipeGetInformation(
1766(
STDCALL *PFN_WDFUSBTARGETPIPEISINENDPOINT)(
1776WdfUsbTargetPipeIsInEndpoint(
1791(
STDCALL *PFN_WDFUSBTARGETPIPEISOUTENDPOINT)(
1801WdfUsbTargetPipeIsOutEndpoint(
1816(
STDCALL *PFN_WDFUSBTARGETPIPEGETTYPE)(
1826WdfUsbTargetPipeGetType(
1841(
STDCALL *PFN_WDFUSBTARGETPIPESETNOMAXIMUMPACKETSIZECHECK)(
1851WdfUsbTargetPipeSetNoMaximumPacketSizeCheck(
1867(
STDCALL *PFN_WDFUSBTARGETPIPEWRITESYNCHRONOUSLY)(
1886WdfUsbTargetPipeWriteSynchronously(
1910(
STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORWRITE)(
1927WdfUsbTargetPipeFormatRequestForWrite(
1949(
STDCALL *PFN_WDFUSBTARGETPIPEREADSYNCHRONOUSLY)(
1968WdfUsbTargetPipeReadSynchronously(
1992(
STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORREAD)(
2009WdfUsbTargetPipeFormatRequestForRead(
2031(
STDCALL *PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER)(
2044WdfUsbTargetPipeConfigContinuousReader(
2062(
STDCALL *PFN_WDFUSBTARGETPIPEABORTSYNCHRONOUSLY)(
2077WdfUsbTargetPipeAbortSynchronously(
2097(
STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORABORT)(
2110WdfUsbTargetPipeFormatRequestForAbort(
2128(
STDCALL *PFN_WDFUSBTARGETPIPERESETSYNCHRONOUSLY)(
2143WdfUsbTargetPipeResetSynchronously(
2163(
STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORRESET)(
2176WdfUsbTargetPipeFormatRequestForReset(
2194(
STDCALL *PFN_WDFUSBTARGETPIPESENDURBSYNCHRONOUSLY)(
2203 _In_reads_(_Inexpressible_(
"union bug in SAL"))
2211WdfUsbTargetPipeSendUrbSynchronously(
2233(
STDCALL *PFN_WDFUSBTARGETPIPEFORMATREQUESTFORURB)(
2250WdfUsbTargetPipeFormatRequestForUrb(
2271(
STDCALL *PFN_WDFUSBINTERFACEGETINTERFACENUMBER)(
2281WdfUsbInterfaceGetInterfaceNumber(
2296(
STDCALL *PFN_WDFUSBINTERFACEGETNUMENDPOINTS)(
2308WdfUsbInterfaceGetNumEndpoints(
2325(
STDCALL *PFN_WDFUSBINTERFACEGETDESCRIPTOR)(
2339WdfUsbInterfaceGetDescriptor(
2358(
STDCALL *PFN_WDFUSBINTERFACEGETNUMSETTINGS)(
2368WdfUsbInterfaceGetNumSettings(
2384(
STDCALL *PFN_WDFUSBINTERFACESELECTSETTING)(
2399WdfUsbInterfaceSelectSetting(
2418(
STDCALL *PFN_WDFUSBINTERFACEGETENDPOINTINFORMATION)(
2434WdfUsbInterfaceGetEndpointInformation(
2455(
STDCALL *PFN_WDFUSBTARGETDEVICEGETINTERFACE)(
2467WdfUsbTargetDeviceGetInterface(
2484(
STDCALL *PFN_WDFUSBINTERFACEGETCONFIGUREDSETTINGINDEX)(
2494WdfUsbInterfaceGetConfiguredSettingIndex(
2509(
STDCALL *PFN_WDFUSBINTERFACEGETNUMCONFIGUREDPIPES)(
2519WdfUsbInterfaceGetNumConfiguredPipes(
2534(
STDCALL *PFN_WDFUSBINTERFACEGETCONFIGUREDPIPE)(
2548WdfUsbInterfaceGetConfiguredPipe(
2567(
STDCALL *PFN_WDFUSBTARGETPIPEWDMGETPIPEHANDLE)(
2577WdfUsbTargetPipeWdmGetPipeHandle(
#define _IRQL_requires_same_
_Must_inspect_result_ __in FxDeviceBase __in ULONG USBDClientContractVersion
#define _Function_class_(x)
#define _Deref_out_range_(lb, ub)
#define _Out_writes_opt_(size)
#define _Must_inspect_result_
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
_In_ ULONG _In_ ULONG Offset
WDFCONTEXT EvtUsbTargetPipeReadCompleteContext
PFN_WDF_USB_READER_COMPLETION_ROUTINE EvtUsbTargetPipeReadComplete
PFN_WDF_USB_READERS_FAILED EvtUsbTargetPipeReadersFailed
PWDF_OBJECT_ATTRIBUTES BufferAttributes
ULONG USBDClientContractVersion
UCHAR NumberConfiguredPipes
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
WdfUsbTargetDeviceSelectConfigType Type
WDFUSBINTERFACE ConfiguredUsbInterface
ULONG NumInterfaceDescriptors
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3906::@3909 SingleInterface
PUSB_INTERFACE_DESCRIPTOR * InterfaceDescriptors
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3906::@3907 Descriptor
union _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3906 Types
UCHAR NumberOfConfiguredInterfaces
PWDF_USB_INTERFACE_SETTING_PAIR Pairs
struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS::@3906::@3910 MultiInterface
WdfUsbTargetDeviceSelectSettingType Type
PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3911::@3912 Descriptor
struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3911::@3913 Interface
union _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS::@3911 Types
WDFUSBINTERFACE UsbInterface
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3899::@3903 PipeWrite
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3899::@3905 PipeUrb
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3899::@3901 DeviceControlTransfer
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3899::@3904 PipeRead
WDF_USB_CONTROL_SETUP_PACKET SetupPacket
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3899::@3900 DeviceString
struct _WDF_USB_REQUEST_COMPLETION_PARAMS::@3899::@3902 DeviceUrb
union _WDF_USB_REQUEST_COMPLETION_PARAMS::@3899 Parameters
WDF_USB_REQUEST_TYPE Type
#define RtlZeroMemory(Destination, Length)
struct _WDF_USB_CONTROL_SETUP_PACKET::@3891::@3894::@3897 Bytes
union _WDF_USB_CONTROL_SETUP_PACKET::@3891::@3893 bm
union _WDF_USB_CONTROL_SETUP_PACKET::@3891::@3894 wValue
struct _WDF_USB_CONTROL_SETUP_PACKET::@3892 Generic
struct _WDF_USB_CONTROL_SETUP_PACKET::@3891::@3893::@3896 Request
struct _WDF_USB_CONTROL_SETUP_PACKET::@3891 Packet
union _WDF_USB_CONTROL_SETUP_PACKET::@3891::@3895 wIndex
#define USB_REQUEST_GET_STATUS
#define USB_REQUEST_SET_FEATURE
#define USB_ENDPOINT_DIRECTION_MASK
#define USB_REQUEST_CLEAR_FEATURE
PVOID USBD_CONFIGURATION_HANDLE
#define GET_ISO_URB_SIZE(n)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
_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
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfUsbTargetDeviceIsConnectedSynchronousTableIndex
@ WdfUsbInterfaceGetNumSettingsTableIndex
@ WdfUsbTargetDeviceRetrieveConfigDescriptorTableIndex
@ WdfUsbTargetDeviceRetrieveInformationTableIndex
@ WdfUsbTargetPipeSetNoMaximumPacketSizeCheckTableIndex
@ WdfUsbTargetDeviceAllocAndQueryStringTableIndex
@ WdfUsbTargetDeviceRetrieveCurrentFrameNumberTableIndex
@ WdfUsbTargetPipeWriteSynchronouslyTableIndex
@ WdfUsbTargetPipeGetInformationTableIndex
@ WdfUsbInterfaceGetDescriptorTableIndex
@ WdfUsbTargetDeviceSendControlTransferSynchronouslyTableIndex
@ WdfUsbTargetPipeSendUrbSynchronouslyTableIndex
@ WdfUsbTargetPipeIsOutEndpointTableIndex
@ WdfUsbTargetPipeFormatRequestForReadTableIndex
@ WdfUsbTargetDeviceFormatRequestForUrbTableIndex
@ WdfUsbTargetDeviceCreateWithParametersTableIndex
@ WdfUsbTargetDeviceGetInterfaceTableIndex
@ WdfUsbTargetPipeFormatRequestForResetTableIndex
@ WdfUsbInterfaceSelectSettingTableIndex
@ WdfUsbTargetPipeFormatRequestForAbortTableIndex
@ WdfUsbTargetDeviceFormatRequestForControlTransferTableIndex
@ WdfUsbInterfaceGetConfiguredSettingIndexTableIndex
@ WdfUsbInterfaceGetNumEndpointsTableIndex
@ WdfUsbTargetDeviceResetPortSynchronouslyTableIndex
@ WdfUsbTargetDeviceQueryUsbCapabilityTableIndex
@ WdfUsbTargetDeviceQueryStringTableIndex
@ WdfUsbTargetDeviceCyclePortSynchronouslyTableIndex
@ WdfUsbTargetPipeGetTypeTableIndex
@ WdfUsbTargetPipeReadSynchronouslyTableIndex
@ WdfUsbInterfaceGetConfiguredPipeTableIndex
@ WdfUsbTargetDeviceFormatRequestForCyclePortTableIndex
@ WdfUsbTargetDeviceSendUrbSynchronouslyTableIndex
@ WdfUsbTargetDeviceCreateUrbTableIndex
@ WdfUsbTargetDeviceGetNumInterfacesTableIndex
@ WdfUsbTargetPipeFormatRequestForWriteTableIndex
@ WdfUsbTargetDeviceCreateTableIndex
@ WdfUsbTargetPipeResetSynchronouslyTableIndex
@ WdfUsbTargetDeviceFormatRequestForStringTableIndex
@ WdfUsbTargetPipeWdmGetPipeHandleTableIndex
@ WdfUsbTargetPipeIsInEndpointTableIndex
@ WdfUsbTargetPipeConfigContinuousReaderTableIndex
@ WdfUsbTargetDeviceCreateIsochUrbTableIndex
@ WdfUsbTargetDeviceSelectConfigTableIndex
@ WdfUsbInterfaceGetInterfaceNumberTableIndex
@ WdfUsbTargetPipeAbortSynchronouslyTableIndex
@ WdfUsbTargetDeviceWdmGetConfigurationHandleTableIndex
@ WdfUsbTargetPipeFormatRequestForUrbTableIndex
@ WdfUsbInterfaceGetEndpointInformationTableIndex
@ WdfUsbInterfaceGetNumConfiguredPipesTableIndex
@ WdfUsbTargetDeviceGetDeviceDescriptorTableIndex
_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
_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
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY Memory
EVT_WDF_USB_READERS_FAILED * PFN_WDF_USB_READERS_FAILED
_Must_inspect_result_ _In_ WDFUSBPIPE PIPE
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_opt_ PWDF_USB_PIPE_INFORMATION PipeInfo
_In_ WDFUSBINTERFACE UsbInterface
struct _WDF_USB_REQUEST_COMPLETION_PARAMS * PWDF_USB_REQUEST_COMPLETION_PARAMS
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipeAttributes
VOID FORCEINLINE WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_DECONFIG(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
#define BMREQUEST_TO_INTERFACE
FORCEINLINE VOID WDF_USB_PIPE_INFORMATION_INIT(_Out_ PWDF_USB_PIPE_INFORMATION Info)
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG CapabilityBufferLength
_WDF_USB_BMREQUEST_DIRECTION
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)
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY ReadMemory
#define BMREQUEST_TO_DEVICE
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY WriteMemory
_In_ WDFUSBINTERFACE _In_ UCHAR PipeIndex
_In_ WDFUSBINTERFACE Interface
_In_ WDFUSBDEVICE _Out_ PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor
FORCEINLINE WDFIOTARGET WdfUsbTargetPipeGetIoTarget(_In_ WDFUSBPIPE Pipe)
enum _WDF_USB_BMREQUEST_DIRECTION WDF_USB_BMREQUEST_DIRECTION
_In_ NTSTATUS _In_ USBD_STATUS UsbdStatus
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY UrbMemory
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
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)
enum _WdfUsbTargetDeviceSelectConfigType WdfUsbTargetDeviceSelectConfigType
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID ConfigDescriptor
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET TransferOffset
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)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Inout_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params
FORCEINLINE VOID WDF_USB_DEVICE_CREATE_CONFIG_INIT(_Out_ PWDF_USB_DEVICE_CREATE_CONFIG Config, _In_ ULONG USBDClientContractVersion)
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET UrbMemoryOffset
_Must_inspect_result_ _In_ WDFUSBPIPE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_opt_ PWDF_MEMORY_DESCRIPTOR _Out_opt_ PULONG BytesRead
@ WDF_USB_DEVICE_TRAIT_SELF_POWERED
@ WDF_USB_DEVICE_TRAIT_AT_HIGH_SPEED
@ WDF_USB_DEVICE_TRAIT_REMOTE_WAKE_CAPABLE
FORCEINLINE BOOLEAN WDF_USB_PIPE_DIRECTION_IN(_In_ UCHAR EndpointAddress)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG NumberOfIsochPackets
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES StringMemoryAttributes
struct _WDF_USB_DEVICE_CREATE_CONFIG * PWDF_USB_DEVICE_CREATE_CONFIG
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_ PULONG CurrentFrameNumber
FORCEINLINE VOID WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_URB(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params, _In_ PURB Urb)
_WDF_USB_BMREQUEST_RECIPIENT
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
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 !
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_USB_DEVICE_CREATE_CONFIG Config
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID _Inout_ PUSHORT ConfigDescriptorLength
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
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT NumCharacters
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID * CapabilityType
FORCEINLINE VOID WDF_USB_DEVICE_INFORMATION_INIT(_Out_ PWDF_USB_DEVICE_INFORMATION Udi)
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
#define BMREQUEST_TO_OTHER
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
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY _Outptr_opt_result_bytebuffer_(sizeof(URB)) PURB *Urb)
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFUSBTARGETDEVICECREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
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)
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR _Out_ PWDF_USB_PIPE_INFORMATION EndpointInfo
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_reads_(_Inexpressible_("union bug in SAL")) PURB Urb)
FORCEINLINE VOID WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE(_Out_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params)
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
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)
#define BMREQUEST_HOST_TO_DEVICE
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR StringIndex
struct _WDF_USB_DEVICE_CREATE_CONFIG WDF_USB_DEVICE_CREATE_CONFIG
@ WdfUsbPipeTypeInterrupt
@ WdfUsbPipeTypeIsochronous
#define BMREQUEST_TO_ENDPOINT
struct _WDF_USB_CONTINUOUS_READER_CONFIG * PWDF_USB_CONTINUOUS_READER_CONFIG
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST Request
#define BMREQUEST_STANDARD
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)
@ WdfUsbRequestTypeDeviceControlTransfer
@ WdfUsbRequestTypePipeReset
@ WdfUsbRequestTypePipeWrite
@ WdfUsbRequestTypePipeRead
@ WdfUsbRequestTypeInvalid
@ WdfUsbRequestTypePipeUrb
@ WdfUsbRequestTypePipeAbort
@ WdfUsbRequestTypeDeviceUrb
@ WdfUsbRequestTypeDeviceString
@ WdfUsbRequestTypeNoFormat
_WdfUsbTargetDeviceSelectSettingType
@ WdfUsbInterfaceSelectSettingTypeUrb
@ WdfUsbInterfaceSelectSettingTypeDescriptor
@ WdfUsbInterfaceSelectSettingTypeSetting
_In_ WDFMEMORY _In_ size_t NumBytesTransferred
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET ReadOffset
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
_WdfUsbTargetDeviceSelectConfigType
@ WdfUsbTargetDeviceSelectConfigTypeUrb
@ WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs
@ WdfUsbTargetDeviceSelectConfigTypeSingleInterface
@ WdfUsbTargetDeviceSelectConfigTypeInterfacesDescriptor
@ WdfUsbTargetDeviceSelectConfigTypeDeconfig
@ WdfUsbTargetDeviceSelectConfigTypeInvalid
@ WdfUsbTargetDeviceSelectConfigTypeMultiInterface
FORCEINLINE WDFIOTARGET WdfUsbTargetDeviceGetIoTarget(_In_ WDFUSBDEVICE UsbDevice)
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET WriteOffset
enum _WDF_USB_REQUEST_TYPE WDF_USB_REQUEST_TYPE
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_ PWDF_USB_DEVICE_INFORMATION Information
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR EndpointIndex
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * StringMemory
EVT_WDF_USB_READER_COMPLETION_ROUTINE * PFN_WDF_USB_READER_COMPLETION_ROUTINE
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
_In_ WDFUSBPIPE _Out_ PWDF_USB_PIPE_INFORMATION PipeInformation
FORCEINLINE VOID WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_SETTING(_Out_ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params, _In_ UCHAR SettingIndex)
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)
FORCEINLINE BOOLEAN WDF_USB_PIPE_DIRECTION_OUT(_In_ UCHAR EndpointAddress)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT String
_In_ WDFUSBDEVICE _In_ UCHAR InterfaceIndex
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
_Must_inspect_result_ _In_ WDFUSBINTERFACE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipesAttributes
FORCEINLINE VOID WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_DESCRIPTOR(_Out_ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params, _In_ PUSB_INTERFACE_DESCRIPTOR Interface)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_to_opt_(CapabilityBufferLength, *ResultLength)) PVOID CapabilityBuffer
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
enum _WDF_USB_BMREQUEST_RECIPIENT WDF_USB_BMREQUEST_RECIPIENT
struct _WDF_USB_CONTINUOUS_READER_CONFIG WDF_USB_CONTINUOUS_READER_CONFIG
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
#define BMREQUEST_DEVICE_TO_HOST
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)
struct _WDF_USB_PIPE_INFORMATION * PWDF_USB_PIPE_INFORMATION
_In_ WDFUSBINTERFACE _In_ UCHAR SettingIndex
FORCEINLINE VOID WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_URB(_Out_ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params, _In_ PURB Urb)