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_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 |
十分なエントロピー データが利用できません。 |
EFI_OUT_OF_RESOURCES |
ドライバーが RNG 値用のメモリを割り当てることができません。 |
必要条件
ヘッダー: ユーザーが生成