Share via


GetFirmwareEnvironmentVariableA 함수(winbase.h)

지정된 펌웨어 환경 변수의 값을 검색합니다.

구문

DWORD GetFirmwareEnvironmentVariableA(
  [in]  LPCSTR lpName,
  [in]  LPCSTR lpGuid,
  [out] PVOID  pBuffer,
  [in]  DWORD  nSize
);

매개 변수

[in] lpName

펌웨어 환경 변수의 이름입니다. 포인터는 NULL이 아니어야 합니다.

[in] lpGuid

펌웨어 환경 변수의 네임스페이스를 나타내는 GUID입니다. GUID는 "{xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xx}" 형식의 문자열이어야 합니다. 여기서 'x'는 16진수 값을 나타냅니다.

[out] pBuffer

지정된 펌웨어 환경 변수의 값을 받는 버퍼에 대한 포인터입니다.

[in] nSize

pBuffer 버퍼의 크기(바이트)입니다.

반환 값

함수가 성공하면 반환 값은 pBuffer 버퍼에 저장된 바이트 수입니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 가능한 오류 코드에는 ERROR_INVALID_FUNCTION 포함됩니다.

설명

Windows 10 버전 1803부터 유니버설 Windows 앱은 UEFI(Unified Extensible Firmware Interface) 펌웨어 변수를 읽고 쓸 수 있습니다. 자세한 내용은 유니버설 Windows 앱에서 UEFI 펌웨어 변수 액세스를 참조하세요.

펌웨어 환경 변수를 읽으려면 앱이 실행 중인 사용자 계정에 는 SE_SYSTEM_ENVIRONMENT_NAME 권한이 있어야 합니다. 유니버설 Windows 앱은 관리자 계정에서 실행되어야 하며 유니버설 Windows 앱에서 Access UEFI 펌웨어 변수에 설명된 요구 사항을 따라야 합니다.

Windows 10 버전 1803부터 UEFI(Unified Extensible Firmware Interface) 변수도 UMDF(User-Mode Driver Framework) 드라이버에서 지원됩니다. UMDF 드라이버에서 UEFI 변수를 작성하는 것은 지원되지 않습니다.

정확한 펌웨어 환경 변수 집합은 부팅 펌웨어에 의해 결정됩니다. 이러한 환경 변수의 위치도 펌웨어에 의해 지정됩니다. 예를 들어 UEFI 기반 시스템에서 NVRAM에는 시스템 부팅 설정을 지정하는 펌웨어 환경 변수가 포함되어 있습니다. 사용되는 특정 변수에 대한 자세한 내용은 UEFI 사양을 참조하세요. UEFI 및 Windows에 대한 자세한 내용은 UEFI 및 Windows를 참조하세요.

펌웨어 변수는 레거시 BIOS 기반 시스템에서 지원되지 않습니다. GetFirmwareEnvironmentVariable 함수는 레거시 BIOS 기반 시스템에서 항상 실패하거나 레거시 BIOS 및 UEFI를 모두 지원하는 시스템에서 레거시 BIOS를 사용하여 Windows를 설치한 경우 실패합니다. 이러한 조건을 식별하려면 lpName 매개 변수의 빈 문자열("")과 lpGuid 매개 변수의 경우 "{00000000-0000-0000-0000-000000000000}"와 같은 더미 GUID와 같은 더미 펌웨어 환경 이름을 사용하여 함수를 호출합니다. 레거시 BIOS 기반 시스템 또는 레거시 BIOS를 사용하여 Windows가 설치된 레거시 BIOS 및 UEFI를 모두 지원하는 시스템에서는 ERROR_INVALID_FUNCTION 함께 함수가 실패합니다. UEFI 기반 시스템에서는 더미 GUID 네임스페이스가 없음을 나타내기 위해 ERROR_NOACCESS 같은 펌웨어 관련 오류와 함께 함수가 실패합니다.

백업 애플리케이션을 만드는 경우 이 함수를 사용하여 시스템의 모든 부팅 설정을 저장하여 필요한 경우 SetFirmwareEnvironmentVariable 함수를 사용하여 복원할 수 있습니다.

GetFirmwareEnvironmentVariableExGetFirmwareEnvironmentVariable 커널 모드 루틴과 동일한 사용자 모드입니다.

참고

winbase.h 헤더는 GETFirmwareEnvironmentVariable을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista, WINDOWS XP SP1 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

유니버설 Windows 앱에서 UEFI 펌웨어 변수에 액세스

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

시스템 정보 함수