I'd like to know how to determine if a drive is an external device that can be removed while hot (i.e. firewire and USB) or an internal device. DriveType() seems like it's what I need, but since I do not have an external drive I cannot verify.

The function has the following return values (and a few others):

DRIVE_REMOVABLE - The disk can be removed from the drive.
DRIVE_FIXED - The disk cannot be removed from the drive.

This sounds right, but maybe in Windows DRIVE_REMOVABLE really means something else like a removable floppy disk.


I've also noticed that you youngsters today have these new fangled SATA drives with friendly little connectors, and that many PCs even expose these connection ports on the outside of the PC for external SATA drives. Does this mean that the PC sees no difference between an internal and external SATA drive, or does Windows know the difference because the external SATA shell or connection has some sort of special circuitry that allows it to be added/removed on the fly?

Thanks