Ähm, ich glaube hier wird geraten und Dinge als Wahrheit verkauft ohne Wissen, oder?
Grundlegendes:
1. PhysicalDrive0 ist vollkommen in Ordnung und liefert ein
Handle für den primären und sekundären
IDE Port. Deshalb auch die 4. Man kan durch gesetztes Bit 0..3 sehen, ob es ein Gerät gib. Dabei sieht die Zuordnung wie folgt aus:
Bit 0 = Primary Master
Bit 1 = Primary Slave
Bit 2 = Secondary Master
Bit 3 = Secondary Slave
Im High Nibble geben die 4 Bits an, ob es sich um ein ATAPI Gerät handelt, also das Packet Interface verwendet. Wenn dies der Fall ist, dann ist Bit entsprechend gesetzt. Auch hier gilt wieder:
Bit 4 = Primary Master
Bit 5 = Primary Slave
Bit 6 = Secondary Master
Bit 7 = Secondary Slave
2. Dieses Interface leitet nur die Strukturen/Commands direkt an das
IDE Interface weiter. Dies betrifft nur die alte parallel-ATA Schnittstelle. Wenn ihr also einen S-ATA Controller habt und dieser nicht gerade im P-ATA Kompatibilitätsmodus läuft und somit die Port belegt und sich so verhält, dann habt ihr keine Chance. S-ATA Geräte werden in Windows als SCSI Geräte eingebunden und müssen somit über SPTI angesprochen werden und verwenden grundsätzlich wie SCSI nur noch Packet-orientierte Befehlsstrukturen.
3.
Zitat von
himitsu:
ich lasse von 0 bis 255 durchlaufen ...
Nach der Definition der Bits oben dürfte dir vllt. klar werden, das somit die meisten Abfragen die mit der Schleifenvariable gebaut werden Müll sind. Schon allein die Drive Selection in den Kommando-absetzenden-Proceduren kommt damit völlig aus dem Tritt. Du produzierst damit Überläufe in den Command/Drive/Head/Cylinder Registern die über die Struktur befüllt werden. Deine Datensicherheit scheint dir ja nicht viel Wert zu sein.
4. \\.\PhysicalDriveX bezeichnet ein physikalisch vorhandenes Laufwerk und die werden vom HAL in eine Reihenfolge der Erkennung gebracht und die ist soweit immer gleich. Die HAL Schicht kommt vor der Nutzer-Authentifizierung somit ändert sich da rein gar nix abhängig vom Nutzer. Windows verkabelt doch nicht dein System neu wenn du dich anmeldest und klemmt das CD-ROM ab, wenn es dein Bruder an deinem Rechner macht. Sowas wäre ja der Himmel auf Erden für alle Kinderporno-Sammler ...
5.
Zitat von
Daniel G:
Das muss für jede Festplatte ein
Handle mit '\\.\PhysicalDrivex' (x = Zahl von 0 - 3) erzeugt werden.
Probier es aus, aber ich behaupte du wirst niemals ein gesetztes Bit finden bei einem \\.\PhysicalDriveX bei x > 0.
/EDIT: So, der Thread wird ja doch noch weiter gepflegt, ich lass mich denn mal doch benachrichtigen...