Submit a PC device manifest package

Submitting a PC device manifest package

You can use the same method to submit packages for preview or release.

To submit a device manifest package

  1. Sign the devicemanifest-ms package with the SignTool tool.

  2. Sign in to the dashboard from the either the Hardware Development or Desktop Development section of the Windows Dev Center using the Microsoft account associated with the dashboard.

  3. Under Device metadata, click Create experience if you want to submit a new experience, or click Manage experience if you want to modify an existing experience.

  4. Browse for and select your new devicemanifest-ms package, and then click Submit.

Creating a Device Manifest Submission Package

A device manifest submission package is the package format in which all PC device metadata must be submitted to the Windows Dev Center - Hardware.

The device manifest submission package contains files that declare locale support and enable validation of PC HWIDs to belong to submitting companies. The device manifest package also includes a device metadata package.

Device manifest submission packages get uploaded to the Windows Dev Center - Hardware in the same way as device metadata packages. Using the same user interface and upload boxes, enter the name of your *.devicemanifest-ms file for upload.

All file upload boxes other than bulk upload on the Windows Dev Center - Hardware’s user interface will accept device manifest submission packages.

Device Manifest Submission Package Contents

Each device manifest submission package consists of the following components:

  • Device metadata package

    This package contains information and graphics to display device icons, set actions, and utilize device experience features in Windows.

    The device metadata package is always required.

  • LocaleInfo XML document

    This document contains data about the locales included in the accompanying device metadata package. The Windows Dev Center - Hardware uses this data to properly validate the device metadata package for one or more locales.

    The LocaleInfo XML document is always required, even if the device metadata package only contains a single locale.

  • PcMetadataSubmission XML document

    This document contains data used to validate the HWIDs in the accompanying PC device metadata package. The Windows Dev Center - Hardware uses this data to verify the HWIDs in the device metadata package belong to the correct companies.

    The PcMetadataSubmission XML document is only required for PC device metadata packages

noteNote
The XML documents must be saved by using UTF-8 encoding.

Structure of a PC Device Manifest Submission Package

The structure of a device manifest package depends on whether the included device metadata is for a PC, for mobile broadband, or contains support for multiple locales.

If the device metadata does not fall into any of the three categories, a device manifest package is not necessary. However, a device manifest package can still be used to indicate the device metadata package is for a single locale.

The components of a PC device manifest submission package are stored in a compressed cabinet file. The file name must have a suffix of .devicemanifest-ms.

Each PC device manifest submission package must have the following structure:

GUID1.devicemanifest-ms
  \GUID1.devicemetadata-ms
  \LocaleInfo.xml
  \PcMetadataSubmission.xml

“GUID1” must be a GUID.

To create the LocaleInfo.xml and PcMetadataSubmission.xml, see below.

To learn how to develop the device metadata package, *.devicemetadata-ms, see Device Metadata Package Schema Reference for Windows 8

You can use the Cabarc tool to create these CAB packages. You can find more information about this tool in Cabarc Overview

When you create a *.devicemanifest-ms file by using the Cabarc tool, you must create a local directory in which the device metadata package (*.devicemetadata-ms), the LocaleInfo XML document, and the PcMetadataSubmission XML document are at the root of the directory.

Remarks

  • The .devicemanifest -ms and .devicemetadata-ms filenames must specify the GUID without the curly brace ({}) delimiters.

  • The GUID for each PC device manifest submission and device metadata package must be unique. When you create a new or revised package, you must create a new GUID.

  • For more details about how to create cabinet files, see the Microsoft Cabinet Software Development Kit.

Example

The following shows an example of how to use the Cabarc tool to create a .devicemanifest-ms file. In this example, the components of the PC device manifest file are located in a local directory that is named PcPackages:

.\PcPackages\
.\PcPackages\PcMetadataSubmission.xml
.\PcPackages\LocaleInfo.xml
.\PcPackages\GUID.devicemetadata-ms

The GUID.devicemanifest-ms file was created in a local directory that is named PCFiles:

Cabarc.exe -r -p -P  .\PcPackages\ 
N .\PCFiles\ GUID.devicemanifest-ms 
.\PcPackages\PcMetadataSubmission.xml
.\PcPackages\LocaleInfo.xml

You can find more information about this tool in in the Cabarc Overview.

Creating PcMetadataSubmission.xml

PcMetadataSubmission XML Schema

A device manifest submission package may contain one PcMetadataSubmission.xml document, which has information that the Windows Dev Center - Hardware site uses to validate the Computer HardwareIDs in PackageInfo.xml.

The data in the PcMetadataSubmission.xml document is formatted based on the PcMetadataSubmission XML schema, which is described below.

noteNote
The XML document must be saved by using UTF-8 encoding.

