What is MTP anyway?

MTP is the successor to PTP (Picture Transfer Protocol) that has been used by cameras. Since PTP was geared towards pictures (the first P in PTP), MTP was designed to be a more media-centric solution (and hence the M for media in MTP) and offers More-Than-PTP :). MTP is an extension to PTP and all PTP…


Enumerating WPD devices (Part 1)

The IPortableDeviceManager interface can be used to enumerate WPD devices. The GetDevices method returns a list of device paths for available WPD devices. This device path is typically a PnP path and can be used later to connect to the device. Error-checking has been omitted in the interests of brevity. HRESULT hr = S_OK; CComPtr<IPortableDeviceManager> spDevMgr;…


Using the WPD API

The WPD API is a COM API. Unfortunately it does not support IDispatch so we can’t use it in scripting. You could use it in .Net with some interop magic, but that’s an extended exercise :). We’ll write samples in C++ to illustrate using the API and as we are going along, we’ll try addressing…


WPD API Documentation

The WPD API documentation is part of the Windows Vista SDK and is available right now on MSDN online. If the link doesn’t work, look for it under ‘Graphics and Multimedia > Audio and Video > Windows Portable Devices’. There is also a sample application available there that shows how to use the WPD API.


Windows Portable Devices (WPD)

Windows Media Player 10 (WMP) introduced the User-mode Driver Framework (UMDF). UMDF allowed drivers to be run in user-mode and the WPD team was the very first client. The WPD team delivered the MTP (Media Transfer Protocol) driver along with a Service Provider for WMDM (Windows Media Devices Manager) used by WMP. This driver stack…


Why dimeby8?

The answer’s pretty obvious if you think in terms of currency. I was shooting for the witty equivalent of my 2 cents. Except dime/8 = 10/8 = 1.25! I didn’t notice this until much later (and it was too late to change the name by then).