Condividi tramite


EFI_RNG_PROTOCOL. GetRNG

Recupera un valore RNG (Random Number Generation).

Sintassi

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

Parametri

This
[in] Puntatore all'istanza di EFI_RNG_PROTOCOL .

RNGAlgorithm
[in] Puntatore al EFI_RNG_ALGORITHM che identifica l'algoritmo RNG da usare. Se questo parametro è NULL, verrà usato l'algoritmo predefinito supportato dal driver.

RNGValueLength
[in] Lunghezza, in byte, del buffer restituito da RNGValue.

RNGValue
[in] Puntatore a un buffer che conterrà il valore RNG. Il valore viene allocato da questa funzione usando EFI_BOOT_SERVICES-AllocatePool() ed è responsabilità del chiamante liberare questa memoria usando EFI_BOOT_SERVICES-FreePool>>().

Commenti

La dimensione minima di RNGValue è di 32 byte.

Valore restituito

Restituisce uno dei codici di stato seguenti.

Codice stato Descrizione
EFI_SUCCESS La funzione ha restituito correttamente un valore RNG.
EFI_INVALID_PARAMETER RNGAlgorithm è NULL quando sono possibili diversi algoritmi.
EFI_UNSUPPORTED L'algoritmo specificato da RNGAlgorithm non è supportato da questo driver.
EFI_DEVICE_ERROR Impossibile recuperare un valore RNG a causa di un errore hardware o firmware.
EFI_NOT_READY Non sono disponibili dati di entropia sufficienti.
EFI_OUT_OF_RESOURCES Il driver non è in grado di allocare memoria per il valore RNG.

Requisiti

Intestazione: Utente generato