Compartilhar via


EFI_RNG_PROTOCOL. GetRNG

Recupera um valor RNG (Geração de Número Aleatório).

Sintaxe

typedef EFI_STATUS (EFIAPI *EFI_RNG_GET_RNG) (
    IN  struct _EFI_RNG_PROTOCOL    *This,
    IN  EFI_RNG_ALGORITHM           *RNGAlgorithm, OPTIONAL
    IN  UINTN                       RNGValueLength,
    OUT UINT8                       *RNGValue
    );

Parâmetros

Este
[in] Um ponteiro para a instância de EFI_RNG_PROTOCOL .

RNGAlgorithm
[in] Um ponteiro para o EFI_RNG_ALGORITHM que identifica o algoritmo RNG a ser usado. Se esse parâmetro for NULL, o algoritmo padrão compatível com o driver será usado.

RNGValueLength
[in] O comprimento, em bytes, do buffer retornado por RNGValue.

RNGValue
[in] Ponteiro para um buffer que conterá o valor RNG. O valor é alocado por essa função usando EFI_BOOT_SERVICES-AllocatePool>() e é responsabilidade do chamador liberar essa memória usando EFI_BOOT_SERVICES-FreePool>().

Comentários

O tamanho mínimo de RNGValue é de 32 bytes.

Valor retornado

Retorna um dos seguintes códigos de status.

Código de status Descrição
EFI_SUCCESS A função retornou com êxito um valor RNG.
EFI_INVALID_PARAMETER RNGAlgorithm é NULL quando vários algoritmos são possíveis.
EFI_UNSUPPORTED O algoritmo especificado por RNGAlgorithm não é compatível com esse driver.
EFI_DEVICE_ERROR Não foi possível recuperar um valor RNG devido a um erro de hardware ou firmware.
EFI_NOT_READY Não há dados de entropia suficientes disponíveis.
EFI_OUT_OF_RESOURCES O driver não pode alocar memória para o valor RNG.

Requisitos

Cabeçalho: Usuário gerado