Device.Portable Requirements

Device.Portable.Core

Core

Related Requirements
Device.Portable.Core.AudioCodec
Device.Portable.Core.CustomDeviceServices
Device.Portable.Core.DeviceServices
Device.Portable.Core.MediaSync
Device.Portable.Core.ModelID
Device.Portable.Core.MTP
Device.Portable.Core.MTPFunctionality
Device.Portable.Core.MTPMultiSession
Device.Portable.Core.MTPObjectProperties
Device.Portable.Core.MTPStreams
Device.Portable.Core.TransportBluetooth
Device.Portable.Core.TransportIP
Device.Portable.Core.TransportIPDLNA
Device.Portable.Core.TransportUSB
Device.Portable.Core.VideoCodec

Device.Portable.Core.AudioCodec

If a Portable Device can capture audio content, it must do so using a format supported natively in Windows

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

If a Portable Device can capture audio content, it must do so in a format that Windows understands natively. The following tables represent the list of in-box formats that Windows will render to; this is not the exhaustive of supported formats in Windows. The full list of formats supported can be found at: http://go.microsoft.com/fwlink/?LinkID=242995&clcid=0x409Note that for a given format in the tables below it is not required to support all given Bit rates and Sample rates, it is however required to support a format that lines up within the ranges provided. MP4 Audio Content

Setting
Requirement
AAC
Codec
AAC Standard, AAC Profile level 2 minimum (0x29), compatible with (0x29, 0x2A, 0x2B, 0x2C, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33)
bit rate for CBR
96, 128, 160, 192Kbps
Sample rate
44.1 or 48kHz
Channels
2

MP3 Audio Content

Setting
Requirement
MP3
Codec
Version1, Layer3
Bit rate for CBR files
From 32 to 320kilobits per second (Kbps)
Sample rate
16, 22.05, 24, 32, 44.1, 48kilohertz (kHz)
Channels
2

WMA Audio Content

Setting
Requirement
WMA Standard
Codec
WMA9 or later
Bit rate for CBR files
From 32 to 256kilobits per second (Kbps)
Average bit rate for VBR files
From 48 to 160Kbps
Maximum peak bit rate for VBR files
256Kbps
Sample rate
44.1 or 48kilohertz (kHz)
Channels
2

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Portable.Core.CustomDeviceServices

Portable device that implements custom MTP Services meets requirements defined in the MTP Devices Services Extension Specification

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

The MTP Device Services Extension to the Media Transfer Protocol (MTP) helps an MTP Initiator, in this case Windows, find and access certain types of content stored on the device. Extension mechanisms have been defined that provide greater flexibility for applications that deal with specific content types defined by the device. These mechanisms provide greater extensibility than the existing data code mechanisms currently defined by the Media Transfer Protocol Specification, Revision 1.0.If the portable device supports a custom device service the implementation must have a valid ServiceInfo dataset, a valid ServiceCapabilities dataset, and a valid ServicePropertiesDesc dataset as defined in the MTP Device Services Extension Specification. All mandatory properties defined in the specification must be supported in the custom service.The following table is a list of operations that are required when implementing MTP Services:

Operation
MTP Datacode
Description
GetServiceIDs
0x9301
This operation returns an array of ServiceIDs.
GetServiceInfo
0x9302
This operation returns the ServiceInfo dataset for a service.
GetServiceCapabilities
0x9303
All object format and method format information is reported by using the GetServiceCapabilities operation.
GetServicePropDesc
0x9304
This operation returns theServicePropertyDesc dataset for a service.
GetServicePropList
0x9305
This operation is similar to GetObjectPropList in the MTP specification, Revision 1.0. GetServicePropList reads properties from a service.
SetServicePropList
0x9306
This operation sets a ServiceProperty by using the ServicePropList dataset. It enables the writing of property values to a service.
UpdateObjectPropList
0x9307
This operation sets the property list for a particular object that will be updated with a new binary object. This operation can be used to replace the binary data of an existing object.
DeleteObjectPropList
0x9308
This operation removes the properties that are specified in the DeleteObjectPropList dataset from the specified object or objects.
DeleteServicePropList
0x9309
This operation removes the properties that are specified in the DeleteServicePropList dataset from the specified service.

If scenarios that can be implemented using capabilities defined in the MTP specification are not implemented using the operations, device properties, etc. defined in the MTP 1.0 specification (or later) then the device must define these scenarios in terms of device services and must support these services according to the requirements defined in the MTP Device Services Extension Specification. For example, a media exchange service may be defined to manage media synchronization between the initiator and responder which replaces functionality supported by standard MTP 1.0 behavior.To expose a custom device service in Device Stage, a custom task must be authored and defined as part of the Device Stage authoring process. This is described in the Microsoft Device Experience Development Kit.Design Notes:

Refer to the MTP Device Services Extension Specification available at http://msdn.microsoft.com/windows/hardware/gg463541.aspx.

Refer to the Microsoft Device Experience Development Kit available at http://msdn.microsoft.com/windows/hardware/gg463154.aspx.

Additional Information

Business Justification
Partners who wish to use the Microsoft MTP Class driver have a way to provide value add functionality by leveraging the class driver as a pass-through for their custom Device Services. This requirement provides guidance on the correct way to implement custom Device Services.
Enforcement Date
Jun. 01, 2009

Device.Portable.Core.DeviceServices

Portable devices that support defined MTP Services implement these services according to the requirements defined in the MTP Device Services for Windows Specification

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

The MTP Device Services architecture enables Windows to locate and use various services and content types located on a device. By creating extensions to the WPD API and MTP protocol, Windows can locate, consume, and interact with useful content and services on the device.Supported Personal Information Management (PIM) Services:

Contact Service

Calendar Service

Notes Service

Tasks Service

Other Supported Services:

Status Service

Hints Service

Device Metadata Service

Ringtones Service

SMS Service

If the device supports one or more of the PIM services it must also support one of two synchronization services to actually synchronize the data. Windows supports the following in-box:

Enumeration Sync

Anchor Sync

It is up to the manufacturer to choose the services that is best suited for the device. Vendors who choose to support custom Device Stage metadata packages, should ensure that the appropriate tasks or device properties are exposed correctly within the package.For services to be accessible by a service aware initiator the following service related operations must also be supported by the device:

Operation
MTP Datacode
Description
GetServiceIDs
0x9301
This operation returns an array of ServiceIDs.
GetServiceInfo
0x9302
This operation returns the ServiceInfo dataset for a service.
GetServiceCapabilities
0x9303
All object format and method format information is reported by using the GetServiceCapabilities operation.
GetServicePropDesc
0x9304
This operation returns theServicePropertyDesc dataset for a service.
GetServicePropList
0x9305
This operation is similar to GetObjectPropList in the MTP specification, Revision 1.0. GetServicePropList reads properties from a service.
SetServicePropList
0x9306
This operation sets a ServiceProperty by using the ServicePropList dataset. It enables the writing of property values to a service.
UpdateObjectPropList
0x9307
This operation sets the property list for a particular object that will be updated with a new binary object. This operation can be used to replace the binary data of an existing object.
DeleteObjectPropList
0x9308
This operation removes the properties that are specified in the DeleteObjectPropList dataset from the specified object or objects.
DeleteServicePropList
0x9309
This operation removes the properties that are specified in the DeleteServicePropList dataset from the specified service.

Design Notes:

For information on defined MTP Services refer to the MTP Device Services for Windows Specification available at http://msdn.microsoft.com/windows/hardware/gg463544.

For information on service operations and general services details refer to the MTP Device Services Extension Specification available at http://msdn.microsoft.com/windows/hardware/gg463545.

See also Metadata Schema and Package Format Specification available at http://msdn.microsoft.com/windows/hardware/gg463153.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.Core.MediaSync

