Also komme ich für Cluster 3(test1.txt) auf 0xfff und für Cluster 4(test2.txt) auch auf 0xfff.
Das verstehe ich nicht so ganz:
- Eintrag 0: 0xF0F
- Eintrag 1: 0xFFF
- Eintrag 2: 0x00F
- Eintrag 3: 0x0FF
- Eintrag 4: 0xFF0
- Eintrag 5: 0xF00
Das müsste doch eigentlich richtig sein, oder? Wie kommst du denn an deine 0xFFF?
Aus den Einträgen 0x11 0x21 0x22 bekommt man 2 Cluster: 0x111 und 0x222.
Muss man die Einträge auch andersherum lesen? Also so muss ich, wenn in der FAT "f0 ff ff 00 f0 ff ff 0f 00" steht, jedes Byte umdrehen, und dann hintereinander schreiben:
- 0xF0 -> 0x0F
- 0xFF -> 0xFF
- 0xFF -> 0xFF
- usw.
Dann hätte ich:
- Eintrag 0: 0x0FF
- Eintrag 1: 0xFFF
- Eintrag 2: 0x000
- Eintrag 3: 0xFFF
- Eintrag 4: 0xFFF
- Eintrag 5: 0x000
Das sieht erstmal ganz vielversprechend aus: Ich habe viele Werte zwischen 0xFF8 und 0xFFF, also das Ende einer Clusterkette. Ich glaube ich hab es jetzt verstanden:
Den Wert aus dem Verzeichniseintrag (=0x300 -> 0x001) schlage ich in der FAT nach (0xFFF) und stelle fest das die Datei zu Ende ist. Dann Lese ich den 0x001-sten Datensektor (=0x22), wo die Datei liegt.
Vielen Dank für die Denkanstöße
PS: Zu dem Patent von MS hab ich bei meinen Recherchen dies hier gefunde:
Bundespatentgericht erklaert FAT Patent von Microsoft fuer nichtig.
EDIT:
Mein FAT Treiber funktioniert jetzt