- Rewrite pending SRB handling and change some behavior of the IRP queue
- The caller is no longer responsible for checking whether it can call USBSTOR_QueueNextRequest; frozen IRP queue and pending SRB are both handled for them
- It's no longer required for the caller of USBSTOR_QueueTerminateRequest to know whether the SRB was active (which was impossible before when handling a cancellation)
- Many potential race issues with IRP cancellation are eliminated
- Debugging hung SRBs is much easier now that pointer to the active one is stored in the FDO
svn path=/branches/usb-bringup-trunk/; revision=55157
Finally add the long awaited Mount Point Manager (aka mountmgr).
It's not complete yet, but will do most of the job it's been designed for.
What's missing is some dos volumes handlers, complete database support (local - registry - is complete, remote - files - is not).
It handles NTFS properties like reparse points.
It also handles devices with drive letters and those without drive letters (by using their unique ID).
Devices removal/arrival is detected through notifications (might be an issue).
Some work will have to be done in storage stack to fully support it.
Most of its IOCTL have been implemented (it's possible, for example, to notify a volume arrival through them, in case notifications don't work).
There's still some work to do on it to have it complete and fully implemented.
Enjoy!
svn path=/branches/usb-bringup-trunk/; revision=55156
- Fix bugs introduced in 55134, 55135
- USB Mass Storage devices should now automatically install again
svn path=/branches/usb-bringup-trunk/; revision=55147
- Fix cancellation for IRPs that have already been dispatched for processing by IoStartNextPacket
- Don't complete IRPs with the IRP list lock held
- Clear the cancel routine before completing the IRP
svn path=/branches/usb-bringup-trunk/; revision=55138
- Check if the device is a composite device
- Report USB\COMPOSITE as compatible id when a usb compsite device is detected
svn path=/branches/usb-bringup-trunk/; revision=55134
- Use the same lock in the IUSBQueue as in the IDMAMemoryManager
- add debug traces (default off)
svn path=/branches/usb-bringup-trunk/; revision=55110
- Compute the frame interval correctly
- Fixes a deadlock on real hardware after enabling interrupts
svn path=/branches/usb-bringup-trunk/; revision=55094
- Don't send removal IRPs to device nodes already pending removal
- USB device removal and reinsertion works now
svn path=/branches/usb-bringup-trunk/; revision=55087
- Fix a broken check that resulted in freeing the same device object twice
- Enable the IoDetachDevice call in usbstor now that the kernel bug is fixed
svn path=/branches/usb-bringup-trunk/; revision=55086
- Implement device disconnect indication for usbehci and usbohci
- Implement device removal for FDOs and PDOs in usbstor and usbhub
svn path=/branches/usb-bringup-trunk/; revision=55080
- Load the disk class for USB drives in 1st stage
- They don't show up on the partition page due to some usetup stuff that needs to be changed
svn path=/branches/usb-bringup-trunk/; revision=55076
- Add a class2 hack to recognize and assign drive letters to storage devices added while the system is running
svn path=/branches/usb-bringup-trunk/; revision=55056
- Add Microsoft Mice Device Description
- fixes hid device entries where instead of device description the device id is displayed
svn path=/branches/usb-bringup-trunk/; revision=55054