Portable Devices that support media content must meet basic interoperability requirements to successfully transfer content with an MTP aware media player application on Windows

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

An MTP based device must be able to transfer data to and from the PC using a Windows based application that supports MTP. Note that if the device replaces core MTP media handling functionality with a custom MTP Service then interoperability with Windows Media Player will not function as expected. Devices that implement a custom service must have functional parity with core MTP operations to support media transfer and synchronization with a WPD-based application. The following requirements must be met when interacting with Windows Media Player:Supports digital media transfers from device to computer - The device must support digital media transfers to computers through applications that enable such transfers, such as the Portable Device Shell Namespace Extension and Windows Media Player.Supports digital media transfers from computer to device - The device must support transfer of supported media formats from the computer to the device through Windows Media Player. The device must support transfer of all file formats from the computer to the device through the Windows Namespace Extension.Supports metadata updates - The device must support updates to MTP metadata after the original track has been copied to the device. The metadata updates are performed using Windows Media Player.Supports cancellation of transfer and synchronization - The device must support cancellations of transfers and synchronizations mid-task without crashing or hanging of the device.Properly identifies file types - The device must not rely on the file name extension of a file to discover the file type. The device can use the MTP object format or can parse the file contents to determine the file type.Provide device object metadata - If a host sends an empty value for Album, Artist, or Title, the device must display meaningful text in place of the empty metadata and allow the user to find the content when searching on the associated field in the device UI. For example, a device might use Unknown Artist for the artist when it receives an empty value for artist metadata. If the device supports displaying genre metadata, then if a host sends an empty value for genre, the device must display meaningful text in place of the empty metadata and allow the user to find the content when searching on the associated field in the device UI.Playlist transfer - The device must support the transfer of playlists manually created by the user using Windows Media Player. When a manual playlist is transferred using Windows Media Player, both the playlist and the content the playlist references must reside on the device.To receive playlists from Windows Media Player, a device must support object references. If object references are supported, they must be supported on all media file formats. Support for object references is indicated by supporting the following commands:

GetObjectReferences (0x9810)

SetObjectReferences (0x9811)

The device must also support the AbstractAudioVideoPlaylist (0xBA05) format. A playlist is sent as a 0-byte object with a list of references to object handles for all objects contained in the playlist.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.Core.ModelID

Portable Devices may support the optional ModelID property to uniquely identify logical device functions on a multi-function device

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

Plug and Play includes support for a DevNode property called DEVPKEY_Device_ModelId. This key is used to store the ModelID value that some devices will store in a device-class-specific or manufacturer-specific manner on the device. The ModelID spans logical device functions on a multi-function device through an internal structure in Windows 7 called the Display Object that aggregates logical devices in a single "piece of plastic" representation. The ModelID can be as specific or as generic as the manufacturer chooses. For example, ModelID may differ between product models, colors of an individual model, or even individual devices. To support ModelID the device property code 0xD302 along with required properties must be supported.Design Notes:

Refer to the MTP Device Services Extension Specification that is included with the Windows Portable Device Enabling Kit, available at http://msdn.microsoft.com/windows/hardware/gg463545.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.Core.MTP

Portable devices must support a core set of MTP operations and devices properties as defined in the Media Transport Protocol revision 1.0 or later, along with device properties and object formats for specific device type.

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

Media Transfer Protocol (MTP) is an extension of the Picture Transfer Protocol (ISO 15740). Both specifications include optional commands, operations, etc. but some of these are required for certification. There is a core set of operations and device properties that must be met by each device category in order to be compliant with Windows. Implementation details for MTP are defined in the Media Transfer Protocol Specification, Revision 1.0 or later and will be used as the reference for certification of all portable devices as part of the Windows Hardware Certification Program. Supports MTP driversA Portable Device must work with the inbox MTP drivers that ship with Windows. This means that they must install and work immediately without requiring the installation of additional drivers or software.Supports MTP by defaultPortable Devices must ship with MTP enabled as the default connection mode. Devices can support Mass Storage Class (MSC) in addition to MTP.

The device must not have a persistent, user accessible setting to enable or disable the MTP or MSC mode.

All storage volumes on device (both internal and external) must be accessible using the MTP protocol.

A device can have a safe mode that allows the user to boot to MSC mode for device recovery scenarios. After the user disconnects a device connected in safe mode, the device must resume normal operation.Device Information DatasetThe device must support the MTP DeviceInfo dataset. The following table describes field-specific requirements that must be implemented:

Dataset Field
Requirement
Notes
Standard Version
R
This identifies the PTP version this device can support in hundredths. For MTP devices this shall contain the value 100 (representing 1.00).
MTP Vendor Extension ID
R
This identifies the MTP vendor-extension version in use by this device.
MTP Version
R
This identifies the version of the MTP standard this device supports. For MTP devices implemented under MTP 1.0 this shall contain the value 100 (representing 1.00). For MTP devices implemented under MTP 2.0 this shall contain the value 200.
MTP Extensions
I
This string is used to identify any extension sets applied to MTP.
Functional Mode
R
Modes allow the device to express different states with different capabilities. If the device supports only one mode, this field shall contain the value 0x00000000. See MTP spec for details.
Operations Supported
R
This field identifies by datacode all operations that this device supports in the current functional mode.
Events Supported
I
This field identifies by datacode all events that this device can generate in the current functional mode.
Device Properties Supported
R
This field identifies by datacode all device properties that this device supports in the current functional mode.
Capture Formats
I
This field identifies by datacode the object format codes for each format that this device can generate independently (that is, without the content being placed on the device).
Playback Formats
I
This field identifies by datacode the object format codes for each format that this device can understand and parse if placed on the device.If the device can carry unidentified binary objects without understanding them, it shall indicate this by including the Undefined Object (0x3000) code in its Playback Formats.
Manufacturer
R
The MTP specification identifies this as an optional string, it is required for Hardware Certification. This field contains a human-readable string identifying the manufacturer of this device.
Model
R
The MTP specification identifies this as an optional string, it is required for Hardware Certification. This field contains a human-readable string identifying the model of this device.
Device Version
R
The MTP specification identifies this as an optional string, it is required for Hardware Certification. This field contains a human-readable string identifying the software or firmware version of this device.
Serial Number
R
A serial number must be unique among all devices sharing identical Model and Device Version fields.

Where:R = RequiredI = If Implemented (Optional)N/A = Not ApplicableSupports Control RequestsControl requests enable an MTP initiator to send out-of-band requests to the MTP responder. The device must support the following requests.

Get Status

Cancel Request

Reset Device Request

Required OperationsThis core set of MTP operations and device properties that must be met by each portable device in order to be compliant with Windows. Implementation details for each operation and device property are defined in the Media Transfer Protocol Specification, Revision 1.0 or later. The highlighted operations represent the core set of MTP operations required for all portable devices.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
GetDeviceInfo
0x1001
R
R
R
R
R
OpenSession
0x1002
R
R
R
R
R
CloseSession
0x1003
R
R
R
R
R
GetStorageIDs
0x1004
R
R
R
R
R
GetStorageInfo
0x1005
R
R
R
R
R
GetNumObjects
0x1006
R
R
R
R
R
GetObjectHandles
0x1007
R
R
R
R
R
GetObjectInfo
0x1008
R
R
R
R
R
GetObject
0x1009
R
R
R
R
R
GetDevicePropDesc
0x1014
R
R
R
R
R
GetDevicePropValue
0x1015
R
R
R
R
R
DeleteObject
0x100B
R
R
I
I
I
SetDevicePropValue
0x100A
R
R
I
I
I
SendObjectInfo
0x100C
R
R
I
I
I
SendObject
0x100D
R
R
I
I
I
GetPartialObject
0x101B
R
R
I
I
I
GetObjectPropsSupported
0x9801
R
R
I
I
I
GetObjectPropDesc
0x9802
R
R
I
I
I
GetObjectPropValue
0x9803
R
R
I
I
I
SetObjectPropValue
0x9804
R
R
I
I
I
GetObjectReferences
0x9810
R
R
I
I
I
SetObjectReferences
0x9811
R
R
I
I
I