For more information about ComputerHardwareID, see How to Create a Device Metadata Package for Devices and Printers.

PcMetadataSubmission XML Schema NameSpace

The following are the namespaces of the PcMetadataSubmission XML schema:

  • http://schemas.microsoft.com/Windows/2009/05/MetadataSubmission/PcMetadataSubmission

  • http://schemas.microsoft.com/Windows/2011/06/MetadataSubmission/PcMetadataSubmissionv2

Overview of PcMetadataSubmission XML Elements/Attributes

The following table describes the metadata elements and attributes of the PcMetadataSubmission XML schema.

 

Element/Attributes Element/Attribute type Required/ optional Description

SMBIOSEntry

SMBIOSEntryType

Required

Specifies SMBIOS information for the computer.

SystemManufacturer

tns:SMBIOSStringType

Required

Specifies the name of the computers.

SystemFamily

tns:SMBIOSStringType

Optional

Specifies the family name of the computer manufacturer.

SystemProductName

tns:SMBIOSStringType

Optional

Specifies the name of the product (computer).

BIOSVendor

tns:SMBIOSStringType

Optional

Specifies the name of the BIOS manufacturer.

BIOSVersion

tns:SMBIOSStringType

Optional

Specifies the version number of the BIOS.

SystemBIOSMajorRelease

tns:BIOSReleaseType

Optional

Specifies the MajorRelease version of the BIOS.

SystemBIOSMinorRelease

tns:BIOSReleaseType

Optional

Specifies the MinorRelease version of the BIOS.

Enclosuretype

tns:TypeofEnclosureType

Optional

Specifies the Enclosure type of the computer.

SKUNumber

v2:SMBIOSStringType

Optional

Specifies the SKU Number of the computer.

PcMetadataSubmission XML Schema Definition

The following is the PcMetadataSubmission XML schema definition

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/Windows/2009/05/MetadataSubmission/PcMetadataSubmission" xmlns:tns="http://schemas.microsoft.com/Windows/2009/05/MetadataSubmission/PcMetadataSubmission" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v2="http://schemas.microsoft.com/Windows/2011/06/MetadataSubmission/PcMetadataSubmissionv2" elementFormDefault="qualified" blockDefault="#all">

  <xs:element name="PcMetadataSubmission" type="tns:PcMetadataSubmissionType" />
  <xs:complexType name="PcMetadataSubmissionType">
    <xs:sequence>
      <xs:element name="SMBIOSList" type="tns:SMBIOSListType" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SMBIOSListType">
    <xs:sequence>
      <xs:element name="SMBIOSEntry" type="tns:SMBIOSEntryType" maxOccurs="unbounded" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SMBIOSEntryType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="SystemManufacturer" type="tns:SMBIOSStringType" use="required" />
        <xs:attribute name="SystemFamily" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="SystemProductName" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="BIOSVendor" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="BIOSVersion" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="SystemBIOSMajorRelease" type="tns:BIOSReleaseType" use="optional" />
        <xs:attribute name="SystemBIOSMinorRelease" type="tns:BIOSReleaseType" use="optional" />
        <xs:attribute name="EnclosureType" type="tns:TypeofEnclosureType" use="optional" />
        <xs:attribute ref="v2:SKUNumber" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="SMBIOSStringType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="64" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="BIOSReleaseType">
    <xs:restriction base="xs:hexBinary">
      <xs:minLength value="1" />
      <xs:maxLength value="1" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TypeofEnclosureType">
    <xs:restriction base="xs:hexBinary">
      <xs:pattern value="([0-7][0-9A-F]|0[0-9A-F])" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

The following is the PcMetadataSubmissionv2 XML schema definition:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/Windows/2011/06/MetadataSubmission/PcMetadataSubmissionv2" xmlns:tns="http://schemas.microsoft.com/Windows/2011/06/MetadataSubmission/PcMetadataSubmissionv2" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" blockDefault="#all">

  <xs:attribute name="SKUNumber" type="tns:SMBIOSStringType" />

  <xs:simpleType name="SMBIOSStringType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="64" />
    </xs:restriction>
  </xs:simpleType>

</xs:schema>

PcMetadataSubmission XML Schema Reference

The PcMetadataSubmission XML schema defines the following elements and attributes:

  • SMBIOSList

    • SMBIOSEntry

      • SystemManufacturer

      • SystemFamily

      • SystemProductName

      • BIOSVendor

      • BIOSVersion

      • SystemBIOSMajorRelease

      • SystemBIOSMinorRelease

      • Enclosuretype

      • SKUNumber

SMBIOSEntry Elements

The SMBIOSEntry element specifies computer system information. Based on this information, Windows Dev Center - Hardware creates computer hardware IDs and compares the value with the computer hardwareID in the packageinfo.xml that you submit along with the PcMetadataSubmission.xml.

