Aus dem Beispielcode von deinem Link:
Code:
uDriveType = GetDriveType(szRootName);
switch(uDriveType) {
case DRIVE_REMOVABLE:
dwAccessFlags = GENERIC_READ | GENERIC_WRITE;
break;
case DRIVE_CDROM:
dwAccessFlags = GENERIC_READ;
break;
default:
_tprintf(TEXT("Cannot eject. Drive type is incorrect.\n"));
return INVALID_HANDLE_VALUE;
}
Ich denke auf ein Festplattenlaufwerk (auch wenn es extern ist) wird "default" zutreffen, auch wenn ich versuche IOCTL_STORAGE_EJECT_MEDIA trotzdem auszuführen, geht es nicht.
Die sonstige in dem Artikel beschriebene Verfahrensweise wende ich schon an, bis eben auf diesen letzten endgültigen Auswerf-Befehl, welcher mit Festplatten nicht funktioniert.