Freigeben über


EFI_RNG_PROTOCOL. GetRNG

Ruft einen RNG-Wert (Random Number Generation) ab.

Syntax

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

Parameter

Dieser
[in] Ein Zeiger auf die EFI_RNG_PROTOCOL instance.

RNGAlgorithm
[in] Ein Zeiger auf den EFI_RNG_ALGORITHM, der den zu verwendenden RNG-Algorithmus identifiziert. Wenn dieser Parameter NULL ist, wird der vom Treiber unterstützte Standardalgorithmus verwendet.

RNGValueLength
[in] Die Länge des von RNGValue zurückgegebenen Puffers in Bytes.

RNGValue
[in] Zeiger auf einen Puffer, der den RNG-Wert enthält. Der Wert wird von dieser Funktion mithilfe von EFI_BOOT_SERVICES-AllocatePool>() zugewiesen, und es liegt in der Verantwortung des Aufrufers, diesen Arbeitsspeicher mithilfe von EFI_BOOT_SERVICES-FreePool>() freizugeben.

Bemerkungen

Die Mindestgröße von RNGValue beträgt 32 Bytes.

Rückgabewert

Gibt einen der folgenden status-Codes zurück.

Statuscode Beschreibung
EFI_SUCCESS Die Funktion hat erfolgreich einen RNG-Wert zurückgegeben.
EFI_INVALID_PARAMETER RNGAlgorithm ist NULL, wenn mehrere Algorithmen möglich sind.
EFI_UNSUPPORTED Der von RNGAlgorithm angegebene Algorithmus wird von diesem Treiber nicht unterstützt.
EFI_DEVICE_ERROR Ein RNG-Wert konnte aufgrund eines Hardware- oder Firmwarefehlers nicht abgerufen werden.
EFI_NOT_READY Es sind nicht genügend Entropiedaten verfügbar.
EFI_OUT_OF_RESOURCES Der Treiber kann keinen Arbeitsspeicher für den RNG-Wert zuweisen.

Anforderungen

Header: Benutzer generiert