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
);
パラメーター
This
[入力] EFI_RNG_PROTOCOL インスタンスへのポインター。
RNGAlgorithm
[入力] 使用する RNG アルゴリズムを識別する EFI_RNG_ALGORITHM へのポインター。 このパラメーターが NULL の場合、ドライバーでサポートされているデフォルトのアルゴリズムが使用されます。
RNGValueLength
[入力] RNGValue によって返されるバッファーの長さ (バイト単位)。
RNGValue
[入力] RNG 値を含むバッファーへのポインター。 値は、EFI_BOOT_Standard Edition RVICES->AllocatePool() を使用してこの関数によって割り当てられます。呼び出し元は、EFI_BOOT_Standard Edition RVICES->FreePool() を使用してこのメモリを解放する必要があります。
解説
RNGValue の最小サイズは 32 バイトです。
戻り値
次のいずれかのステータス コードを返します。
状態コード | 説明 |
---|---|
EFI_SUCCESS | 関数は RNG 値を正常に返しました。 |
EFI_INVALID_PARAMETER | 複数のアルゴリズムが可能な場合、RNGAlgorithm は NULL です。 |
EFI_UNSUPPORTED | RNGAlgorithm で指定するアルゴリズムは、このドライバーでサポートされていません。 |
EFI_DEVICE_ERROR | ハードウェアまたはファームウェアのエラーのため、RNG 値を取得できませんでした。 |
EFI_NOT_READY | 利用できるエントロピ データが不足しています。 |
EFI_OUT_OF_RESOURCES | ドライバーは、RNG 値にメモリを割り当てることができません。 |
要件
ヘッダー: ユーザー生成