See Operations in the MTP Specification, Revision 1.0 or later for complete list of defined MTP Operations. The following operations are highly recommended, though not required:

FormatStore (0x100F)

GetObjectPropList (0x9805)

SetObjectPropList (0x9806)

GetInterDependentPropDesc (0x9807)

SendObjectPropList (0x9808) - For this command, your device must also support specification of destination, which allows the MTP initiator to dictate a parent handle for that object.

Required EventsThe following events must be supported for all objects:

ObjectAdded (0x4002)

ObjectRemoved (0x4003)

If the device supports removable media, it must also support the following events.

StoreAdded (0x4004)

StoreRemoved (0x4005)

Operation ResponsesAn appropriate response must be returned for any and all operations. If an error is encountered error response codes are also defined and must be provided by the device. For more information, see "Responses" section of the MTP specification.Required Device Properties

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Battery Level
0x5001
I
I
I
I
I
Synchronization Partner
0xD401
I
I
I
I
I
Device Friendly Name
0xD402
R
R
I
I
I
Device Icon
0xD405
I
I
I
I
I

See Device Properties in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. Device Icon is not required but strongly recommended. High resolution images of the device can be used and exposed in Windows UI.Object FormatsThe following table represents the list of required object formats for a portable device. Each object format also has a list of object properties that must be supported per object type. The highlighted object format is required for all MTP devices and is considered a core MTP requirement for Windows.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Undefined
0x3000
I
I
I
I
I
Association
0x3001
R
R
R
R
R
Abstract Audio Album
0xBA03
I(2)
I(2)
N/A
N/A
I(2)
Abstract Audio & Video Playlist
0xBA05
I
I
N/A
N/A
I
WAV
0x3008
R(1)
R(1)
I
I
I
MP3
0x3009
R(1)
R(1)
I
I
I
AVI
0x300A
R(1)
R(1)
I
R(1)
I
MPEG
0x300B
R(1)
R(1)
I
R(1)
I
ASF
0x300C
R(1)
R(1)
I
R(1)
I
EXIF/JPEG
0x3801
I
I
R(1)
I
I
TIFF/EP
0x3802
I
I
R(1)
I
I
BMP
0x3804
I
I
R(1)
I
I
JPEG XR
0xB804
I
I
R(1)
I
I
WMA
0xB901
R(1)
R(1)
I
I
I
AAC
0xB903
R(1)
R(1)
I
I
I
WMV
0xB981
I
I
I
R(1)
I
MP4 Container
0xB982
I
I
I
R(1)
I
3GP Container
0xB984
I
I
I
R(1)
I
3G2
0xB985
I
I
I
R(1)
I
AVCHD
0xB986
I
I
I
R(1)
I

(1) Portable devices that are capable of playing audio and/or video must support at least one of these formats. This table does not represent the complete list of supported formats; it represents the list of commonly used formats.See Object Formats in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. (2) Support for the following object properties is mandatory for AbstractAudioAlbum objects:

Genre (0xDC8C)

Album Artist (0xDC9B)

WMPMetadataRoundTrip (0x9201)

A device that supports both the AbstractAudioAlbum format and an image format may optionally support album art. Album art is attached to an AbstractAudioAlbum object by adding the art to the album's RepresentativeSampleData property. If a Portable Device supports album art, then the device must support the following object properties:

PurchaseFlag (0xd901), an object property in the Windows Media DRM 10 for Portable Devices MTP Extensions

RepresentativeSampleFormat (0xdc81)

RepresentativeSampleSize (0xdc82)

RepresentativeSampleHeight (0xdc83)

RepresentativeSampleWidth (0xdc84)

RepresentativeSampleData (0xdc86)

User Rating (0xdc8a)

WMPMetadataRoundTrip (0x9201)

Design Notes:

"Picture Transfer Protocol (PTP) for Digital Still Photography Devices," Version 1.0 of the PIMA15740: 2000 Picture Transfer Protocol specification.

The Media Transfer Protocol Specification, Revision 1.0 is available at http://go.microsoft.com/fwlink/?LinkId=243145 .

Additional implementation details can be found in the Windows 7 Portable Device Enabling Kit for MTP, which is available at http://go.microsoft.com/fwlink/?LinkId=243146 .

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.Core.MTPFunctionality

A device that supports MTP must meet mandatory general functionality requirements to ensure expected behavior in Windows

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

Portable devices must behave according to the requirements defined below. The device must: Persists all transferred content - The device must not report receiving content which it has not persisted.Respond as expected - A Portable Device must respond when it receives an MTP GetDeviceStatus control request issued by a host.Support unexpected device disconnects - An unexpected disconnect must not cause the device to stop responding (hang or crash) or to restart.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.Core.MTPMultiSession

Portable devices that enable MTP multisession functionality support required object session operations

Target Feature
Device.Portable.Core
Applies to
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

In order to properly support MTP multisession functionality and work as expected with a multisession aware Initiator the device must support the following session operations:

CreateSession

GetSessionResponderInfo

The RestrictSession operation is optional. This operation is supported in Windows and will honor restrictions that are defined in a responders RestrictSession dataset.These operations are required in addition to the operations for basic session operation defined in the MTP 1.0 specification; those operations include OpenSession, CloseSession, TransactionID, SessionID, etc. There is no requirement for the minimum or maximum number of sessions that a device must support if multisession.Design Notes:

For implementation details see the Media Transfer Protocol Specification Revision 2.0, available at http://go.microsoft.com/fwlink/?LinkId=243142

Additional Information

Exceptions
These operations must be supported if the device supports MTP Multisession over USB or IP. Support for Multisession is not required for Windows Hardware Certification, however supporting this feature is strongly recommended.
Business Justification
This requirement is necessary in order to ensure that a portable device that supports MTP Multisession functionality does so I a way that ensures compliance with other Initiators that the device may interface with. MTP 2.0 is an industry standard specification that is being ratified by the USB organization and represents the standard way that this functionality should be supported.
Enforcement Date
Mar. 01, 2012

Device.Portable.Core.MTPObjectProperties

A MTP device must support object properties for each consumable media format

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

The following device capabilities must be supported for each format reported by the device. If an MP4 container is supported, the device capability needs to include the proper properties in this entry. Based on this information, Windows can predict the proper transcode profile and transcode a file to the device which can then be played back on the device. The following table summarizes Required (R) and recommended If Implemented (I) / Optional object property support for all object formats. This is not an exhaustive list of object properties available, for the complete list refer to the Object Format Summary Table in the MTP specification.

Object property
MTP Datacode
Status
Description
Storage ID
0xDC01
R
The storage area that the object is stored in.
Object Format
0xDC02
R
The data format for the object.
Protection Status
0xDC03
R
The protection status of the object.
Object Size
0xDC04
R
The size of the data component of the object, in bytes.
Object File Name
0xDC07
R
The file name of the object.
Date Created
0xDC08
I(1)
This property contains the date and time when the object was created.
Date Modified
0xDC09
I(1)
The date and time when the object was last altered.
Parent Object
0xDC0B
R
The parent object of the object.
Persistent Unique Object Identifier
0xDC41
R
The persistent unique object identifier of the object.
Name
0xDC44
R
The name of the object.
Non-Consumable
0xDC4F
R
Indicates whether the object was transferred to the portable media player for storage only and is, therefore, not available to be consumed (for example, played) by the portable device.

