Share via


SetFirmwareEnvironmentVariableW 함수(winbase.h)

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

구문

BOOL SetFirmwareEnvironmentVariableW(
  [in] LPCWSTR lpName,
  [in] LPCWSTR lpGuid,
  [in] PVOID   pValue,
  [in] DWORD   nSize
);

매개 변수

[in] lpName

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

[in] lpGuid

펌웨어 환경 변수의 네임스페이스를 나타내는 GUID입니다. GUID는 "{xxxxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx}" 형식의 문자열이어야 합니다. 시스템에서 GUID 기반 네임스페이스를 지원하지 않는 경우 이 매개 변수는 무시됩니다.

[in] pValue

펌웨어 환경 변수의 새 값에 대한 포인터입니다.

[in] nSize

pBuffer 버퍼의 크기(바이트)입니다. 이 매개 변수가 0이면 펌웨어 환경 변수가 삭제됩니다.

반환 값

함수가 성공하면 반환 값은 0이 아닌 값입니다.

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

설명

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

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

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

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

펌웨어 변수는 레거시 BIOS 기반 시스템에서 지원되지 않습니다. SetFirmwareEnvironmentVariable 함수는 레거시 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 같은 펌웨어 관련 오류와 함께 함수가 실패합니다.

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

참고

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

요구 사항

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

참고 항목

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

GetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

시스템 정보 함수