Partager via


EFI_RNG_PROTOCOL. GetRNG

Récupère une valeur RNG (Random Number Generation).

Syntaxe

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
    );

Paramètres

Ce
[in] Pointeur vers le instance EFI_RNG_PROTOCOL.

RNGAlgorithm
[in] Pointeur vers le EFI_RNG_ALGORITHM qui identifie l’algorithme RNG à utiliser. Si ce paramètre a la valeur NULL, l’algorithme par défaut pris en charge par le pilote est utilisé.

RNGValueLength
[in] Longueur, en octets, de la mémoire tampon retournée par RNGValue.

RNGValue
[in] Pointeur vers une mémoire tampon qui contiendra la valeur RNG. La valeur est allouée par cette fonction à l’aide de EFI_BOOT_SERVICES-AllocatePool>(), et il incombe à l’appelant de libérer cette mémoire à l’aide de EFI_BOOT_SERVICES-FreePool>().

Notes

La taille minimale de RNGValue est de 32 octets.

Valeur retournée

Retourne l’un des codes status suivants.

Code d’état Description
EFI_SUCCESS La fonction a correctement retourné une valeur RNG.
EFI_INVALID_PARAMETER RNGAlgorithm a la valeur NULL lorsque plusieurs algorithmes sont possibles.
EFI_UNSUPPORTED L’algorithme spécifié par RNGAlgorithm n’est pas pris en charge par ce pilote.
EFI_DEVICE_ERROR Une valeur RNG n’a pas pu être récupérée en raison d’une erreur de matériel ou de microprogramme.
EFI_NOT_READY Il n’y a pas suffisamment de données d’entropie disponibles.
EFI_OUT_OF_RESOURCES Le pilote ne peut pas allouer de mémoire pour la valeur RNG.

Spécifications

En-tête: Généré par l’utilisateur