드라이버 패키지 컨테이너 메타데이터는 OEM 및 IHV에 드라이버 패키지 기반 솔루션을 제공하여 디바이스 컨테이너가 나타내는 물리적 디바이스에 대한 사용자 관련 정보를 사용자 지정하고 향상시킵니다. 물리적 디바이스는 컴퓨터 또는 컴퓨터 자체에 연결된 주변 장치일 수 있습니다. 다음 목록에서는 드라이버 패키지 컨테이너 메타데이터에서 제공할 수 있는 정보 유형을 보여 주었습니다.
- OEM/IHV의 이름입니다.
- 디바이스 컨테이너의 모델 이름입니다.
- 디바이스 컨테이너에서 지원하는 하나 이상의 기능 범주입니다.
- 디바이스 컨테이너를 나타내는 사실적인 사진 아이콘입니다.
컨테이너 메타데이터가 없으면 운영 체제는 디바이스 컨테이너에 속한 모든 디바이스 노드 (devnodes)를 살펴보고 devnodes의 정보에 따라 추론을 실행하여 이전 목록의 정보를 생성합니다. 이 프로세스로 인해 OEM 또는 IHV가 물리적 디바이스를 표시하기 위해 원하는 값이 생성되지 않을 수 있습니다. OEM 또는 IHV에서 컨테이너 메타데이터를 사용하여 이러한 값을 직접 제어할 수 있습니다.
드라이버 패키지 컨테이너 메타데이터는 Windows 11 24H2 KB5052093(OS 빌드 26100.3323)부터 지원됩니다. 컨테이너 메타데이터를 포함하는 드라이버 패키지가 이전 Windows 시스템에 설치된 경우 설치는 성공하지만 컨테이너 메타데이터는 처리되고 적용되지 않습니다.
기본 INF 또는 확장 INF 사용
드라이버 패키지 INF 파일 내의 INF AddProperty 지시문은 드라이버 패키지 컨테이너 메타데이터를 지정합니다. 컨테이너 메타데이터에 사용할 INF 파일에 대한 권장 사항은 다음과 같습니다.
- OEM/IHV에 디바이스 컨테이너의 일부인 devnode의 기본 INF인 드라이버 패키지가 이미 있는 경우 컨테이너 메타데이터를 포함하도록 해당 드라이버 패키지를 업데이트해야 합니다.
- OEM/IHV에 디바이스 컨테이너의 일부인 devnode의 기본 INF인 드라이버 패키지가 없는 경우 확장 INF 드라이버 패키지를 만드는 것이 좋습니다. 기본 INF에 비해 확장 INF는 컨테이너 메타데이터를 포함하는 더 가벼운 방법입니다.
기본 INF 및 확장 INF에 대한 자세한 내용은 확장 INF 파일 사용을 참조하세요.
컨테이너 메타데이터를 지정하는 INF 파일을 인증하려면 Windows 드라이버 키트, 버전 10.0.26100.3323 및 Windows HLK 24H2(2025년 1월 업데이트)부터 사용할 수 있는 업데이트된 InfVerif가 필요합니다.
디바이스 컨테이너 대상 지정
드라이버 패키지는 디바이스별 정보를 사용하여 개별 개발 노드를 대상으로 합니다. 이 정보에는 하드웨어 ID 및 호환 ID가 포함됩니다. 올바른 디바이스 컨테이너에 컨테이너 메타데이터를 제공하려면 드라이버 패키지가 디바이스 컨테이너에 속하는 devnode 중 하나를 대상으로 해야 합니다. 디바이스 컨테이너에 속하는 모든 devnode를 보는 방법에는 여러 가지가 있습니다.
- PnPUtil /enum-containers /devices (Windows 11 버전 24H2부터 사용할 수 있는 명령)
- 디바이스 관리자: 보기 -> 컨테이너별 디바이스(Windows 10 버전 1703부터 사용 가능한 보기 옵션)
컴퓨터 컨테이너에 대한 컨테이너 메타데이터를 제공하려면 OEM 컴퓨터 디바이스라는 특수 개발 노드에서 확장 INF를 대상으로 지정해야 합니다. OEM 컴퓨터 디바이스는 Windows 11 버전 22H2부터 사용할 수 있습니다.
OEM 컴퓨터 디바이스는 다음 예제와 같이 디바이스 클래스 및 하드웨어 ID로 식별할 수 있습니다.
Computer 클래스에 속하는 모든 devnode를 열거합니다.
PnPUtil /enum-devices /class Computer /deviceidsOEM 컴퓨터 디바이스는 다음과 같이 표시됩니다.
Instance ID: SWD\COMPUTER\... Status: Started Driver Name: compdev.inf Hardware IDs: COMPUTER\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} COMPUTER\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} COMPUTER\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} COMPUTER\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} ...
Windows 하드웨어 개발 센터에서는 OEM 컴퓨터 디바이스에서 공개하는 ID와 일치하는 드라이버 패키지만 확장 INF 파일이 될 수 있습니다. 제출할 때, 배송 라벨 페이지의 비즈니스 근거 상자에 디바이스의 기본 Windows 드라이버를 지정하는 것이 중요합니다: ExtendsInboxDriver=compdev.inf. 확장 INF 제출 및 게시에 대한 자세한 내용은 파트너 센터 및 확장 INF 대상 지정 규칙에서 확장 INF 파일 작업을 참조하세요.
예시
다음 예제에서는 특정 모델 시스템에서 OEM 컴퓨터 디바이스를 대상으로 하여 컨테이너 메타데이터를 컴퓨터 컨테이너에 제공하는 방법을 보여줍니다.
[Standard.NTamd64]
%Device.ExtensionDesc% = DeviceInstall, Computer\{417c41d7-1d11-5b78-ab26-00b745dfac94}
%Device.ExtensionDesc% = DeviceInstall, Computer\{70127e8f-991f-505a-b966-fc08b6f74f94}
%Device.ExtensionDesc% = DeviceInstall, Computer\{ff26d547-8d7f-5069-bbcb-0c50756b691a}
%Device.ExtensionDesc% = DeviceInstall, Computer\{770bbdbb-bbf5-5d39-ae1a-25f41b7bbcfd}
[DeviceInstall]
AddProperty = ComputerMetadata_Properties
[ComputerMetadata_Properties]
ContainerModelName,,,, %ModelName%
ContainerManufacturer,,,, %Manufacturer%
ContainerCategories,,,, Computer.Tablet
ContainerIcon,,,, %13%\CustomComputer.ico
[Strings]
Device.ExtensionDesc = "Custom Computer Metadata Extension"
ModelName = "Custom Computer"
Manufacturer = "Custom Manufacturer"
; en-us
[Strings.0409]
Device.ExtensionDesc = "Custom Computer Metadata Extension"
ModelName = "Custom Computer"
Manufacturer = "Custom Manufacturer"
; zh-cn
[Strings.0804]
Device.ExtensionDesc = "自定义电脑元数据拓展"
ModelName = "自定义电脑型号"
Manufacturer = "自定义制造商"
다음 예제에서는 다기능 프린터를 나타내는 컨테이너에 대해 인쇄 지원 앱 연결을 포함한 컨테이너 메타데이터를 제공하는 방법을 보여 줍니다.
[Standard.NTamd64]
%Device.ExtensionDesc% = DeviceInstall, MF\CustomPrinter&WSD&IP_PRINT
%Device.ExtensionDesc% = DeviceInstall, WSDPRINT\CustomPrinter
%Device.ExtensionDesc% = DeviceInstall, USBPRINT\CustomPrinter
%Device.ExtensionDesc% = DeviceInstall, CustomPrinter
[DeviceInstall]
AddProperty = Container_Metadata_Properties
AddProperty = PSA_Association_Property
[Container_Metadata_Properties]
ContainerModelName,,,, %ModelName%
ContainerManufacturer,,,, %Manufacturer%
ContainerCategories,,,, PrintFax.Printer, Imaging.Scanner
ContainerIcon,,,, %13%\CustomPrinter.ico
[PSA_Association_Property]
{A925764B-88E0-426D-AFC5-B39768BE59EB}, 1, 0x12,, CustomPrinterAUMID
[DeviceInstall.Software]
AddSoftware = Printer Control App,, Print_SoftwareInstall
[Print_SoftwareInstall]
SoftwareType = 2
SoftwareID = pfn://CustomPrinterControlAppId
[Strings]
Device.ExtensionDesc = "Container Property Extension"
ModelName = "Custom Printer"
Manufacturer = "Custom Manufacturer"
디바이스 메타데이터 패키지에서 전환하는 경우 다음은 다기능 프린터의 위 예제에서 디바이스 메타데이터 패키지의 모양을 보여 줍니다.
PackageInfo.xml
<?xml version="1.0" encoding="utf-8"?> <PackageInfo xmlns="http://schemas.microsoft.com/windows/DeviceMetadata/PackageInfo/2007/11/"> <MetadataKey> <HardwareIDList> <HardwareID>DOID:MF\CustomPrinter&WSD&IP_PRINT</HardwareID> <HardwareID>DOID:WSDPRINT\CustomPrinter</HardwareID> <HardwareID>DOID:USBPRINT\CustomPrinter</HardwareID> <HardwareID>DOID:CustomPrinter</HardwareID> </HardwareIDList> <Locale default="true">en-US</Locale> <LastModifiedDate>2014-04-08T07:19:14Z</LastModifiedDate> </MetadataKey> ... </PackageInfo>DeviceInfo.xml
<?xml version="1.0" encoding="utf-8"?> <DeviceInfo xmlns="http://schemas.microsoft.com/windows/DeviceMetadata/DeviceInfo/2007/11/"> <DeviceCategoryList> <DeviceCategory>PrintFax.Printer</DeviceCategory> <DeviceCategory>Imaging.Scanner</DeviceCategory> </DeviceCategoryList> <ModelName>Custom Printer</ModelName> <Manufacturer>Custom Manufacturer</Manufacturer> <DeviceIconFile>CustomPrinter.ico</DeviceIconFile> </DeviceInfo>SoftwareInfo.xml
<?xml version="1.0" encoding="utf-8"?> <SoftwareInfo xmlns="http://schemas.microsoft.com/windows/2010/08/DeviceMetadata/SoftwareInfo"> <DeviceCompanionApplications> <Package> <Identity Name="CustomPrinterControlAppName" Publisher="CustomPrinterControlAppPublisher" /> ... </Package> </DeviceCompanionApplications> ... </SoftwareInfo>