EFI_USBFN_IO_PROTOCOL。轉移
Transfer 函式會處理在指定端點上的主機來回傳輸數據。
方向 | 描述 |
---|---|
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
);
參數
這
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 結構的 Buffer 字段必須使用提供給此方法的 Buffer 指標初始化。 如果端點的指定方向不正確,此函式會失敗並傳回EFI_INVALID_PARAMETER傳回碼。
呼叫順序的概觀會顯示在 UEFI 時序圖中。
如果端點的指定方向不正確,此函式會失敗並傳回EFI_INVALID_PARAMETER傳回碼。
需求
標頭: 用戶產生的