Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CreateFile mit Benutzer- oder Hauptbenutzerrechten (https://www.delphipraxis.net/121117-createfile-mit-benutzer-oder-hauptbenutzerrechten.html)

RWarnecke 22. Sep 2008 17:07


CreateFile mit Benutzer- oder Hauptbenutzerrechten
 
Hallo zusammen,

ich ermittel die Informationen über die Festplatten und CD/DVD-Laufwerke über den Befehl CreateFile. Dieses funktioniert auch wunderbar unter Administratorrechten. Nur wenn ich das ganze unter Benutzer- oder Hauptbenutzerrechten ausführe erhalte ich keine Daten.

Mein CreateFile Aufruf lautet so:
Delphi-Quellcode:
CreateFile (PChar('\\.\PhysicalDrive'+IntToStr(counter)),
                    GENERIC_READ or GENERIC_WRITE,
                    FILE_SHARE_READ or FILE_SHARE_WRITE, nil,
                    OPEN_EXISTING, 0, 0);
Gibt es da eine Möglichkeit, die ganzen Informationen unter den Benutzerrechten und/oder Hauptbenutzerrechten zu ermitteln ? Mein erster Ansatz war, ein entsprechendes Privilege zuzuweisen. Habe aber leider das passende nicht gefunden. Allerdings denke ich auch, dass ich mit dem Privilege auf dem Holzweg bin.

Bernhard Geyer 22. Sep 2008 17:19

Re: CreateFile mit Benutzer- oder Hauptbenutzerrechten
 
Welche Infos willst du denn? Ich denke über WMI solltest du evtl. auch die benötigten Infos bekommen.

RWarnecke 22. Sep 2008 17:23

Re: CreateFile mit Benutzer- oder Hauptbenutzerrechten
 
Zitat:

Zitat von Bernhard Geyer
Welche Infos willst du denn? Ich denke über WMI solltest du evtl. auch die benötigten Infos bekommen.

Aber nicht die Daten, die in Win32_DiskPartition drinstehen. Es geht um die folgenden Daten :
Zitat:

Festplatte 0:
Modell : IC35L040AVER07-0
Zylinder : 5005
Spuren pro Zylinder : 255
Sektoren pro Spur : 63
Bytes pro Sektor : 512
Seriennummer : SXPTXQP9615
Bezeichnung : Datenträger Nr. 0, Partition Nr. 0
Größe : 38,34 GB (41171283968 Bytes)

Apollonius 22. Sep 2008 20:41

Re: CreateFile mit Benutzer- oder Hauptbenutzerrechten
 
Warum benötigst du denn GENERIC_WRITE? Die Dateirechte findest du hier. Interessant dürften für dich vor allem FILE_READ_ATTRIBUTES und FILE_READ_EA sein. GENERIC_READ müsstest du dann auch nicht mehr verwenden. Die Regel lautet, immer lediglich die Rechte anzufordern, die auch benötigt werden.

Luckie 22. Sep 2008 20:48

Re: CreateFile mit Benutzer- oder Hauptbenutzerrechten
 
Das Probem ist, dass die Partition physisch geöffnet werden muss und das geht nur mit administrativen Rechten.

Apollonius 22. Sep 2008 21:01

Re: CreateFile mit Benutzer- oder Hauptbenutzerrechten
 
Äh, ja... :duck: Danke für den Hinweis, Luckie.
Die MSDN Library sagt leider deutlich:
Zitat:

The following requirements must be met for such a call to succeed:

* The caller must have administrative privileges. For more information, see Running with Special Privileges.
Also musst du wohl doch eine andere Möglichkeit finden.

RWarnecke 22. Sep 2008 21:17

Re: CreateFile mit Benutzer- oder Hauptbenutzerrechten
 
Zitat:

Zitat von Luckie
Das Probem ist, dass die Partition physisch geöffnet werden muss und das geht nur mit administrativen Rechten.

Das ist bescheiden, aber trotzdem danke für Eure Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 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