Where:R = RequiredI = If Implemented (Optional)N/A = Not Applicable(1) It is strongly recommended that Date Created and Date Modified be supported in order for applications to be able to distinguish which objects have been previously imported or synchronized. This is particularly important for photo acquisition scenarios. The following table summarizes required and If Implemented (Optional) object property support for image, audio, and video objects. This is not an exhaustive list of all supported object properties, for a complete list refer to the Object Property Summary Table in the MTP Specification.

Object property
MTP Datacode
Image
Audio
Video
Artist
0xDC46
N/A
R
I
Description
0xDC48
N/A
I
I
Representative Sample Format
0xDC81
I
I
I
Representative Sample Size
0xDC82
I
I
I
Representative Sample Height
0xDC83
I
I
I
Representative Sample Width
0xDC84
I
I
I
Representative Sample Data
0xDC86
I
I
I
Width
0xDC87
R
N/A
R
Height
0xDC88
R
N/A
R
Duration
0xDC89
N/A
I
I
User Rating
0xDC8a
N/A
I
I
Track
0xDC8b
N/A
R
I
Genre
0xDC8c
N/A
I
I
Use Count
0xDC91
N/A
I
I
Parental Rating
0xDC94
N/A
I
I
Original Release Date
0xDC99
N/A
I
I
Album Name
0xDC9A
N/A
R
N/A
Album Artist
0xDC9B
N/A
R(2)
N/A
Bitrate Type
0xDE92
N/A
I
I
Sample Rate
0xDE93
N/A
R
R
Number of Channels
0xDE94
N/A
R
R
ScanType
0xDE97
N/A
I
R
Audio WAVE Codec
0xDE99
N/A
R
R
Audio Bitrate
0xDE9A
N/A
R
R
Video FourCC Codec
0xDE9B
N/A
N/A
R
Video Bitrate
0xDE9C
N/A
N/A
R
Frames Per Thousand Seconds
0xDE9D
N/A
N/A
R
Key Frame Distance
0xDE9E
N/A
N/A
I
Encoding Profile
0xDEA1
N/A
I
R

(2) Note that Album Artist (0xDC9B) is only required if the entire album is available, individual audio files only need to support artist (0xDC46).Additionally, if the device supports an If Implemented (Optional) object property, the device must do so in conformance with the MTP specification and guidelines. Tests are designed to validate optional functionality if the device supports it.Design Notes: For implementation details refer to Media Transfer Protocol Specification Revision 1.0, Appendix B - Object Properties available at http://go.microsoft.com/fwlink/?LinkId=243143.

Additional Information

Business Justification
Object properties enable metadata that describes objects to be exchanged separately from the objects themselves. The primary benefit of this functionality is to permit the rapid enumeration of large storages (e.g. 8GB+), regardless of the file system. For each format that the device supports, the device must support all mandatory MTP object properties for that format.
Enforcement Date
Jun. 01, 2009

Device.Portable.Core.MTPStreams

Portable devices that implement MTP Streams support required object stream operations

Target Feature
Device.Portable.Core
Applies to
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

In order to properly support MTP Stream functionality a device must support the following operations:

Operation
Status
Description
OpenObjectStream
R
This operation opens an object as a stream.
ReadObjectStream
R
This operation reads a portion of data from the previously opened object stream.
WriteObjectStream
R
This operation writes the portion of data to the previously opened object stream.
SeekObjectStream
R
This operation seeks forward reading or writing of the next data block in the stream.
CloseObjectStream
R
This operation closes the previously opened object stream and releases the allocated

Where:R = RequiredI = If Implemented (Optional)N/A = Not ApplicableDesign Notes:

For implementation details refer to Media Transfer Protocol Specification Revision 2.0, available at http://go.microsoft.com/fwlink/?LinkId=243144.

Additional Information

Exceptions
These operations must be supported if the device supports MTP Streams. Support for Streams is not required for Windows Hardware Certification, however supporting this enhancement is strongly recommended.
Business Justification
This requirement is necessary in order to ensure that a portable device that supports MTP Stream functionality does so in a way that ensures compliance with Windows. MTP 2.0 is an industry standard specification that is being ratified by the USB organization and represents the standard way that this functionality should be supported.
Enforcement Date
Mar. 01, 2012

Device.Portable.Core.TransportBluetooth

If a Portable Device leverages the Bluetooth transport, then the device shall support the latest required specification(s) for that transport and related tests: Bluetooth (Specification Version 2.1 or greater)

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

A Portable Device that uses Bluetooth must use the following specifications

