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