wdfusb.h) (WDF_USB_REQUEST_COMPLETION_PARAMS 结构
[适用于 KMDF 和 UMDF]
WDF_USB_REQUEST_COMPLETION_PARAMS 结构包含与 USB 设备的 I/O 请求完成相关联的参数。
语法
typedef struct _WDF_USB_REQUEST_COMPLETION_PARAMS {
USBD_STATUS UsbdStatus;
WDF_USB_REQUEST_TYPE Type;
union {
struct {
WDFMEMORY Buffer;
USHORT LangID;
UCHAR StringIndex;
UCHAR RequiredSize;
} DeviceString;
struct {
WDFMEMORY Buffer;
WDF_USB_CONTROL_SETUP_PACKET SetupPacket;
ULONG Length;
} DeviceControlTransfer;
struct {
WDFMEMORY Buffer;
} DeviceUrb;
struct {
WDFMEMORY Buffer;
size_t Length;
size_t Offset;
} PipeWrite;
struct {
WDFMEMORY Buffer;
size_t Length;
size_t Offset;
} PipeRead;
struct {
WDFMEMORY Buffer;
} PipeUrb;
} Parameters;
} WDF_USB_REQUEST_COMPLETION_PARAMS, *PWDF_USB_REQUEST_COMPLETION_PARAMS;
成员
UsbdStatus
I/O 目标返回 的USBD_STATUS类型状态值。
Type
标识请求类型的 WDF_USB_REQUEST_TYPE类型值。
Parameters
Parameters.DeviceString
Parameters.DeviceString.Buffer
如果驱动程序已调用 WdfUsbTargetDeviceFormatRequestForString,则此成员包含驱动程序提供的用于接收 Unicode 字符串的内存对象的句柄。
Parameters.DeviceString.LangID
如果驱动程序已调用 WdfUsbTargetDeviceFormatRequestForString,则此成员包含驱动程序提供的语言标识符。
Parameters.DeviceString.StringIndex
如果驱动程序已调用 WdfUsbTargetDeviceFormatRequestForString,则此成员包含驱动程序提供的字符串索引。
Parameters.DeviceString.RequiredSize
如果驱动程序调用了获取 设备 Unicode 字符串 的任何方法 (WdfUsbTargetDeviceFormatRequestForUrb) ,则此成员包含 Parameters.DeviceString.Buffer 指定的所需缓冲区大小。
如果驱动程序名为 WdfUsbTargetDeviceFormatRequestForUrb,则它可以从句柄位于 Parameters.DeviceUrb.Buffer 的 URB 中获取所需的大小值。
Parameters.DeviceControlTransfer
Parameters.DeviceControlTransfer.Buffer
如果驱动程序已调用 WdfUsbTargetDeviceFormatRequestForControlTransfer,则此成员包含驱动程序提供的用于接收输入或输出数据的内存对象的句柄。
Parameters.DeviceControlTransfer.SetupPacket
如果驱动程序已调用 WdfUsbTargetDeviceFormatRequestForControlTransfer,则此成员包含驱动程序提供的 WDF_USB_CONTROL_SETUP_PACKET 结构的地址。
Parameters.DeviceControlTransfer.Length
如果驱动程序调用了除 WdfUsbTargetDeviceFormatRequestForUrb) 以外的任何发送控件传输 (的方法,则此成员包含已发送或接收的字节数。
如果驱动程序名为 WdfUsbTargetDeviceFormatRequestForUrb,则它可以从 URB 获取其句柄在 Parameters.DeviceUrb.Buffer 中的长度值。
Parameters.DeviceUrb
Parameters.DeviceUrb.Buffer
如果驱动程序已调用 WdfUsbTargetDeviceFormatRequestForUrb,则此成员包含驱动程序提供的包含 URB 结构的内存对象的句柄。
Parameters.PipeWrite
Parameters.PipeWrite.Buffer
如果驱动程序已调用 WdfUsbTargetPipeFormatRequestForWrite,则此成员包含驱动程序提供的对写入管道的内存对象的句柄。
Parameters.PipeWrite.Length
如果驱动程序调用了除 WdfUsbTargetDeviceFormatRequestForUrb () 以外的任何写入管道的方法,则此成员包含已发送的字节数。
如果驱动程序名为 WdfUsbTargetDeviceFormatRequestForUrb,则它可以从句柄位于 Parameters.PipeUrb.Buffer 的 URB 中获取长度值。
Parameters.PipeWrite.Offset
如果驱动程序已调用 WdfUsbTargetPipeFormatRequestForWrite,则此成员包含驱动程序提供的缓冲区偏移量。
Parameters.PipeRead
Parameters.PipeRead.Buffer
如果驱动程序已调用 WdfUsbTargetPipeFormatRequestForRead,则此成员包含驱动程序提供的内存对象的句柄,该对象包含从管道中读取的数据。
Parameters.PipeRead.Length
如果驱动程序调用了 从管道中读取 的任何方法, (WdfUsbTargetDeviceFormatRequestForUrb) 除外,则此成员包含接收的字节数。
如果驱动程序名为 WdfUsbTargetDeviceFormatRequestForUrb,则它可以从句柄位于 Parameters.PipeUrb.Buffer 的 URB 中获取长度值。
Parameters.PipeRead.Offset
如果驱动程序已调用 WdfUsbTargetPipeFormatRequestForRead,则此成员包含驱动程序提供的缓冲区偏移量。
Parameters.PipeUrb
Parameters.PipeUrb.Buffer
如果驱动程序已调用 WdfUsbTargetPipeFormatRequestForUrb,则此成员包含驱动程序提供的包含 URB 结构的内存对象的句柄。
注解
WDF_USB_REQUEST_COMPLETION_PARAMS 结构是 WDF_REQUEST_COMPLETION_PARAMS 结构的成员。
要求
要求 | 值 |
---|---|
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfusb.h (包括 Wdfusb.h) |