Device.Portable Requirements

Updated: September 4, 2013

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/en-us/windows/hardware/gg463541.aspx.

Refer to the Microsoft Device Experience Development Kit available at http://msdn.microsoft.com/en-us/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/en-us/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/en-us/windows/hardware/gg463545.

 

See also Metadata Schema and Package Format Specification available at http://msdn.microsoft.com/en-us/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/en-us/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/en-us/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 (SSR) 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/en-us/windows/hardware/gg463545.

MTP Network Association, MTP Windows Connect Now, and MTP Wi-Fi Provisioning Extension documents are available at http://msdn.microsoft.com/en-us/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

Show:
© 2014 Microsoft. All rights reserved.