EFI_USBFN_IO_PROTOCOL. 전송
Transfer 함수는 지정된 엔드포인트의 호스트 간 데이터 전송을 처리합니다.
| Direction | 설명 |
|---|---|
| EfiUsbEndpointDirectionDeviceTx | 지정된 엔드포인트에서 전송 전송을 시작하고 즉시 반환합니다. |
| EfiUsbEndpointDirectionDeviceRx | 지정된 엔드포인트에서 수신 전송을 시작하고 사용 가능한 데이터로 즉시 반환합니다. |
구문
typedef
EFI_STATUS
(EFIAPI *EFI_USBFN_IO_TRANSFER) (
IN EFI_USBFN_IO_PROTOCOL *This,
IN UINT8 EndpointIndex,
IN EFI_USBFN_ENDPOINT_DIRECTION Direction,
IN OUT UINTN *BufferSize,
IN OUT VOID *Buffer
);
매개 변수
This
EFI_USBFN_IO_PROTOCOL 인스턴스에 대한 포인터입니다.
EndpointIndex
TX 또는 RX 전송이 수행되어야 하는 엔드포인트를 나타냅니다.
방향
엔드포인트의 방향입니다. 자세한 내용은 EFI_USBFN_ENDPOINT_DIRECTION 참조하세요.
BufferSize
방향이 EfiUsbEndpointDirectionDeviceRx인 경우: 입력에서 버퍼의 크기(바이트)입니다. 출력에서 버퍼에 반환된 데이터의 양(바이트)입니다. Direction가 EfiUsbEndpointDirectionDeviceTx인 경우: 입력에서 버퍼의 크기(바이트)입니다. 출력에서 실제로 전송되는 데이터의 양(바이트)입니다.
Buffer
Direction가 EfiUsbEndpointDirectionDeviceRx:수신된 데이터를 반환하는 버퍼인 경우 방향이 EfiUsbEndpointDirectionDeviceTx인 경우: 전송할 데이터가 포함된 버퍼입니다.
참고
이 버퍼는 AllocateTransferBuffer 및 FreeTransferBuffer 함수를 사용하여 할당되고 해제됩니다. EfiUsbMsgEndpointStatusChangedRx 또는 EfiUsbMsgEndpointStatusChangedTx 메시지가 메시지 페이로드의 일부로 전송 버퍼의 주소와 함께 수신될 때까지 이 함수의 호출자는 버퍼를 해제하거나 다시 사용하지 않아야 합니다. EFI_USBFN_IO_PROTOCOL 참조하세요. 다양한 메시지 및 페이로드에 대한 자세한 내용은 EventHandler입니다.
반환 값
함수는 다음 값 중 하나를 반환합니다.
| 반환 코드 | 설명 |
|---|---|
| EFI_SUCCESS | 함수가 성공적으로 반환됨 |
| EFI_INVALID_PARAMETER | 매개 변수가 잘못되었습니다. |
| EFI_DEVICE_ERROR | 물리적 디바이스에서 오류를 보고했습니다. |
| EFI_NOT_READY | 물리적 디바이스가 사용 중이거나 이 요청을 처리할 준비가 되지 않았습니다. |
설명
클래스 드라이버는 EFI_USBFN_IO_PROTOCOL 호출해야 합니다 . EventHandler 는 전송 상태 및 다양한 엔드포인트에서 전송된 바이트 수에 대한 업데이트를 반복적으로 받습니다. 전송 상태가 업데이트되면 이 메서드에 제공된 Buffer 포인터를 사용하여 EFI_USBFN_TRANSFER_RESULT 구조체의 버퍼 필드를 초기화해야 합니다. 지정된 방향이 엔드포인트에 대해 잘못된 경우 이 함수는 EFI_INVALID_PARAMETER 반환 코드와 함께 실패합니다.
호출 시퀀스의 개요는 UEFI 시퀀스 다이어그램에 설명되어 있습니다.
지정된 방향이 엔드포인트에 대해 잘못된 경우 이 함수는 EFI_INVALID_PARAMETER 반환 코드와 함께 실패합니다.
요구 사항
헤더: 생성된 사용자