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)

另请参阅

CompletionRoutine

WDF_REQUEST_COMPLETION_PARAMS

WdfRequestGetCompletionParams