Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi primäre oder erweiterte Partition? (https://www.delphipraxis.net/132376-primaere-oder-erweiterte-partition.html)

Mattze 11. Apr 2009 08:05


primäre oder erweiterte Partition?
 
Hallo,

ich suche und suche, aber finde nix...

Wie kann man per Code (!!! Möglichst nicht WMI!!!) rauskriegen, ob es sich bei einer Partition um eine primäre bzw. eine erweiterte Partition handelt?

(Der Partitiontype bei deviceIOCtl ist in dieser Form nicht aussagekräftig! oder irre ich mich da?)

Gruß
Mattze

hathor 11. Apr 2009 09:40

Re: primäre oder erweiterte Partition?
 
http://www.torry.net/vcl/filedrv/diskaccess/diskacc.zip
.
Das steht im Partitiontyp (Byte 4 der Partitionstabelle): z.B.
parttyp='00' = empty or unknown,
parttyp='05' = erweiterte Partition,
parttyp='07' = NTFS,
parttyp='0B' ='WIN95 OSR2 FAT32';
parttyp='0C' ='WIN95 OSR2 FAT32, LBA-mapped';
parttyp='0E' ='WIN95: DOS 16-bit FAT, LBA-mapped';
parttyp='0F' ='WIN95: Extended partition, LBA-mapped';
.
.
.
parttyp='FF' ='Xenix Bad Block Table';

Mattze 11. Apr 2009 11:32

Re: primäre oder erweiterte Partition?
 
Hallo,

vielen Dank für die schnelle Antwort und erst mal: Schöne Ostern!

Nun gibt es noch ein Problem mehr!!!

1. Als Partitionstyp erhalte ich (mit deviceIOControl) die 07 für ALLE Partitionen der Festplatte.
Ich habe auf der Festplatte aber nur eine (1!) primäre Partition und fünf (5!) erweiterte.

2. In der Patitionstabelle meiner (einzigen) Festplatte steht zwar die erste Partition (C:) richtig drin (Typ: 80, Parttyp: 07, bootfähig usw.), aber keine weitere Partition.
(Da steht noch etwas beginnend mit E8 03 00 00 C1... Was ist das?)

Wo kriege ich die Angaben der anderen Partitionen her?

(Der Parttyp alleine scheint noch nicht aussagekräftig zu sein! Vielleicht mit der Bootfähigkeit? 07 und nicht bootfähig = erweiterte NTFS; 07 und bootfähig = primäre NTFS?)

Gruß
Mattze

hathor 11. Apr 2009 19:01

Re: primäre oder erweiterte Partition?
 
Auf einer HDD ist Platz für 4 Partitionen(4x16Bytes=64Bytes), mehr Platz ist nicht vorhanden in der Partitionstabelle. Eine bootbare Partition hat im Byte 0 den Eintrag "80", sonst "00". Nur primäre Partitionen können bootbar sein.
Es kann nur eine Extended Partition vorhanden sein.
Mögliche Konfigurationen:
4 primäre Partitionen oder
0 bis 3 primäre Partitionen und eine Extended Partition.

Die letzten beiden Bytes des MBR enthalten "55 AA". Die obengenannten 64 Bytes stehen unmittelbar vorher und enthalten die Info über die 4 möglichen Partitionen.

http://de.wikipedia.org/wiki/Master_Boot_Record
.
http://de.wikipedia.org/wiki/Partitionstabelle

http://www.goodells.net/multiboot/tools.htm#ptedit

ftp://ftp.symantec.com/public/englis...ies/ptedit.zip

Mattze 12. Apr 2009 08:40

Re: primäre oder erweiterte Partition?
 
Hallo,

ach so ist das! Bin ich also voll in die unexakte Formulierungsfalle getappt. Das hat man davon, wenn man theoretischer Mathematiker ist! ;-)

Minimalweich selbst gibt nämlich im Feld Partitioncount auch 6 (bei mir) an!!!

