2.2.2 MTP Vendor Extension Identification Message

When an MTP responder is connected to an MTP initiator over USB, the initiator queries the responder's DeviceInfo dataset. Included in this dataset are the MTP extensions supported by the responder.

If an MTP responder supports the AAVT extension to MTP, the dataset returned by the DeviceInfo MTP operation MUST contain the settings shown in the following table.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

MTPVendorExtensionID

MTPVendorExtensionVersion

MTPVendorExtensionDesc (variable)

...

OperationsSupported (variable)

...

MTPVendorExtensionID (4 bytes): A 32-bit unsigned integer. Indicates the vendor ID of the extension to the Picture Transfer Protocol (PTP) used by the device. For MTP devices, this MUST always be 0x00000006.

MTPVendorExtensionVersion (2 bytes): A 16-bit unsigned integer. Indicates the version, in hundredths, of the extension to PTP used by the device. For devices that implement version 1.0 of the MTP specification, this value MUST always be 0x0064 (100). This field is named MTPVersion in the DeviceInfo dataset definition of the MTP specification.

MTPVendorExtensionDesc (variable): An MTP string that contains the name and version of each MTP extension implemented by the device. This string MUST be in a specific format. The order of extension descriptions in the string is not important. For devices that implement only the MTP specification, the string is "microsoft.com: 1.0; ". For devices that implement AAVT, this string includes "microsoft.com/AAVT: 1.0; " in addition to "microsoft.com: 1.0; ". This field is named MTPExtensions in the DeviceInfo dataset definition of the MTP specification. For more information about MTP string types, refer to section Strings in the MTP specification.

OperationsSupported (variable): An array of MTP operation codes that the device supports. This array MUST include the operation codes for all supported extensions to MTP in addition to MTP and PTP core operations. For devices that implement AAVT, this array includes the values 0x9170, 0x9171, and 0x9172. The value 0x9173 can optionally be included to indicate support for time-based seeking. For more information about MTP array types, refer to section Arrays in the MTP specification.