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