Bluetooth Core specification Version 2.1 + EDR (with latest errata) or newer [https://www.bluetooth.org/Technical/Specifications/adopted.htm]

MTP over Bluetooth Profile Specification from Microsoft [http://msdn.microsoft.com/windows/hardware/gg463543]

Design Notes:

The connection must be implemented according to requirements defined for Bluetooth devices.

A Bluetooth-capable Portable Device must be able to communicate with Window's Bluetooth Class Driver (in a standard MTP conversation over Bluetooth similar to USB and TCP/IP).

A Bluetooth-capable Portable Device must support Bluetooth V2.1+EDR, to ensure that Windows can leverage Secure Simple Pairing (SSP) for optimized pairing experience.

A Bluetooth-capable Portable Device must leverage L2CAP Transport MTP Responder Service Definition Record required parameter "GetFormatCapabilities" to mitigate format enumeration performance issues.

Additional Information

Enforcement Date
Jun. 01, 2012

Device.Portable.Core.TransportIP

If a Portable Device leverages the IP transport, then the device shall support the latest required specification(s) for that transport and related tests: IP (Along with the MTP Network Association Extension specification and related UPnP specifications).

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

Windows Portable Device that support MTP over IP must comply with the Camera and Imaging Products Association (CIPA) PTP over Internet Protocol (PTP/IP) specification (CIPA-005/2005), which extends the PTP specification to use TCP/IP to perform PTP operations over wireless networks. A MTP/IP device must support the following three technologies to ensure compatibility with the PC:1. UPnP Basic DeviceMTP/IP devices must support Simple Service Discovery Protocol (SSDP) discovery as a Universal Plug and Play (UPnP ) basic device. Refer to the MTP Network Association Extension definition for details.2. Picture Transfer Protocol over IPMTP/IP devices must comply with the Camera and Imaging Products Association (CIPA) PTP over Internet Protocol (PTP/IP) specification (CIPA-005/2005), which extends the PTP specification to use TCP/IP to perform PTP operations over wireless networks. 3. MTP Network Association ExtensionMTP/IP devices must comply with the Wi-Fi-provisioning extension to the MTP specification and the MTP Network Association extension to the MTP specification.Support for this MTP extension is indicated by including the following string in the MTPVendorExtensionDesc field of the MTP DeviceInfo dataset, returned as a response to the MTP GetDeviceInfo operation.

Dataset field
Datatype
MTPVendorExtensionDesc
"microsoft.com/WPDNA: 1.0"

The device property defined by this extension supports Network Association configuration for devices that support Zero or Nominal Authentication. Secure Authentication is not supported by this extension; secure authentication can be implemented via a custom MTP Service if desired. Refer to the MTP Network Association Extension definition for details.Recommendations for Network Provisioning The MTP Wi-Fi Provisioning Extension extends the Windows Connect Now architecture to MTP devices. This extension defines a new MTP object format for WFC (Wireless Configuration File) objects. A WFC object contains the network settings that will allow the responder to join a wireless network. An initiator supporting the WCN architecture will be able to transfer WFC objects to the device. Each WFC object represents the settings for a single wireless network. The responder may receive multiple WFC objects over time. Each object will be named according to the SSID of the network.The following DataType must be included in the MTPVendorExtensionDesc field of the DeviceInfo dataset.

Dataset field
Datatype
MTPVendorExtensionDesc
"microsoft.com/WPDWCN: 1.0"

Recommendations for Improved Performance over IPIn order to mitigate format enumeration performance issues, MTP/IP devices should also support the GetFormatCapabilities operation as defined in the MTP Device Services Extensions Specification. This operation improves the performance of querying a device for the supported object properties on formats that are associated with classic MTP storages (those formats that appear in the DeviceInfo dataset). GetFormatCapabilities is a bulk operation that duplicates the functionality of GetObjectPropsSupported, GetObjectPropDesc, and GetInterdependentPropDesc. Responders should implement this operation because it replaces multiple calls to the device with a single, more efficient call.Design Notes:

Refer to the PTP/IP Specification (CIPA-005/2005) "Picture Transfer Protocol over TCP/IP Networks".

MTP Device Services Extension Specification at http://msdn.microsoft.com/windows/hardware/gg463545.

MTP Network Association, MTP Windows Connect Now, and MTP Wi-Fi Provisioning Extension documents are available at http://msdn.microsoft.com/windows/hardware/gg463543.

Additional Information

Enforcement Date
Jun. 01, 2012

Device.Portable.Core.TransportIPDLNA

A Portable Device that functions as a DMR or DMS conforms to requirements defined for Networked Media Devices.

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

Description

Portable devices can implement one or more of the DLNA device classes such as:

Digital Media Renderer (DMR)

Digital Media Server (DMS)

The device must meet the requirements defined for each device class called out in the Networked Media Device section of the Windows Hardware Certification Program Requirements. DLNA is managed independent of MTP.Design Notes:

Refer to the Networked Media Device section for requirement details. Information on DLNA Certification can be found at http://www.dlna.org.

Additional Information

Business Justification
Portable Devices that implement DLNA , must pass the Microsoft DLNA logo requirements and associated tests.
Enforcement Date
Jun. 01, 2009

Device.Portable.Core.TransportUSB

If a Portable Device leverages the USB transport, then the device shall support the latest required specification(s) for that transport and related tests: USB (Specification Version 2.0 or greater)

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

A Portable Device that uses USB must use the following:

USB Core specification Version 2.0 (with latest errata) or newer [http://www.usb.org/developers/docs]

USB MTP DWG Specification 1.0 (with latest errata) or newer [http://www.usb.org/developers/devclass_docs]

Design Notes:

USB connected devices must support both High-Speed and Full-Speed. Super-Speed is optional.

The connection must be implemented according to requirements in the appropriate connection type section.

There are no specific Windows Hardware Certification requirements for the type of USB connector used on a portable device.

Additional Information

Business Justification
Devices are optionally allowed to be USB 3.0 or leverage MTP 2.0 specification. Since both of these specifications are relatively new, they will not be mandated in WHCK 2.0, though they may be required for future versions of the Windows Hardware Certification kit.
Enforcement Date
Jun. 01, 2012

Device.Portable.Core.VideoCodec

If a Portable Device has the ability to capture video content, it must do so using a format supported natively in Windows

Target Feature
Device.Portable.Core
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

If a Portable Device can capture video content, it must do so in a format that Windows can decode natively without the need for additional codecs to be installed.The following tables represent the list of in-box formats that Windows will render to; this is not the exhaustive of supported formats. The full list of formats supported can be found at: http://go.microsoft.com/fwlink/?LinkID=242995&clcid=0x409Note that for a given format in the tables below it is not required to support all given Bit rates and Sample rates, it is however required to support a format that lines up within the ranges provided. MP4 Container Content

Setting
Requirement
AAC
Codec
AAC Standard, minimum AAC Profile level 2 (0x29), compatible with 0x29, 0x2A, 0x2B, 0x2C, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33
bit rate for CBR
96, 128, 160, 192Kbps
Sample rate
44.1 or 48kHz
Channels
2
H.264
Codec
H.264 Standard
Codec profile
Baseline, Level 3
Resolution, pixel aspect ratio
Any (as long as reported)
Frame rate
Any (as long as reported)
Average bit rate
Any (as long as reported)

Mobile WMV Video Content

Setting
Requirement
WMA Standard
Codec
WMA9 or later
Average bit rate
From 48 to 96kilobits per second (Kbps)
Maximum peak bit rate
192Kbps
Sample rate
44.1 or 48kHz
Channels
2
WMV
Codec
VC-1
Codec profile
Simple
Resolution, pixel aspect ratio
One of the following: 176×144 pixels, 1:1 220×176 pixels, 1:1
Frame rate
15 or 24frames per second
Average bit rate
From 96 to 384Kbps
Maximum peak bit rate
768Kbps
Maximum buffer
3 seconds
Maximum key-frame distance
15seconds
Color depth
16bits per pixel

Portable WMV Video Content

Setting
Requirement
WMA Standard
Codec
WMA9 or later
Average bit rate
From 48 to 128Kbps
Maximum peak bit rate
256Kbps
Sample rate
44.1 or 48kHz
Channels
2
WMV
Codec
VC-1
Codec profile
Simple
Resolution, pixel aspect ratio
One of the following: 320×240 pixels, 1:1 480×270 pixels, 1:1
Frame rate
24, 25, or 29.97frames per second
Average bit rate
From 384 to 850Kbps
Maximum peak bit rate
1,700Kbps
Maximum buffer
3 seconds
Maximum key-frame distance
15seconds
Color depth
16bits per pixel

Standard WMV Video Content

Setting
Requirement
WMA Standard
Codec
WMA9 or later
Average bit rate
From 64 to 192Kbps
Maximum peak bit rate
360Kbps
Sample rate
44.1 or 48kHz
Channels
2
WMV
Codec
VC-1
Codec profile
Main
Resolution, pixel aspect ratio
One of the following: 640×480 pixels, 1:1 720×480 pixels, 10:11 720×480 pixels, 40:33
Frame rate
24, 25, or 29.97frames per second
Average bit rate
From 1,000 to 3,000Kbps
Maximum peak bit rate
6,000 Kbps
Maximum buffer
2 seconds
Maximum key-frame distance
15seconds
Color depth
16 or 24bits per pixel

High Definition WMV Video Content

Setting
Minimum requirement
WMA Standard
Codec
WMA9 or later
Average bit rate
From 64 to 192Kbps
Maximum peak bit rate
360Kbps
Sample rate
44.1 or 48kHz
Channels
2
WMA Professional
Codec
WMA9 or later
Average bit rate
From 320 to 1,500Kbps
Maximum peak bit rate
2,500Kbps
Sample rate
44.1, 48, or 96kHz
Channels
up to 8
WMV
Codec
VC-1
Codec profile
Advanced
Resolution, pixel aspect ratio
1280×720 pixels, 1:1
Frame rate
24, 25, or 29.97frames per second
Average bit rate
From 8,000 to 10,000Kbps
Maximum peak bit rate
20,000Kbps
Maximum buffer
2 seconds
Maximum key-frame distance
15seconds
Color depth
24bits per pixel

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Portable.DigitalCamera

DigitalCamera

Related Requirements
Device.Portable.DigitalCamera.MTP

Device.Portable.DigitalCamera.MTP

Digital Cameras must support MTP operations and properties as defined in the Media Transport Protocol revision 1.0 or later, along with specific object formats per device type.

Target Feature
Device.Portable.DigitalCamera
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

Media Transfer Protocol (MTP) is an extension of the Picture Transfer Protocol (ISO 15740). Both specifications include optional commands, operations, etc. but some of these are required for certification. There is a core set of operations and device properties that must be met by each device category in order to be compliant with Windows. Implementation details for MTP are defined in the Media Transfer Protocol Specification, Revision 1.0 or later and will be used as the reference for certification of all portable devices as part of the Windows Hardware Certification Program.Required OperationsThis core set of MTP operations and device properties that must be met by each portable device in order to be compliant with Windows. Implementation details for each operation and device property are defined in the Media Transfer Protocol Specification, Revision 1.0 or later.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
GetDeviceInfo
0x1001
R
R
R
R
R
OpenSession
0x1002
R
R
R
R
R
CloseSession
0x1003
R
R
R
R
R
GetStorageIDs
0x1004
R
R
R
R
R
GetStorageInfo
0x1005
R
R
R
R
R
GetNumObjects
0x1006
R
R
R
R
R
GetObjectHandles
0x1007
R
R
R
R
R
GetObjectInfo
0x1008
R
R
R
R
R
GetObject
0x1009
R
R
R
R
R
GetDevicePropDesc
0x1014
R
R
R
R
R
GetDevicePropValue
0x1015
R
R
R
R
R
DeleteObject
0x100B
R
R
I
I
I
SetDevicePropValue
0x100A
R
R
I
I
I
SendObjectInfo
0x100C
R
R
I
I
I
SendObject
0x100D
R
R
I
I
I
GetPartialObject
0x101B
R
R
I
I
I
GetObjectPropsSupported
0x9801
R
R
I
I
I
GetObjectPropDesc
0x9802
R
R
I
I
I
GetObjectPropValue
0x9803
R
R
I
I
I
SetObjectPropValue
0x9804
R
R
I
I
I
GetObjectReferences
0x9810
R
R
I
I
I
SetObjectReferences
0x9811
R
R
I
I
I

Where:R = RequiredI = If Implemented (Optional)N/A = Not ApplicableSee Operations in the MTP Specification, Revision 1.0 or later for complete list of defined MTP Operations. The following operations are highly recommended, though not required:

FormatStore (0x100F)

GetObjectPropList (0x9805)

SetObjectPropList (0x9806)

GetInterDependentPropDesc (0x9807)

SendObjectPropList (0x9808) - For this command, your device must also support specification of destination, which allows the MTP initiator to dictate a parent handle for that object.

Required EventsThe following events must be supported for all objects:

ObjectAdded (0x4002)

ObjectRemoved (0x4003)

If the device supports removable media, it must also support the following events.

StoreAdded (0x4004)

StoreRemoved (0x4005)

Operation ResponsesAn appropriate response must be returned for any and all operations. If an error is encountered error response codes are also defined and must be provided by the device. For more information, see "Responses" section of the MTP specification.Required Device Properties

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Battery Level
0x5001
I
I
I
I
I
Synchronization Partner
0xD401
I
I
I
I
I
Device Friendly Name
0xD402
R
R
I
I
I
Device Icon
0xD405
I
I
I
I
I

See Device Properties in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. Device Icon is not required but strongly recommended. High resolution images of the device can be used and exposed in Windows UI.Object FormatsThe following table represents the list of required object formats for a portable device. Each object format also has a list of object properties that must be supported per object type.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Undefined
0x3000
I
I
I
I
I
Association
0x3001
R
R
R
R
R
Abstract Audio Album
0xBA03
I
I
N/A
N/A
I
Abstract Audio & Video Playlist
0xBA05
I
I
N/A
N/A
I
WAV
0x3008
R(1)
R(1)
I
I
I
MP3
0x3009
R(1)
R(1)
I
I
I
AVI
0x300A
R(1)
R(1)
I
R(1)
I
MPEG
0x300B
R(1)
R(1)
I
R(1)
I
ASF
0x300C
R(1)
R(1)
I
R(1)
I
EXIF/JPEG
0x3801
I
I
R(1)
I
I
TIFF/EP
0x3802
I
I
R(1)
I
I
BMP
0x3804
I
I
R(1)
I
I
JPEG XR
0xB804
I
I
R(1)
I
I
WMA
0xB901
R(1)
R(1)
I
I
I
AAC
0xB903
R(1)
R(1)
I
I
I
WMV
0xB981
I
I
I
R(1)
I
MP4 Container
0xB982
I
I
I
R(1)
I
3GP Container
0xB984
I
I
I
R(1)
I
3G2
0xB985
I
I
I
R(1)
I
AVCHD
0xB986
I
I
I
R(1)
I

(1) Portable devices that are capable of playing audio and/or video must support at least one of these formats. This table does not represent the complete list of supported formats; it represents the list of commonly used formats.See Object Formats in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. Design Notes:

"Picture Transfer Protocol (PTP) for Digital Still Photography Devices," Version 1.0 of the PIMA15740: 2000 Picture Transfer Protocol specification.

The Media Transfer Protocol Specification, Revision 1.0 is available at http://go.microsoft.com/fwlink/?LinkId=243145 .

Additional implementation details can be found in the Windows 7 Portable Device Enabling Kit for MTP, which is available at http://go.microsoft.com/fwlink/?LinkId=243146 .

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.DigitalVideoCamera

DigitalVideoCamera

Related Requirements
Device.Portable.DigitalVideoCamera.MTP

Device.Portable.DigitalVideoCamera.MTP

Digital Video Cameras must support MTP operations and properties as defined in the Media Transport Protocol revision 1.0 or later, along with specific object formats per device type.

Target Feature
Device.Portable.DigitalVideoCamera
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

Media Transfer Protocol (MTP) is an extension of the Picture Transfer Protocol (ISO 15740). Both specifications include optional commands, operations, etc. but some of these are required for certification. There is a core set of operations and device properties that must be met by each device category in order to be compliant with Windows. Implementation details for MTP are defined in the Media Transfer Protocol Specification, Revision 1.0 or later and will be used as the reference for certification of all portable devices as part of the Windows Hardware Certification Program.Required OperationsThis core set of MTP operations and device properties that must be met by each portable device in order to be compliant with Windows. Implementation details for each operation and device property are defined in the Media Transfer Protocol Specification, Revision 1.0 or later.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
GetDeviceInfo
0x1001
R
R
R
R
R
OpenSession
0x1002
R
R
R
R
R
CloseSession
0x1003
R
R
R
R
R
GetStorageIDs
0x1004
R
R
R
R
R
GetStorageInfo
0x1005
R
R
R
R
R
GetNumObjects
0x1006
R
R
R
R
R
GetObjectHandles
0x1007
R
R
R
R
R
GetObjectInfo
0x1008
R
R
R
R
R
GetObject
0x1009
R
R
R
R
R
GetDevicePropDesc
0x1014
R
R
R
R
R
GetDevicePropValue
0x1015
R
R
R
R
R
DeleteObject
0x100B
R
R
I
I
I
SetDevicePropValue
0x100A
R
R
I
I
I
SendObjectInfo
0x100C
R
R
I
I
I
SendObject
0x100D
R
R
I
I
I
GetPartialObject
0x101B
R
R
I
I
I
GetObjectPropsSupported
0x9801
R
R
I
I
I
GetObjectPropDesc
0x9802
R
R
I
I
I
GetObjectPropValue
0x9803
R
R
I
I
I
SetObjectPropValue
0x9804
R
R
I
I
I
GetObjectReferences
0x9810
R
R
I
I
I
SetObjectReferences
0x9811
R
R
I
I
I

Where:R = RequiredI = If Implemented (Optional)N/A = Not ApplicableSee Operations in the MTP Specification, Revision 1.0 or later for complete list of defined MTP Operations. The following operations are highly recommended, though not required:

FormatStore (0x100F)

GetObjectPropList (0x9805)

SetObjectPropList (0x9806)

GetInterDependentPropDesc (0x9807)

SendObjectPropList (0x9808) - For this command, your device must also support specification of destination, which allows the MTP initiator to dictate a parent handle for that object.

Required EventsThe following events must be supported for all objects:

ObjectAdded (0x4002)

ObjectRemoved (0x4003)

If the device supports removable media, it must also support the following events.

StoreAdded (0x4004)

StoreRemoved (0x4005)

Operation ResponsesAn appropriate response must be returned for any and all operations. If an error is encountered error response codes are also defined and must be provided by the device. For more information, see "Responses" section of the MTP specification.Required Device Properties

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Battery Level
0x5001
I
I
I
I
I
Synchronization Partner
0xD401
I
I
I
I
I
Device Friendly Name
0xD402
R
R
I
I
I
Device Icon
0xD405
I
I
I
I
I

See Device Properties in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. Device Icon is not required but strongly recommended. High resolution images of the device can be used and exposed in Windows UI.Object FormatsThe following table represents the list of required object formats for a portable device. Each object format also has a list of object properties that must be supported per object type.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Undefined
0x3000
I
I
I
I
I
Association
0x3001
R
R
R
R
R
Abstract Audio Album
0xBA03
I
I
N/A
N/A
I
Abstract Audio & Video Playlist
0xBA05
I
I
N/A
N/A
I
WAV
0x3008
R(1)
R(1)
I
I
I
MP3
0x3009
R(1)
R(1)
I
I
I
AVI
0x300A
R(1)
R(1)
I
R(1)
I
MPEG
0x300B
R(1)
R(1)
I
R(1)
I
ASF
0x300C
R(1)
R(1)
I
R(1)
I
EXIF/JPEG
0x3801
I
I
R(1)
I
I
TIFF/EP
0x3802
I
I
R(1)
I
I
BMP
0x3804
I
I
R(1)
I
I
JPEG XR
0xB804
I
I
R(1)
I
I
WMA
0xB901
R(1)
R(1)
I
I
I
AAC
0xB903
R(1)
R(1)
I
I
I
WMV
0xB981
I
I
I
R(1)
I
MP4 Container
0xB982
I
I
I
R(1)
I
3GP Container
0xB984
I
I
I
R(1)
I
3G2
0xB985
I
I
I
R(1)
I
AVCHD
0xB986
I
I
I
R(1)
I

(1) Portable devices that are capable of playing audio and/or video must support at least one of these formats. This table does not represent the complete list of supported formats; it represents the list of commonly used formats.See Object Formats in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. Design Notes:

"Picture Transfer Protocol (PTP) for Digital Still Photography Devices," Version 1.0 of the PIMA15740: 2000 Picture Transfer Protocol specification.

The Media Transfer Protocol Specification, Revision 1.0 is available at http://go.microsoft.com/fwlink/?LinkId=243145 .

Additional implementation details can be found in the Windows 7 Portable Device Enabling Kit for MTP, which is available at http://go.microsoft.com/fwlink/?LinkId=243146 .

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.MediaPlayer

MediaPlayer

Related Requirements
Device.Portable.MediaPlayer.MTP

Device.Portable.MediaPlayer.MTP

Media Players must support MTP operations and properties as defined in the Media Transport Protocol revision 1.0 or later, along with specific object formats per device type.

Target Feature
Device.Portable.MediaPlayer
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

Media Transfer Protocol (MTP) is an extension of the Picture Transfer Protocol (ISO 15740). Both specifications include optional commands, operations, etc. but some of these are required for certification. There is a core set of operations and device properties that must be met by each device category in order to be compliant with Windows. Implementation details for MTP are defined in the Media Transfer Protocol Specification, Revision 1.0 or later and will be used as the reference for certification of all portable devices as part of the Windows Hardware Certification Program.Required OperationsThis core set of MTP operations and device properties that must be met by each portable device in order to be compliant with Windows. Implementation details for each operation and device property are defined in the Media Transfer Protocol Specification, Revision 1.0 or later.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
GetDeviceInfo
0x1001
R
R
R
R
R
OpenSession
0x1002
R
R
R
R
R
CloseSession
0x1003
R
R
R
R
R
GetStorageIDs
0x1004
R
R
R
R
R
GetStorageInfo
0x1005
R
R
R
R
R
GetNumObjects
0x1006
R
R
R
R
R
GetObjectHandles
0x1007
R
R
R
R
R
GetObjectInfo
0x1008
R
R
R
R
R
GetObject
0x1009
R
R
R
R
R
GetDevicePropDesc
0x1014
R
R
R
R
R
GetDevicePropValue
0x1015
R
R
R
R
R
DeleteObject
0x100B
R
R
I
I
I
SetDevicePropValue
0x100A
R
R
I
I
I
SendObjectInfo
0x100C
R
R
I
I
I
SendObject
0x100D
R
R
I
I
I
GetPartialObject
0x101B
R
R
I
I
I
GetObjectPropsSupported
0x9801
R
R
I
I
I
GetObjectPropDesc
0x9802
R
R
I
I
I
GetObjectPropValue
0x9803
R
R
I
I
I
SetObjectPropValue
0x9804
R
R
I
I
I
GetObjectReferences
0x9810
R
R
I
I
I
SetObjectReferences
0x9811
R
R
I
I
I

Where:R = RequiredI = If Implemented (Optional)N/A = Not ApplicableSee Operations in the MTP Specification, Revision 1.0 or later for complete list of defined MTP Operations. The following operations are highly recommended, though not required:

FormatStore (0x100F)

GetObjectPropList (0x9805)

SetObjectPropList (0x9806)

GetInterDependentPropDesc (0x9807)

SendObjectPropList (0x9808) - For this command, your device must also support specification of destination, which allows the MTP initiator to dictate a parent handle for that object.

Required EventsThe following events must be supported for all objects:

ObjectAdded (0x4002)

ObjectRemoved (0x4003)

If the device supports removable media, it must also support the following events.

StoreAdded (0x4004)

StoreRemoved (0x4005)

Operation ResponsesAn appropriate response must be returned for any and all operations. If an error is encountered error response codes are also defined and must be provided by the device. For more information, see "Responses" section of the MTP specification.Required Device Properties

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Battery Level
0x5001
I
I
I
I
I
Synchronization Partner
0xD401
I
I
I
I
I
Device Friendly Name
0xD402
R
R
I
I
I
Device Icon
0xD405
I
I
I
I
I

See Device Properties in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. Device Icon is not required but strongly recommended. High resolution images of the device can be used and exposed in Windows UI.Object FormatsThe following table represents the list of required object formats for a portable device. Each object format also has a list of object properties that must be supported per object type.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Undefined
0x3000
I
I
I
I
I
Association
0x3001
R
R
R
R
R
Abstract Audio Album
0xBA03
I(2)
I(2)
N/A
N/A
I(2)
Abstract Audio & Video Playlist
0xBA05
I
I
N/A
N/A
I
WAV
0x3008
R(1)
R(1)
I
I
I
MP3
0x3009
R(1)
R(1)
I
I
I
AVI
0x300A
R(1)
R(1)
I
R(1)
I
MPEG
0x300B
R(1)
R(1)
I
R(1)
I
ASF
0x300C
R(1)
R(1)
I
R(1)
I
EXIF/JPEG
0x3801
I
I
R(1)
I
I
TIFF/EP
0x3802
I
I
R(1)
I
I
BMP
0x3804
I
I
R(1)
I
I
JPEG XR
0xB804
I
I
R(1)
I
I
WMA
0xB901
R(1)
R(1)
I
I
I
AAC
0xB903
R(1)
R(1)
I
I
I
WMV
0xB981
I
I
I
R(1)
I
MP4 Container
0xB982
I
I
I
R(1)
I
3GP Container
0xB984
I
I
I
R(1)
I
3G2
0xB985
I
I
I
R(1)
I
AVCHD
0xB986
I
I
I
R(1)
I

(1) Portable devices that are capable of playing audio and/or video must support at least one of these formats. This table does not represent the complete list of supported formats; it represents the list of commonly used formats.See Object Formats in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. (2) Support for the following object properties is mandatory for AbstractAudioAlbum objects:

Genre (0xDC8C)

Album Artist (0xDC9B)

WMPMetadataRoundTrip (0x9201)

A device that supports both the AbstractAudioAlbum format and an image format may optionally support album art. Album art is attached to an AbstractAudioAlbum object by adding the art to the album's RepresentativeSampleData property. If a Portable Device supports album art, then the device must support the following object properties:

PurchaseFlag (0xd901), an object property in the Windows Media DRM 10 for Portable Devices MTP Extensions

RepresentativeSampleFormat (0xdc81)

RepresentativeSampleSize (0xdc82)

RepresentativeSampleHeight (0xdc83)

RepresentativeSampleWidth (0xdc84)

RepresentativeSampleData (0xdc86)

User Rating (0xdc8a)

WMPMetadataRoundTrip (0x9201)

Design Notes:

"Picture Transfer Protocol (PTP) for Digital Still Photography Devices," Version 1.0 of the PIMA15740: 2000 Picture Transfer Protocol specification.

The Media Transfer Protocol Specification, Revision 1.0 is available at http://go.microsoft.com/fwlink/?LinkId=243145 .

Additional implementation details can be found in the Windows 7 Portable Device Enabling Kit for MTP, which is available at http://go.microsoft.com/fwlink/?LinkId=243146 .

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Portable.MobilePhone

MobilePhone

Related Requirements
Device.Portable.MobilePhone.MTP

Device.Portable.MobilePhone.MTP

Mobile Phones must support MTP operations and properties as defined in the Media Transport Protocol revision 1.0 or later, along with specific object formats per device type.

Target Feature
Device.Portable.MobilePhone
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Vista Client x86, x64

Description

Media Transfer Protocol (MTP) is an extension of the Picture Transfer Protocol (ISO 15740). Both specifications include optional commands, operations, etc. but some of these are required for certification. There is a core set of operations and device properties that must be met by each device category in order to be compliant with Windows. Implementation details for MTP are defined in the Media Transfer Protocol Specification, Revision 1.0 or later and will be used as the reference for certification of all portable devices as part of the Windows Hardware Certification Program.Required OperationsThis core set of MTP operations and device properties that must be met by each portable device in order to be compliant with Windows. Implementation details for each operation and device property are defined in the Media Transfer Protocol Specification, Revision 1.0 or later.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
GetDeviceInfo
0x1001
R
R
R
R
R
OpenSession
0x1002
R
R
R
R
R
CloseSession
0x1003
R
R
R
R
R
GetStorageIDs
0x1004
R
R
R
R
R
GetStorageInfo
0x1005
R
R
R
R
R
GetNumObjects
0x1006
R
R
R
R
R
GetObjectHandles
0x1007
R
R
R
R
R
GetObjectInfo
0x1008
R
R
R
R
R
GetObject
0x1009
R
R
R
R
R
GetDevicePropDesc
0x1014
R
R
R
R
R
GetDevicePropValue
0x1015
R
R
R
R
R
DeleteObject
0x100B
R
R
I
I
I
SetDevicePropValue
0x100A
R
R
I
I
I
SendObjectInfo
0x100C
R
R
I
I
I
SendObject
0x100D
R
R
I
I
I
GetPartialObject
0x101B
R
R
I
I
I
GetObjectPropsSupported
0x9801
R
R
I
I
I
GetObjectPropDesc
0x9802
R
R
I
I
I
GetObjectPropValue
0x9803
R
R
I
I
I
SetObjectPropValue
0x9804
R
R
I
I
I
GetObjectReferences
0x9810
R
R
I
I
I
SetObjectReferences
0x9811
R
R
I
I
I

Where:R = RequiredI = If Implemented (Optional)N/A = Not ApplicableSee Operations in the MTP Specification, Revision 1.0 or later for complete list of defined MTP Operations. The following operations are highly recommended, though not required:

FormatStore (0x100F)

GetObjectPropList (0x9805)

SetObjectPropList (0x9806)

GetInterDependentPropDesc (0x9807)

SendObjectPropList (0x9808) - For this command, your device must also support specification of destination, which allows the MTP initiator to dictate a parent handle for that object.

Required EventsThe following events must be supported for all objects:

ObjectAdded (0x4002)

ObjectRemoved (0x4003)

If the device supports removable media, it must also support the following events.

StoreAdded (0x4004)

StoreRemoved (0x4005)

Operation ResponsesAn appropriate response must be returned for any and all operations. If an error is encountered error response codes are also defined and must be provided by the device. For more information, see "Responses" section of the MTP specification.Required Device Properties

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Battery Level
0x5001
I
I
I
I
I
Synchronization Partner
0xD401
I
I
I
I
I
Device Friendly Name
0xD402
R
R
I
I
I
Device Icon
0xD405
I
I
I
I
I

See Device Properties in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. Device Icon is not required but strongly recommended. High resolution images of the device can be used and exposed in Windows UI.Object FormatsThe following table represents the list of required object formats for a portable device. Each object format also has a list of object properties that must be supported per object type.

Property Code
Mobile Phone
Media Player
Digital Camera
Digital Video Camera
Other (Base)
Undefined
0x3000
I
I
I
I
I
Association
0x3001
R
R
R
R
R
Abstract Audio Album
0xBA03
I(2)
I(2)
N/A
N/A
I(2)
Abstract Audio & Video Playlist
0xBA05
I
I
N/A
N/A
I
WAV
0x3008
R(1)
R(1)
I
I
I
MP3
0x3009
R(1)
R(1)
I
I
I
AVI
0x300A
R(1)
R(1)
I
R(1)
I
MPEG
0x300B
R(1)
R(1)
I
R(1)
I
ASF
0x300C
R(1)
R(1)
I
R(1)
I
EXIF/JPEG
0x3801
I
I
R(1)
I
I
TIFF/EP
0x3802
I
I
R(1)
I
I
BMP
0x3804
I
I
R(1)
I
I
JPEG XR
0xB804
I
I
R(1)
I
I
WMA
0xB901
R(1)
R(1)
I
I
I
AAC
0xB903
R(1)
R(1)
I
I
I
WMV
0xB981
I
I
I
R(1)
I
MP4 Container
0xB982
I
I
I
R(1)
I
3GP Container
0xB984
I
I
I
R(1)
I
3G2
0xB985
I
I
I
R(1)
I
AVCHD
0xB986
I
I
I
R(1)
I

(1) Portable devices that are capable of playing audio and/or video must support at least one of these formats. This table does not represent the complete list of supported formats; it represents the list of commonly used formats.See Object Formats in the MTP Specification, Revision 1.0 or later for complete list of defined Device Properties. (2) Support for the following object properties is mandatory for AbstractAudioAlbum objects:

Genre (0xDC8C)

Album Artist (0xDC9B)

WMPMetadataRoundTrip (0x9201)

A device that supports both the AbstractAudioAlbum format and an image format may optionally support album art. Album art is attached to an AbstractAudioAlbum object by adding the art to the album's RepresentativeSampleData property. If a Portable Device supports album art, then the device must support the following object properties:

PurchaseFlag (0xd901), an object property in the Windows Media DRM 10 for Portable Devices MTP Extensions

RepresentativeSampleFormat (0xdc81)

RepresentativeSampleSize (0xdc82)

RepresentativeSampleHeight (0xdc83)

RepresentativeSampleWidth (0xdc84)

RepresentativeSampleData (0xdc86)

User Rating (0xdc8a)

WMPMetadataRoundTrip (0x9201)

Design Notes:

"Picture Transfer Protocol (PTP) for Digital Still Photography Devices," Version 1.0 of the PIMA15740: 2000 Picture Transfer Protocol specification.

The Media Transfer Protocol Specification, Revision 1.0 is available at http://go.microsoft.com/fwlink/?LinkId=243145 .

Additional implementation details can be found in the Windows 7 Portable Device Enabling Kit for MTP, which is available at http://go.microsoft.com/fwlink/?LinkId=243146 .

Additional Information

Enforcement Date
Jun. 01, 2009