<xs:element name="SMBIOSEntry" type="tns:SMBIOSEntryType" maxOccurs="unbounded" />

<xs:complexType name="SMBIOSEntryType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="SystemManufacturer" type="tns:SMBIOSStringType" use="required" />
        <xs:attribute name="SystemFamily" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="SystemProductName" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="BIOSVendor" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="BIOSVersion" type="tns:SMBIOSStringType" use="optional" />
        <xs:attribute name="SystemBIOSMajorRelease" type="tns:BIOSReleaseType" use="optional" />
        <xs:attribute name="SystemBIOSMinorRelease" type="tns:BIOSReleaseType" use="optional" />
        <xs:attribute name="Enclosuretype" type="tns:TypeofEnclosureType" use="optional" />
        <xs:anyAttribute namespace="##other" processContents="lax" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

Remarks

More than one SMBIOSEntry element can be used to specify multiple systems.

For example, consider a metadata package supports multiple PC systems. The following SMBIOSEntry elements can be used to define the PC systems.

<SMBIOSList>
  <SMBIOSEntry
      SystemManufacturer="FABRIKAM" SystemFamily…
  />
  <SMBIOSEntry
      SystemManufacturer="FABRIKAM" SystemFamily…
</SMBIOSList>

SystemManufacturer Attributes

The SystemManufacturer attributes specifies the family name of the computers.

<xs:attribute name="SystemManufacturer" type="tns:SMBIOSStringType" use="required" />

<xs:simpleType name="SMBIOSStringType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
    <xs:maxLength value="64" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the SystemManufacturer attribute must be identical with the value in the Manufacturer field in the SMBIOS table in the target PC. The following table shows the field information in SMBIOS of the Manufacturer field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

Manufacturer

System Information (Type 1)

2.0+

04h

BYTE

STRING

The index of a null-terminated string within the dmiStrucBuffer array. This string specifies the name of the computer manufacturer.

For more information about the dmiStrucBuffer array and the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

SystemFamily Attributes

The SystemFamily attributes specifies the name of the computer manufacturer.

<xs:attribute name="SystemFamily" type="tns:SMBIOSStringType" use="optional" />

<xs:simpleType name="SMBIOSStringType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
    <xs:maxLength value="64" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the SystemFamily attribute must be identical with the value in Family field in SMBIOS table in the target PC. The following table shows the field information in SMBIOS of the Family field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

Family

System Information (Type 1)

2.4+

1Ah

BYTE

STRING

The index of a null-terminated string within the dmiStrucBuffer array. This string specifies the family to which a particular computer belongs.A family refers to a set of computers that are similar but not identical from a hardware or software point of view.Typically a family is composed of different computer models, which have different configurations and pricing points. Computers in the same family often have similar branding and cosmetic features.

For more information about the dmiStrucBuffer array and the SMBIOS fields, refer to System Management BIOS (SMBIOS) Specification.

SystemProductName Attributes

The SystemProductName attributes specifies the name of the product (computer).

<xs:attribute name="SystemProductName" type="tns:SMBIOSStringType" use="optional" />

<xs:simpleType name="SMBIOSStringType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
    <xs:maxLength value="64" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the SystemProductName attribute must be identical with the value in Product Name field in SMBIOS table in the target PC. The following table shows the field information in SMBIOS of the Product Name field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

Product Name

System Information (Type 1)

2.0+

05h

BYTE

STRING

The index of a null-terminated string within the dmiStrucBuffer array. This string specifies the product name of the computer.

For more information about the dmiStrucBuffer array and the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

BIOSVendor Attributes

The BIOSVendor attributes specifies the name of the BIOS manufacturer.

<xs:attribute name="BIOSVendor" type="tns:SMBIOSStringType" use="optional" />

<xs:simpleType name="SMBIOSStringType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
    <xs:maxLength value="64" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the BIOSVendor attribute must be identical with the value in the Vendor field in the SMBIOS table in the target PC. The following table shows the field information in the SMBIOS of the Vendor field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

Vendor

BIOS Information (Type 0)

2.0

04h

BYTE

STRING

The index of a null-terminated string within the dmiStrucBuffer array. This string specifies the name of the BIOS vendor.

For more information about the dmiStrucBuffer array and the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

BIOSVersion Attributes

The BIOSVersion attributes specifies the version number of the BIOS.

<xs:attribute name="BIOSVersion" type="tns:SMBIOSStringType" use="optional" />

<xs:simpleType name="SMBIOSStringType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
    <xs:maxLength value="64" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the BIOSVersion attribute must be identical with the value in the BIOS Version field in the SMBIOS table in the target PC. The following table shows the field information in the SMBIOS of the BIOS Version field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

