共用方式為


EFI_RNG_PROTOCOL。GetRNG

擷取亂數產生 (RNG) 值。

語法

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

參數


[in] EFI_RNG_PROTOCOL 實例的指標。

RNGAlgorithm
[in]識別要使用的 RNG 演算法之EFI_RNG_ALGORITHM指標。 如果此參數為 Null,則會使用驅動程式支援的預設演算法。

RNGValueLength
[in] RNGValue所傳回之緩衝區的長度,以位元組為單位。

RNGValue
[in]將包含 RNG 值的緩衝區指標。 這個函式會使用 EFI_BOOT_SERVICES-AllocatePool > () 配置此值,而呼叫端必須負責使用 EFI_BOOT_SERVICES-FreePool > () 來釋放此記憶體。

備註

RNGValue的大小下限為 32 個位元組。

傳回值

傳回下列其中一個狀態碼。

狀態碼 描述
EFI_SUCCESS 函式已成功傳回 RNG 值。
EFI_INVALID_PARAMETER 當數個演算法可能時,RNGAlgorithm為 Null。
EFI_UNSUPPORTED 此驅動程式不支援 RNGAlgorithm 指定的演算法。
EFI_DEVICE_ERROR 因為硬體或韌體錯誤,所以無法擷取 RNG 值。
EFI_NOT_READY 沒有足夠的 Entropy 資料可用。
EFI_OUT_OF_RESOURCES 驅動程式無法為 RNG 值配置記憶體。

規格需求

頭: 使用者產生的