EFI_RNG_PROTOCOL.GetInfo

Returns information about the RNG algorithms supported by a driver that implements EFI_RNG_PROTOCOL.

Syntax

typedef
EFI_STATUS
(EFIAPI *EFI_RNG_GET_INFO) (
    IN  struct _EFI_RNG_PROTOCOL    *This,
    IN  OUT UINTN                   *RNGAlgorithmListSize,
    OUT EFI_RNG_ALGORITHM           *RNGAlgorithmList
    );

Parameters

This
[in] A pointer to the EFI_RNG_PROTOCOL instance.

RNGAlgorithmListSize
[in, out] The number of algorithms in RNGAlgorithmList.

RNGAlgorithmList
[out] A pointer to a list of EFI_RNG_ALGORITHM values that represent RNG algorithms. Each algorithm is sizeof(EFI_GUID) bytes long.

Remarks

A driver that implements EFI_RNG_PROTOCOL can support one or more RNG algorithms.

The value returned by the RNGAlgorithmList parameter must not change across multiple calls to the same driver. The first algorithm in the list is the default algorithm for the driver.

The list of algorithms is allocated by this function using EFI_BOOT_SERVICES->AllocatePool(), and it is the caller's responsibility to free this list by using EFI_BOOT_SERVICES->FreePool().

Return value

Returns one of the following status codes.

Status code Description
EFI_SUCCESS The function successfully retrieved the list of RNG algorithms.
EFI_UNSUPPORTED The service is not supported by this driver.
EFI_DEVICE_ERROR The list of RNG algorithms could not be retrieved because of a hardware or firmware error.
EFI_OUT_OF_RESOURCES The driver is unable to allocate memory for the RNGAlgorithmList parameter.

Requirements

Header: User generated