BIOS Version

BIOS Information (Type 0)

2.0

05h

BYTE

STRING

The index of a null-terminated string within the dmiStrucBuffer array. This string can contain information about the processor core and OEM version.

For more information about the dmiStrucBuffer array and the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

SystemBIOSMajorRelease Attributes

The SystemBIOSMajorRelease attributes specifies the Major Release version of the BIOS.

<xs:attribute name="SystemBIOSMajorRelease" type="tns:BIOSReleaseType" use="optional" />

<xs:simpleType name="BIOSReleaseType">
  <xs:restriction base="xs:hexBinary">
    <xs:minLength value="1" />
    <xs:maxLength value="1" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the SystemBIOSMajorRelease attribute must be identical with the value in the SystemBIOSMajorRelease field in the SMBIOS table in the target PC. The following table shows the field information in the SMBIOS of the SystemBIOSMajorRelease field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

System BIOS Major Release

BIOS Information (Type 0)

2.4

14h

BYTE

Varies.

The major release of the system BIOS.

For more information about the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

SystemBIOSMinorRelease Attributes

The SYSTEMBIOSMinorRelease attributes specifies the minor release version of the BIOS.

<xs:attribute name="SystemBIOSMinorRelease" type="tns:BIOSReleaseType" use="optional" />

<xs:simpleType name="BIOSReleaseType">
  <xs:restriction base="xs:hexBinary">
    <xs:minLength value="1" />
    <xs:maxLength value="1" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the SystemBIOSMinorRelease attribute must be identical with the value in the SystemBIOSMinorRelease field in the SMBIOS table in the target PC. The following table shows the field information in the SMBIOS of the SystemBIOSMinorRelease field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

System BIOS Minor Release

BIOS Information (Type 0)

2.4

15h

BYTE

Varies.

The minor release of the system BIOS.

For more information about the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

Enclosuretype Attribute

The Enclosuretype attributes specifies the Enclosure type of the computer.

<xs:attribute name="EnclosureType" type="tns:TypeofEnclosureType" use="optional" />

<xs:simpleType name="TypeofEnclosureType">
  <xs:restriction base="xs:hexBinary">
    <xs:pattern value="([0-7][0-9A-F]|0[0-9A-F])" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the Enclosuretype attribute must be identical with the value in the Enclosure field in the SMBIOS table in the target PC. The following table shows the field information in the SMBIOS of the Enclosure field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

Enclosure type

System Enclosure (Type 3)

2.0+

05h

BYTE

Varies.

The system enclosure or chassis types.

For more information about the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

SKUNumber Element

The SKUNumber element specifies the SKU Number of the computer.

<xs:attribute name="SKUNumber" type="tns:SMBIOSStringType" />

<xs:simpleType name="SMBIOSStringType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
    <xs:maxLength value="64" />
  </xs:restriction>
</xs:simpleType>

Remarks

The value specified by the SKUNumber element must be identical with the value in the SKU Number field in the SMBIOS table in the target PC. The following table shows the field information in the SMBIOS of the SKU Number field.

 

Field name Structure name and type SMBIOS specification version Offset Length Value Description

SKU Number

System Information (Type 1)

2.4+

19h

BYTE

STRING

Number of Null terminated string.This text string is used to identify a particular computer configuration for sale. It is sometimes also called a product ID or purchase order number. This number is frequently found in existing fields, but there is no standard format. Typically for a given system board from a given OEM, there are tens of unique processor, memory, hard drive, and optical drive configurations.

For more information about the SMBIOS fields, see System Management BIOS (SMBIOS) Specification.

PcMetadataSubmission XML Example

The following XML document uses the PcMetadataSubmission XML schema to specify the components of PcMetadataSubmission information of the target computer.

<?xml version="1.0" encoding="utf-8"?>
<PcMetadataSubmission xmlns="http://schemas.microsoft.com/Windows/2009/05/MetadataSubmission/PcMetadataSubmission">
  <SMBIOSList>
   <SMBIOSEntry
      SystemManufacturer="FABRIKAM"
      SystemFamily="FABRIKAM A SERIES"
      SystemProductName="FABRIKAM LAPTOP"
      BIOSVendor="FABRIKAM"
      BIOSVersion="7BETC7WW (2.08 )"
      SystemBIOSMajorRelease="08"
      SystemBIOSMinorRelease="00"
      EnclosureType="0A"
      v2:SKUNumber="1234567890ABCD"
    />
  </SMBIOSList>
</PcMetadataSubmission>

Creating LocaleInfo.xml

For information about creating the Localeinfo.xml file for submission, see Create the LocaleInfo.xml Submission File.

Show:
© 2015 Microsoft