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
Sign the devicemanifest-ms package with the SignTool tool.
Sign in to the Dashboard from either the Hardware Dev Center or the Windows Dev Center by using a Microsoft account.
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.
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 Hardware Dev Center.
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 Hardware Dev Center 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 Hardware Dev Center 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 Hardware Dev Center 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 Hardware Dev Center 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
Note
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 (device manifest)
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 (device manifest)
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 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 Hardware Dev Center 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.
Note
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
SMBIOSEntry Elements
The SMBIOSEntry element specifies computer system information. Based on this information, Hardware Dev Center 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 (SMBIOSEntry element)
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 (SystemManufacturer attributes)
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 (SystemFamily attributes)
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 (SystemProductName attribute)
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 (BIOSVendor attribute)
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 (BIOSVersion attribute)
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 (SystemBIOSMajorRelease attribute)
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 (SYSTEMBIOSMinorRelease attributes)
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 (Enclosuretype attribute)
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 (SKUNumber element)
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.