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 值配置記憶體。 |
規格需求
頭: 使用者產生的