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: https://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 https://msdn.microsoft.com/windows/hardware/gg463541.aspx.
Refer to the Microsoft Device Experience Development Kit available at https://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 https://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 https://msdn.microsoft.com/windows/hardware/gg463545.
See also Metadata Schema and Package Format Specification available at https://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 https://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 https://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 https://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 https://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 https://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 https://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 [https://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 https://msdn.microsoft.com/windows/hardware/gg463545.
MTP Network Association, MTP Windows Connect Now, and MTP Wi-Fi Provisioning Extension documents are available at https://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 https://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 [https://www.usb.org/developers/docs]
USB MTP DWG Specification 1.0 (with latest errata) or newer [https://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: https://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 https://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 https://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 https://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 https://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 https://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 https://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 https://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 https://go.microsoft.com/fwlink/?LinkId=243146 .
Additional Information
Enforcement Date |
Jun. 01, 2009 |