USB Mass storage device mounting
I have a custom developed mass storage hardware that has been working perfectly in Windows XP, mounting with a drive letter on windows XP within seconds of plugging it in to any USB port. In windows 7 however the same hardware takes several minutes to mount. First, in a few seconds, Windows recognises it as a USB mass Storage device when you plug it in. But if you look at the process in the action centre ( I think thats what its called, it's the icon in the taskbar area on the bottom right that shows that there's a new device detected and being installed), there are two items to be installed for the device. The first has a tick and is called USB Mass Storage Device. The second one, the name of the actual device itself takes several minutes to finally settle on the generic, default windows driver and eventually gets a tick, causing the autorun to pop up asking if I want to open it. Like I said, it mounts like a breeze on XP but is REALLY slow on Windows 7. What is going on?
I'm a software developer tasked with sorting this out for my client's Windows 7 clients and so far, I have not been able to work out what Windows 7 is doing differently to Windows XP or how I can programmatically fix this. They had the product developped as a mass storage device and its been working well for years on XP. I have NO access to the firmware and don't know where to start in developing a driver for this custom hardware, if that is indeed what needs to be done.. I can however make some sort of program run in the installer for the software that I wrote for the chip. Basically al the software does is lets you upload and download files of a specific type (encrypted proprietary file format for this device that show up on the chip as files in its window). There's nothing fancy going on at all and it doesn't need a device driver to run, just a fix to get it to mount quickly or the software falls over when it formats the device prior to uploading new files to it.
What is different about the process used by Windows 7 when installing a generic mass storage device? Other flash drives I have mount much faster than this custom hardware. What is different about them? Its not the speed of the hardware, because that is not an issue on XP, as I said. Can I write the hardware id into registry somewhere special so Windows 7 stops mucking about looking for an appropriate driver EVERY time it is plugged in? Can I 'tell' Windows 7 to always use the default mass storage device and file system drivers without it getting confused and searching for 2 minutes every single time it is plugged in?
Is there an ini file that could somehow be used by Windows 7 for this specific device or something like that? What do I need to do programatically to get Windows 7 to behave like Windows XP for this device only?
Can I copy the default Windows mass storage device driver inf file or some other inf file and somehow decompile it and edit it to only apply to this custom flash drive?
Im totally stuck right now! The solution is time sensitive as well. (Sad face)
Ill check out the monitoring
Thanks for the links. Regarding a clean install of Windows Xp, umm you mean 7 right? In Windows XP, its always fast. In Windows 7, after a clean boot it is just as slow.
XP is just as quick every time
There's no difference I can see in detection time on XP. I did get the reports for the Windows 7 and Windows XP from UsbLizer and I put them up here:
Originally Posted by Salem
XP produces this data pretty much instantly and mounts the device.
Data is generated like this instantly but it pauses for a minute and displays anothe big chunk and so on until it detects. There is more data at the end of this report after it was detected. If you scroll up you can see something different from that common Bulk or Interrupt Transfer description.
Id like to be able to make a Windows driver for this device. I believe that if I can get the driver to do what XP is doing, then there will be no problem. The default Windows 7 mass storage device driver that is being used is clearly making different traffic. Im not sure exactly how to use this yet. Help?