WDF_USB_REQUEST_COMPLETION_PARAMS结构 (wdfusb.h)

[适用于 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)

另请参阅

CompletionRoutine

WDF_REQUEST_COMPLETION_PARAMS

WdfRequestGetCompletionParams