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 instance 대한 포인터입니다.
RNGAlgorithm
[in] 사용할 RNG 알고리즘을 식별하는 EFI_RNG_ALGORITHM 대한 포인터입니다. 이 매개 변수가 NULL이면 드라이버에서 지원하는 기본 알고리즘이 사용됩니다.
RNGValueLength
[in] RNGValue에서 반환된 버퍼의 길이(바이트)입니다.
RNGValue
[in] RNG 값을 포함할 버퍼에 대한 포인터입니다. 값은 EFI_BOOT_SERVICES-AllocatePool>()을 사용하여 이 함수에 의해 할당되며 EFI_BOOT_SERVICES-FreePool>()을 사용하여 이 메모리를 해제하는 것은 호출자의 책임입니다.
설명
RNGValue의 최소 크기는 32바이트입니다.
반환 값
다음 상태 코드 중 하나를 반환합니다.
| 상태 코드 | Description |
|---|---|
| EFI_SUCCESS | 함수가 RNG 값을 반환했습니다. |
| EFI_INVALID_PARAMETER | RNGAlgorithm 은 여러 알고리즘이 가능한 경우 NULL입니다. |
| EFI_UNSUPPORTED | RNGAlgorithm에서 지정한 알고리즘은 이 드라이버에서 지원되지 않습니다. |
| EFI_DEVICE_ERROR | 하드웨어 또는 펌웨어 오류로 인해 RNG 값을 검색할 수 없습니다. |
| EFI_NOT_READY | 사용할 수 있는 엔트로피 데이터가 충분하지 않습니다. |
| EFI_OUT_OF_RESOURCES | 드라이버가 RNG 값에 대한 메모리를 할당할 수 없습니다. |
요구 사항
헤더: 생성된 사용자