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