I'm working on a project where I'm using the Atmel USB Framework and MSD class. While comparing functionality of commercial MSD devices with my own, I came to the question how some commercial devices can detect the "Safe Removal Hardware" issued from XP. As far as I know there is no information send to the device to tell that it will be removed from bus. I monitored the USB bus and found that on removal only one CSW handshake is done with changed CBWtag/CSWtag. So the question is: How can I detect in my code when the device was safely removed by XP?