检索随机数生成 (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
[in]指向EFI_RNG_PROTOCOL实例的指针。
RNGAlgorithm
[in]指向标识要使用的 RNG 算法的EFI_RNG_ALGORITHM的指针。 如果此参数为 NULL,将使用驱动程序支持的默认算法。
RNGValueLength
[in]RNGValue 返回的缓冲区的长度(以字节为单位)。
RNGValue
[in]指向将包含 RNG 值的缓冲区的指针。 此值由此函数使用 EFI_BOOT_标准版RVICES-AllocatePool>()进行分配,并且调用方负责通过使用 EFI_BOOT_标准版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 值分配内存。 |
要求
标头: 用户生成的