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을 호출한 경우 이 멤버는 유니코드 문자열을 수신하는 메모리 개체에 대한 드라이버 제공 핸들을 포함합니다.

Parameters.DeviceString.LangID

드라이버가 WdfUsbTargetDeviceFormatRequestForString을 호출한 경우 이 멤버에는 드라이버 제공 언어 식별자가 포함됩니다.

Parameters.DeviceString.StringIndex

드라이버가 WdfUsbTargetDeviceFormatRequestForString을 호출한 경우 이 멤버에는 드라이버 제공 문자열 인덱스가 포함됩니다.

Parameters.DeviceString.RequiredSize

드라이버가 디바이스의 유니코드 문자열을 가져오는 메서드를 호출한 경우( 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