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
Direction가 EfiUsbEndpointDirectionDeviceRx인 경우: 입력에서 버퍼의 크기(바이트)입니다. 출력에서 버퍼에 반환된 데이터의 양(바이트)입니다. Direction가 EfiUsbEndpointDirectionDeviceTx인 경우: 입력에서 버퍼의 크기(바이트)입니다. 출력에서 실제로 전송되는 데이터의 양(바이트)입니다.
Buffer
Direction가 EfiUsbEndpointDirectionDeviceRx인 경우: 받은 데이터를 반환할 버퍼입니다. Direction가 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는 전송 상태 대한 업데이트와 다양한 엔드포인트에서 전송된 바이트 수를 반복적으로 수신합니다. 전송 상태 업데이트되면 이 메서드에 제공된 버퍼 포인터를 사용하여 EFI_USBFN_TRANSFER_RESULT 구조의 버퍼 필드를 초기화해야 합니다. 지정된 방향이 엔드포인트에 대해 잘못된 경우 이 함수는 EFI_INVALID_PARAMETER 반환 코드와 함께 실패합니다.
호출 시퀀스의 개요는 UEFI 시퀀스 다이어그램에 설명되어 있습니다.
지정된 방향이 엔드포인트에 대해 잘못된 경우 이 함수는 EFI_INVALID_PARAMETER 반환 코드와 함께 실패합니다.
요구 사항
헤더: 생성된 사용자