다음을 통해 공유


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
[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 값에 대한 메모리를 할당할 수 없습니다.

요구 사항

헤더: 생성된 사용자