I don't think there's much to be gained by trying to do something more advanced than iterating over the 26 drive letters.
Before attempting to check whether or not the marker path exists you could add a call to GetDriveType
and compare the return value against DRIVE_REMOVABLE
. This will make sure that your code doesn't spin up the CD/DVD drive, or hit the network in the case of a mapped share.