다음을 통해 공유


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

[일부 정보는 상업용으로 출시되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 명시적 또는 묵시적 보증을 하지 않습니다.]

유니버설 Windows 앱에서 UEFI(Unified Extensible Firmware Interface) 펌웨어 변수에 액세스하는 방법입니다.

Windows 10 버전 1803부터 유니버설 Windows 앱은 GetFirmwareEnvironmentVariableSetFirmwareEnvironmentVariable(및 해당 'ex' 변형)을 사용하여 다음을 수행하여 UEFI 펌웨어 변수에 액세스할 수 있습니다.

  • 매니페스트에서 Microsoft.firmwareRead_cw5n1h2txyewy 사용자 지정 기능을 선언하여 펌웨어 변수 및/또는 펌웨어 변수를 작성하는 Microsoft.firmwareWrite_cw5n1h2txyewy 기능을 읽습니다.

  • 또한 앱 매니페스트에서 protectedApp 제한된 기능을 선언합니다.

  • 예를 들어 다음 앱 매니페스트 추가를 사용하면 유니버설 Windows 앱이 펌웨어 변수를 읽을 수 있습니다.

    <Package
      ...
      xmlns:uap4=http://schemas.microsoft.com/appx/manifest/uap/windows10/4
      xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
      IgnorableNamespaces="uap mp uap4 rescap">  
      ...
      <Capabilities>
        <rescap:Capability Name="protectedApp"/>
        <uap4:CustomCapability Name="microsoft.firmwareRead_cw5n1h2txyewy" />
      </Capabilities>
    </Package>
    
  • Microsoft Store에 앱을 제출하기 전에 모든 프로젝트 구성에 대해 링커 옵션 /INTEGRITYCHECK를 설정합니다. 이렇게 하면 앱이 보호된 앱으로 시작됩니다. 자세한 내용은 /INTEGRITYCHECK(서명 확인 필요) 를 참조하세요.

  • Microsoft에서 서명된 SCCD( 사용자 지정 기능 설명자 ) 파일을 가져옵니다. Microsoft에서 서명된 SCCD 파일을 가져오는 방법, 앱으로 패키지하는 방법 및 개발자 모드를 사용하도록 설정하는 방법에 대한 자세한 내용은 드라이버를 HSA(하드웨어 지원 앱)와 페어링하는 사용자 지정 기능 만들기 및 사용자 지정 기능을 사용하여 HSA(하드웨어 지원 앱)를 드라이버와 페어링을 참조하세요. CustomCapability 샘플의 예제 SSCD 파일은 다음과 같습니다.

    <?xml version="1.0" encoding="utf-8"?>
    <CustomCapabilityDescriptor xmlns="http://schemas.microsoft.com/appx/2016/sccd" xmlns:s="http://schemas.microsoft.com/appx/2016/sccd">
      <CustomCapabilities>
        <CustomCapability Name="microsoft.hsaTestCustomCapability_q536wpkpf5cy2"></CustomCapability>
        <CustomCapability Name="microsoft.firmwareRead_cw5n1h2txyewy"></CustomCapability>
      </CustomCapabilities>
      <AuthorizedEntities>
        <AuthorizedEntity AppPackageFamilyName="Microsoft.SDKSamples.CustomCapability.CPP_8wekyb3d8bbwe" CertificateSignatureHash="ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4"></AuthorizedEntity>
        <AuthorizedEntity AppPackageFamilyName="Microsoft.SDKSamples.CustomCapability.CPP_8wekyb3d8bbwe" CertificateSignatureHash="279cd652c4e252bfbe5217ac722205d7729ba409148cfa9e6d9e5b1cb94eaff1"></AuthorizedEntity>
      </AuthorizedEntities>
      <Catalog>xxxx</Catalog>
    </CustomCapabilityDescriptor>
    
  • Microsoft Store에 앱을 제출하여 서명합니다. 개발 목적으로 bcd(부팅 구성 데이터베이스)에서 테스트 서명을 사용하도록 설정하여 서명을 건너뛸 수 있습니다. 자세한 내용은 TESTSIGNING 부팅 구성 옵션을 참조하세요.

제한된 접근 권한 값

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

유니버설 Windows 앱에서 SMBIOS 정보에 액세스