[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.BufferURB에서 필요한 크기 값을 가져올 수 있습니다.
Parameters.DeviceControlTransfer
Parameters.DeviceControlTransfer.Buffer
드라이버가 WdfUsbTargetDeviceFormatRequestForControlTransfer호출한 경우 이 멤버는 입력 또는 출력 데이터를 수신하는 메모리 개체에 대한 드라이버 제공 핸들을 포함합니다.
Parameters.DeviceControlTransfer.SetupPacket
드라이버가 WdfUsbTargetDeviceFormatRequestForControlTransfer호출한 경우 이 멤버는 드라이버가 제공한 WDF_USB_CONTROL_SETUP_PACKET 구조체의 주소를 포함합니다.
Parameters.DeviceControlTransfer.Length
드라이버가 컨트롤 전송 보내는 메서드를 호출한 경우(WdfUsbTargetDeviceFormatRequestForUrb제외) 이 멤버는 전송되거나 수신된 바이트 수를 포함합니다.
드라이버가 WdfUsbTargetDeviceFormatRequestForUrb호출하는 경우 핸들이 Parameters.DeviceUrb.BufferURB에서 길이 값을 가져올 수 있습니다.
Parameters.DeviceUrb
Parameters.DeviceUrb.Buffer
드라이버가 WdfUsbTargetDeviceFormatRequestForUrb호출한 경우 이 멤버에는 URB 구조체가 포함된 메모리 개체에 대한 드라이버 제공 핸들이 포함됩니다.
Parameters.PipeWrite
Parameters.PipeWrite.Buffer
드라이버가 WdfUsbTargetPipeFormatRequestForWrite호출한 경우 이 멤버에는 파이프에 기록된 메모리 개체에 대한 드라이버 제공 핸들이 포함됩니다.
Parameters.PipeWrite.Length
드라이버가 파이프 쓰는 메서드 호출한 경우(WdfUsbTargetDeviceFormatRequestForUrb제외) 이 멤버는 전송된 바이트 수를 포함합니다.
드라이버가 WdfUsbTargetDeviceFormatRequestForUrb호출하는 경우 핸들이 Parameters.PipeUrb.BufferURB에서 길이 값을 가져올 수 있습니다.
Parameters.PipeWrite.Offset
드라이버가 WdfUsbTargetPipeFormatRequestForWrite호출한 경우 이 멤버는 드라이버 제공 버퍼 오프셋을 포함합니다.
Parameters.PipeRead
Parameters.PipeRead.Buffer
드라이버가 WdfUsbTargetPipeFormatRequestForRead호출한 경우 이 멤버는 파이프에서 읽은 데이터를 포함하는 메모리 개체에 대한 드라이버 제공 핸들을 포함합니다.
Parameters.PipeRead.Length
드라이버가 파이프에서 읽는 메서드를 호출한 경우 컨트롤 전송을 보냅니다(WdfUsbTargetDeviceFormatRequestForUrb 제외). 이 멤버는 수신된 바이트 수를 포함합니다.
드라이버가 WdfUsbTargetDeviceFormatRequestForUrb호출하는 경우 핸들이 Parameters.PipeUrb.BufferURB에서 길이 값을 가져올 수 있습니다.
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 포함) |