다음을 통해 공유


GetFirmwareEnvironmentVariableExA 함수(winbase.h)

지정된 펌웨어 환경 변수 및 해당 특성의 값을 검색합니다.

통사론

DWORD GetFirmwareEnvironmentVariableExA(
  LPCSTR lpName,
  LPCSTR lpGuid,
  PVOID  pBuffer,
  DWORD  nSize,
  PDWORD pdwAttribubutes
);

매개 변수

lpName

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

lpGuid

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

pBuffer

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

nSize

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

pdwAttribubutes

변수와 연결된 UEFI 변수 특성을 식별하는 비트 마스크입니다. 비트 마스크 정의는 SetFirmwareEnvironmentVariableEx 참조하세요.

반환 값

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

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

발언

Windows 10 버전 1803부터 유니버설 Windows 앱은 UEFI 펌웨어 변수를 읽고 쓸 수 있습니다. 자세한 내용은 유니버설 Windows 앱 Access UEFI 펌웨어 변수를 참조하세요.

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 기반 시스템에서는 펌웨어 변수가 지원되지 않습니다. GetFirmwareEnvironmentVariableEx 함수는 레거시 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 함수를 사용하여 복원할 수 있습니다.

메모

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

요구 사항

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

참고 항목

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

GetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx