EFI_USBFN_IO_PROTOCOL。EventHandler
EventHandler函式會重複呼叫,以接收 USB 匯流排狀態的更新、接收和傳輸端點上的狀態變更,以及在端點 0 上設定封包。
語法
typedef
EFI_STATUS
(EFIAPI * EFI_USBFN_IO_EVENTHANDLER) (
IN EFI_USBFN_IO_PROTOCOL *This,
OUT EFI_USBFN_MESSAGE *Message,
IN OUT UINTN *PayloadSize,
OUT EFI_USBFN_MESSAGE_PAYLOAD *Payload
);
參數
這
EFI_USBFN_IO_PROTOCOL 實例的指標。
訊息
EFI_USBFN_MESSAGE值,指出起始此通知的事件。
PayloadSize
在輸入時,Payload 所指向的記憶體大小。 輸出時,在 Payload 中傳回的資料量。
Payload
EFI_USBFN_MESSAGE_PAYLOAD 實例的 指標,可傳回目前訊息的其他承載。
傳回值
函式會傳回下列值:
傳回碼 | 描述 |
---|---|
EFI_SUCCESS | 函式成功傳回。 |
EFI_INVALID_PARAMETER | 有一個參數無效。 |
EFI_DEVICE_ERROR | 實體裝置回報錯誤。 |
EFI_NOT_READY | 實體裝置忙碌中或尚未準備好處理此要求。 |
EFI_BUFFER_TOO_SMALL | 提供的緩衝區不夠大,無法保存訊息承載。 |
備註
類別驅動程式必須重複呼叫 EventHandler,以接收在各種端點上傳輸的傳輸狀態和位元組數目的更新。 如需詳細資訊 ,請參閱 UEFI 順序圖表 。
一些訊息具有在提供的緩衝區中傳回的相關聯承載。 下表說明各種訊息及其承載。
訊息 | Payload | 描述 |
---|---|---|
EfiUsbMsgSetupPacket | EFI_USB_DEVICE_REQUEST | 收到 SETUP 封包。 |
EfiUsbMsgEndpointStatusChangedRx | EFI_USBFN_TRANSFER_RESULT | 某些要求的資料已傳輸至主機。 類別驅動程式的責任是判斷是否需要重新傳送任何剩餘的資料。 提供給 EFI_USBFN_IO_PROTOCOL 的緩衝區 。傳輸 必須與承載的 [緩衝區] 欄位相同。 |
EfiUsbMsgEndpointStatusChangedTx | EFI_USBFN_TRANSFER_RESULT | 某些要求的資料已從主機接收。 類別驅動程式的責任是判斷是否需要等候任何剩餘的資料。 提供給 EFI_USBFN_IO_PROTOCOL 的緩衝區 。傳輸 必須與承載的 [緩衝區] 欄位相同。 |
EfiUsbMsgBusEventReset | 無 | RESET 匯流排事件已發出訊號。 |
EfiUsbMsgBusEventDetach | 無 | 已發出 DETACH 匯流排事件的訊號。 |
EfiUsbMsgBusEventAttach | 無 | ATTACH 匯流排事件已發出訊號。 |
EfiUsbMsgBusEventSuspend | 無 | SUSPEND 匯流排事件已發出訊號。 |
EfiUsbMsgBusEventResume | 無 | RESUME 匯流排事件已發出訊號。 |
EfiUsbMsgBusEventSpeed | EFI_USB_BUS_SPEED | 已發出訊號的匯流排速度更新。 |
規格需求
頭: 使用者產生的