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] Указатель на EFI_RNG_ALGORITHM, который определяет используемый алгоритм RNG. Если этот параметр имеет значение 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 | Недостаточно данных об энтропии. |
EFI_OUT_OF_RESOURCES | Драйвер не может выделить память для значения RNG. |
Требования
Заголовка: Создано пользователем