共用方式為


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 已發出訊號的匯流排速度更新。

規格需求

頭: 使用者產生的