EFI_USBFN_IO_PROTOCOL. Eventhandler
A função EventHandler é chamada repetidamente para receber atualizações em estados de barramento USB, receber e transmitir status alterações nos pontos de extremidade e configurar o pacote no ponto de extremidade 0.
Sintaxe
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
);
Parâmetros
Este
Um ponteiro para a instância EFI_USBFN_IO_PROTOCOL.
Mensagem
Um valor EFI_USBFN_MESSAGE que indica o evento que iniciou essa notificação.
PayloadSize
Na entrada, o tamanho da memória apontada por Payload. Na saída, a quantidade de dados retornados em Payload.
Carga útil
Um ponteiro para a instância EFI_USBFN_MESSAGE_PAYLOAD para retornar conteúdo adicional para a mensagem atual.
Valores retornados
A função retorna os seguintes valores:
Código de retorno | Descrição |
---|---|
EFI_SUCCESS | A função foi retornada com êxito. |
EFI_INVALID_PARAMETER | Um parâmetro é inválido. |
EFI_DEVICE_ERROR | O dispositivo físico relatou um erro. |
EFI_NOT_READY | O dispositivo físico está ocupado ou não está pronto para processar essa solicitação. |
EFI_BUFFER_TOO_SMALL | O buffer fornecido não é grande o suficiente para manter o conteúdo da mensagem. |
Comentários
Um driver de classe deve chamar EventHandler repetidamente para receber atualizações sobre o status de transferência e o número de bytes transferidos em vários pontos de extremidade. Consulte Diagrama de sequência UEFI para obter mais informações.
Algumas mensagens têm conteúdo associado que é retornado no buffer fornecido. A tabela a seguir descreve várias mensagens e seu conteúdo.
Mensagem | Carga útil | Descrição |
---|---|---|
EfiUsbMsgSetupPacket | EFI_USB_DEVICE_REQUEST | O pacote SETUP foi recebido. |
EfiUsbMsgEndpointStatusChangedRx | EFI_USBFN_TRANSFER_RESULT | Alguns dos dados solicitados foram transmitidos para o host. É responsabilidade do driver de classe determinar se algum dado restante precisa ser reenviado. O Buffer fornecido para EFI_USBFN_IO_PROTOCOL. A transferência deve ser igual ao campo Buffer do conteúdo. |
EfiUsbMsgEndpointStatusChangedTx | EFI_USBFN_TRANSFER_RESULT | Alguns dos dados solicitados foram recebidos do host. É responsabilidade do driver de classe determinar se ele precisa aguardar os dados restantes. O Buffer fornecido para EFI_USBFN_IO_PROTOCOL. A transferência deve ser igual ao campo Buffer do conteúdo. |
EfiUsbMsgBusEventReset | Nenhum | O evento de barramento RESET foi sinalizado. |
EfiUsbMsgBusEventDetach | Nenhum | O evento de barramento DETACH foi sinalizado. |
EfiUsbMsgBusEventAttach | Nenhum | Evento de barramento ATTACH sinalizado. |
EfiUsbMsgBusEventSuspend | Nenhum | O evento suspend bus foi sinalizado. |
EfiUsbMsgBusEventResume | Nenhum | Evento resume bus sinalizado. |
EfiUsbMsgBusEventSpeed | EFI_USB_BUS_SPEED | Atualização de velocidade do barramento sinalizada. |
Requisitos
Cabeçalho: Usuário gerado