I clicked. The drive letter appeared. I copied a file. No crash. No delay.

My task: write a kernel-mode driver that would make Windows recognize the device as an MTP source, not just an “Unknown USB Device.”

Here’s a short draft story about developing an MTP device driver for Windows 11, from a developer’s perspective. The Silent Handshake

Windows 11’s File Explorer expects MTP devices to present object properties (dates, sizes, thumbnails) within milliseconds. My driver was too slow. I moved property caching from synchronous to asynchronous using WDF work items. The device finally showed up in Explorer, but folders appeared empty. Root cause: The driver was sending object handles without the necessary PARENT_OBJECT attribute.

I added a custom IOCTL for user-mode apps to trigger device resync. Wrote a small PowerShell script to fire it when Explorer stalled. The device appeared in “This PC” as a portable music player icon. Copying a 5GB video file worked—slowly, but without corruption.

MTP relies on three basic commands: GetDeviceInfo , OpenSession , and GetStorageIDs . My driver had to translate these into WDF USB I/O targets. After a week of debugging with USB sniffers, I saw the device respond with its vendor extension—Windows 11 rejected it because the extension format didn’t match the expected XML schema for “WPD extensions.” A single missing closing tag in the device’s firmware.

I plugged the device into a clean Windows 11 VM with Secure Boot on. No test-signing mode. The driver, now properly signed with an EV certificate, installed silently. A notification popped up: “Device is ready. Open with File Explorer.”