AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Partitionsbezeichnung auslesen - Partitionstabelle

Partitionsbezeichnung auslesen - Partitionstabelle

Offene Frage von "RolfPolf"
Ein Thema von RolfPolf · begonnen am 28. Mär 2008 · letzter Beitrag vom 28. Mär 2008
Antwort Antwort
RolfPolf

Registriert seit: 15. Mär 2006
17 Beiträge
 
Delphi 2005 Personal
 
#1

Partitionsbezeichnung auslesen - Partitionstabelle

  Alt 28. Mär 2008, 12:56
Hallo zusammen...

Mit der API-Funktion GetVolumeInformation aus der kernel32.dll gibt es ja die Möglichkeit, für ein Volume die Volumebezeichnung (Label) zu ermitteln, bspw für Laufwerk C "System". Dazu muss das Root-Verzeichnis des Volumes angegeben werden.

Jetzt möchte ich aber die Laufwerksbezeichnung für ein Volume abfragen, für welches ich kein Root-Verzeichnis angeben kann, da es sich um eine versteckte Partition handelt. Irgendwie muss das ja gehen, schließlich kann PartitionMagic oder so das ja auch.
Igendwo muss die Partitionsbezeichnung doch stehen, und ich hätte mal auf die Partitionstabelle getippt, aber darin finde ich keinen für Die Partitionsbezeichnung vorgesehenen Platz.

Hat jemand ne Idee wo ich die finde oder wie ich sie auslesen kann?

Danke!!!
Grüße,
Rolf!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Partitionsbezeichnung auslesen - Partitionstabelle

  Alt 28. Mär 2008, 14:15
Die Bezeichnung ist entweder im entsprechenden Dateisystem hinterlegt oder halt im Bootsektor der Partition.

Grundlegend brauchst du nur dann Windows zu fragen, wenn er dir sowas ermitteln kann. Wenn es sich um eine versteckte Partition handelt, dann kannst du dich in der Datenträgerverwaltung umschauen und wirst feststellen, das Windows bei versteckten Partition auch keine Namen anzeigt. Von daher hast du da mit Windows Boardmitteln keine Chance.

Partition Magic greift direkt auf die Festplatten zu und ermittelt solche Dinge selber und umgeht die Windows Routinen dazu. Von daher ist das ein ganz anderer Ansatz. Du kannst nun gleiches machen, also die LowLevel WinAPI Funktionen nutzen um direkt auf die Datenebene auf die Datenträger zu zu greifen und die Partitionstabellen selber verarbeiten. Aber da hast du genug zu implementieren. Von daher: ist es dir wirklich so wichtig?
  Mit Zitat antworten Zitat
wido

Registriert seit: 2. Jan 2006
122 Beiträge
 
#3

Re: Partitionsbezeichnung auslesen - Partitionstabelle

  Alt 28. Mär 2008, 14:25
Die Daten stehen nicht in der Partitionstabelle. Genau genommen speichert jedes Dateisystem Volumenamen (wenn sie sowas überhaupt unterstützen) woanders. Bei NTFS z.B. gibts einen versteckten Stream mit dem Namen $Volume im Rootverzeichnis. Um an den heran zu kommen wenn die Parition nicht gemounted ist, wirst Du Dir die Hände aber ziemlich schmutzig machen müssen. NTFS per Hand parsen z.B..
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Partitionsbezeichnung auslesen - Partitionstabelle

  Alt 28. Mär 2008, 16:10
In der Tabelle Win32_LogicalDisk vom WMI stehen alle Labels drin.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Partitionsbezeichnung auslesen - Partitionstabelle

  Alt 28. Mär 2008, 17:18
Zitat von RWarnecke:
In der Tabelle Win32_LogicalDisk vom WMI stehen alle Labels drin.
Auch von versteckten Partitionen die damit auch nicht eingebunden sind? Sicher?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: Partitionsbezeichnung auslesen - Partitionstabelle

  Alt 28. Mär 2008, 22:37
Zitat von Muetze1:
Zitat von RWarnecke:
In der Tabelle Win32_LogicalDisk vom WMI stehen alle Labels drin.
Auch von versteckten Partitionen die damit auch nicht eingebunden sind? Sicher?
Upps, das mit dem versteckten habe ich doch irgendwie überlesen.

Ich habe es gerade mal getestet. Ich habe mit einem Partitionierungsprogramm eine zweite primäre Partition auf hidden gesetzt. Dann habe ich eigentlich nur die Möglichkeit rauszubekommen, ob eine Partition auf dem Datenträger versteckt ist über die Tabelle Win32_DiskPartiton. Dort werden mir auf jeden Fall alle Partitionen ob versteckt oder nicht angezeigt. In dieser Tabelle gibt es noch die Device ID, die ungefähr so aussehen kann :
Zitat:
Disk #0, Partition #0
Disk #0, Partition #1
Ich hoffe dass das ein bisschen weiterhilft.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.
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