I am using a Zero W in gadget mode as an MSD device and that's working; mostly.
It appears as a removable drive under Windows and works in digital picture frames when I enable it with "sudo modprobe g_mass_storage file=..." manually or on boot in /etc/rc.local
But, if I have the Pi connected to my Windows 7 PC, and boot the Pi, then, until the modprobe is issued, Windows identifies it as an "Unknown device", seemingly with VID=0/PID=0 as best I can tell.
For Windows 7 it does then see it as a removable drive as soon as I do the modprobe.
Unfortunately most of the digital picture frames I have hang if powered up before the modprobe, and stay hung even after the modprobe. Once the frames are power-cycled after modprobe they work just fine.
I have removed "dwc2" from /etc/modules ( thinking I can modeprobe that later ), leaving only "dtoverlay=dwc2" in config.txt, but I still get "Unknown device" on Windows 7 and the frames still hanging.
One odd thing is "lsmod" shows the "dwc2" module loaded.
Any ideas on how I can stop my Pi responding to USB interrogations and make it 'not exist' until I make it available as an MSD device ?