Metadata kontejneru balíčku ovladačů

Metadata kontejneru balíčků ovladačů poskytují OEM a IHV řešení založené na balíčku ovladačů, které umožňuje přizpůsobit a vylepšit informace o jejich fyzickém zařízení tak, jak je znázorněno kontejnerem zařízení. Fyzické zařízení může být periferní zařízení připojené k počítači nebo samotnému počítači. Následující seznam ukazuje typ informací, které může dodat metadata kontejneru balíčku ovladače:

  • Název výrobce OEM/IHV.
  • Název modelu kontejneru zařízení.
  • Jedna nebo více funkčních kategorií, které kontejner zařízení podporuje.
  • Ikona fotorealistická, která představuje kontejner zařízení.

Bez metadat kontejneru operační systém vygeneruje informace v předchozím seznamu tak, že se podívá na všechny uzly zařízení (devnodes), které patří do kontejneru zařízení, a pak spustí heuristiku na základě informací o devnodes. Tento proces nemusí vést k hodnotám požadovaným výrobci OEM nebo IHV pro zobrazení jejich fyzických zařízení. Metadata kontejneru můžou používat OEM nebo IHV k přímému řízení těchto hodnot.

Metadata kontejneru balíčků ovladačů se podporují od verze Windows 11 24H2 KB5052093 (build operačního systému 26100.3323). Pokud je balíček ovladače, který obsahuje metadata kontejneru, nainstalován ve starším systému Windows, instalace bude úspěšná, ale metadata kontejneru nebudou zpracována a použita.

Použití základní INF nebo rozšíření INF

Direktiva INF AddProperty v souboru INF balíčku ovladače určuje metadata kontejneru balíčku ovladače. Naše doporučení pro soubor INF, který se má použít pro metadata kontejneru, jsou:

  1. Pokud už OEM/IHVs mají balíček ovladačů, který je základní inf pro vývojový uzel, který je součástí kontejneru zařízení, měl by být tento balíček ovladače aktualizován tak, aby zahrnoval metadata kontejneru.
  2. Pokud výrobci OEM/IHV nemají balíček ovladače, který je základním INF souborem pro devnode, který je součástí kontejneru zařízení, doporučujeme vytvořit balíček ovladače INF rozšíření. Ve srovnání se základní INF je rozšiřující INF jednodušším způsobem zahrnutí metadat kontejneru.

Další informace o base INFs a přípony INFs naleznete v tématu Použití souboru EXTENSION INF.

K certifikaci souboru INF, který určuje metadata kontejneru, je vyžadován aktualizovaný InfVerif, který je k dispozici v sadě Windows Driver Kit verze 10.0.26100.3323 a Windows HLK 24H2 (aktualizováno v lednu 2025).

Cílení na kontejner zařízení

Balíčky ovladačů jsou cílené na jednotlivé vývojové uzlů pomocí informací specifických pro zařízení. Tyto informace zahrnují ID hardwaru a kompatibilní ID. Chcete-li poskytnout metadata kontejneru správnému kontejneru zařízení, musí balíček ovladače cílit na jeden z vývojových uzlů, které patří do kontejneru zařízení. Existuje několik způsobů, jak zobrazit všechny uzly zařízení, které patří do kontejneru zařízení.

  1. PnPUtil /enum-containers /devices (příkaz dostupný od Windows 11 verze 24H2)
  2. Správce zařízení: Zobrazení –> Zařízení podle kontejneru (možnost Zobrazit dostupná od Windows 10 verze 1703)

Chcete-li zadat metadata kontejneru pro kontejner počítače, musíte cílit na rozšíření INF na speciální devnode s názvem zařízení počítače OEM. Zařízení počítače OEM je dostupné od Windows 11 verze 22H2.

Počítačové zařízení OEM je možné identifikovat podle třídy zařízení a hardwarových ID, například v následujícím příkladu:

  1. Zobrazení výčtu všech vývojových uzlů patřících do třídy Computer:

    PnPUtil /enum-devices /class Computer /deviceids
    
  2. Zařízení počítače OEM se zobrazí takto:

    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 Hardware Dev Center umožňuje, aby balíčky ovladačů, které odpovídají identifikátorům vystaveným počítačovým zařízením OEM, mohly být INF rozšířeními. Během odesílání je důležité zadat výchozí Windows ovladač pro konkrétní zařízení v poli Obchodní odůvodnění na stránce expedičního štítku: ExtendsInboxDriver=compdev.inf. Další informace o odesílání a publikování souborů INF rozšíření naleznete v tématu Práce se soubory INF rozšíření v Partnerském centru a pravidla cílení souborů INF rozšíření.

Příklady

Následující příklad ukazuje, jak jsou metadata kontejneru dodána do kontejneru počítače tím, že cílí na počítačové zařízení OEM v konkrétních modelových systémech:

[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 = "自定义制造商"

Následující příklad ukazuje, jak se dodávají metadata kontejneru, včetně přidružení aplikace podpory tisku, pro kontejner představující multifunkční tiskárnu.

[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"

U těch, kteří přecházejí z balíčků metadat zařízení, je vidět, jak může balíček metadat zařízení vypadat v příkladu výše uvedené tiskárny s více funkcemi:

  • 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>