To elaborate - current generation systems don't enumerate USB in the firmware unless there's a reason to - either you've got a boot entry that points to a usb device or your software calls ReadKeyStroke()/WaitForKey()/etc. So the point at which you want to say "I'm waiting for this device to be inserted" would wind up being right after you've asked it to enumerate the USB bus. At that point, if the device is already inserted, you're still going to get a new event when it shows up. There's no distinction.