[适用于 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的驱动程序,则可以从句柄位于 Parameters.DeviceUrb.Buffer中的 URB 获取长度值。
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) |