Exakt müsste als es ungefähr so sein:
Ich habe auf meinem physischen Gerät eine primäre Partition, die logisch als Laufwerk (C:) definiert ist. Und eine erweiterte Partition, die physisch in 5 Bereiche getrennt ist und die ihrerseits als logische Laufwerke definiert sind.

Ist der "Restbereich", der nach der Definition der primären Partitionen übrig bleibt, automatisch die erweiterte Parttition? Dann wäre nämlich alles klar.
Laut Wikipedia ist die aber in der Partitionstabelle angelegt.
Nach der primären fängt der nächste Bereich ($1CE) bei mir mit E8 an. Für eine erweiterte müsste es aber laut Dir 00, laut Wikipedias Partitionstabelle 5 oder F sein (wenn nicht mehrere). Was nun?

Die 80 an $1BE hatte ich irgendwo nur als "Disk" gelesen und natürlich das "Primary" weiter gesucht...

Vielen Dank!

Gruß
Mattze

hathor 12. Apr 2009 08:58

Re: primäre oder erweiterte Partition?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Mattze
Ist der "Restbereich", der nach der Definition der primären Partitionen übrig bleibt, automatisch die erweiterte Parttition? Dann wäre nämlich alles klar.
Laut Wikipedia ist die aber in der Partitionstabelle angelegt.
Nach der primären fängt der nächste Bereich ($1CE) bei mir mit E8 an. Für eine erweiterte müsste es aber laut Dir 00, laut Wikipedias Partitionstabelle 5 oder F sein (wenn nicht mehrere). Was nun?

Die 80 an $1BE hatte ich irgendwo nur als "Disk" gelesen und natürlich das "Primary" weiter gesucht...


Wenn nur 1 Primäre Partition definiert ist, ist der Rest undefiniert - er ist nur mit 00 gefüllt.

Eine bootbare (AKTIVE) Partition fängt mit "80" im Definitionsblock an, alle anderen mit "00".
Wenn die Primäre Partition nicht AKTIV ist, fängt der 16Byte grosse Definitionsblock auch mit "00" an.

Mattze 12. Apr 2009 09:49

Re: primäre oder erweiterte Partition?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

danke für die schnelle Antwort und nun auch von mir ein Bild.
Ich sag doch: E8 auf 1Ce!

Das wundert mich ja auch! Aber es funktioniert alles bestens!

Gruß
Mattze

hathor 12. Apr 2009 10:10

Re: primäre oder erweiterte Partition?
 
Zitat:

Zitat von Mattze
Hallo,

danke für die schnelle Antwort und nun auch von mir ein Bild.
Ich sag doch: E8 auf 1Ce!

Das wundert mich ja auch! Aber es funktioniert alles bestens!

Gruß
Mattze

Du hast leider nur 14Bytes/Zeile - das macht das Zählen etwas unübersichtlich.
Das 1.Byte der 1.Partitionsdefinition fängt mit "80"(=AKTIV) an - es ist also alles in Ordnung.

Mattze 12. Apr 2009 10:58

Re: primäre oder erweiterte Partition?
 
Hallo,

vielen Dank und Sch...!
Asche auf mein Haupt!
Das ist von der demo.exe aus der diskaccess.zip und da habe ich nicht nachgezählt, bin von 16 Byte pro Zeile ausgegangen.

Selbst bei Programmierern sollte man also lieber misstrauisch sein.
Mist!!!

Gruß
Mattze

PS: Nun fragt sich nur noch, wie ich das mit der logischen Partition (also dem LW-Buchstaben C) zusammenbringe...
Aber das findet sich schon noch...

hathor 12. Apr 2009 11:55

Re: primäre oder erweiterte Partition?
 
Das geht mit WMI.

CIMV2
Win32_LogicalDisk
Name enthält den Laufwerksbuchstaben (z.B. "C:")

--------
weitere interessante Abfragen:
Win32_LogicalDiskToPartition
Win32_DiskPartition
Win32_DiskDriveToDiskPartition
Win32_DiskDrivePhysicalMedia


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz