Deutsch
Forum

Volume Name GUID Bereitstellungspunkt

 

maroro
Ich habe ein Programm geschieben das verschlüsselte Festplatten managt.
Die Verschlüsselung selbst erledigt Truecrypt.
bei verschlüsselten Festplatten braucht man den Volume Name z.B.
\\?\Volume\{2eca078d-5cbc-43d3-aff8-7e8511f60d0e}\
den man mit dem Programm Mountvol [...]  auslesen kann.
Momentan nutze ich das auch in dem ich Mountvol eine Datei erzeugen lasse
die ich dann mit XProfan auslese. da das jedesmal eine Festplattenaktivität
erzeugt habe ich ein niedriges Aktualisierungsinterval gewählt.
Ich möchte aber öfter aktualisieren weshalb ich nach einer Möglichkeit suche
diese Volume Name mit Xprofan auszulesen. Alle Recherchen waren bislang
aber erfolglos.
Hat jemand eine Idee wie man da ran kommt?
 
10.05.2014  
 




H.Brill
Google ist dein Freund
Volume + GUID eingegeben und der dritte Treffer
war der richtige. Microsofts MSDN :

sowas ? :
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
11.05.2014  
 




maroro
Ja Fast und vielen Dank. Selbst wenn ich die Seite selbst gefunden hätte wäre ich nicht in der Lage gewesen daraus was in XProfan zu basteln. Ich komme an C++ nicht ran. Zum anderen kann ich mir mit dem Programm nur die bereits eingehangenen Volumename anzeigen lassen. ich brauche aber auch die wo Mountvol "*** keine Bereitstellungspunte ***" sagt. Ich habe mit meinen bescheidenen Kenntnissen versucht den Quelltext weiterzuentwickeln hänge aber an einer Fehlermeldung (Lesefehler Kernel32)

Fehler selbst gefunden Findnextvolume will immer das gleiche handle.
Zu früh gefreut Windows7 funktioniert WinXP nicht...
 
11.05.2014  
 




H.Brill
Bei den C++ Deklarationen ist es ja ganz leicht.

Numerische Parameter gehen alle. Bei Strings mußt du halt
per Def - Deklaration die Adresse (Addr(s)) übergeben oder
du nimmst eben auch einen Bereich oder Pointer.
Wenn du einen Parameter übergebist, der von der API-Funktion
beschrieben wird (_Out_), nimmst du am besten einen Bereich.

Das ist der sicherste Weg.
Man könnte zwar auch einen String nehmen, der mit Space(N)
vorbelegt wird, das ist aber nicht immer so sicher wie ein Bereich,
da der String Nullterminiert ist und manche API-Funktionen das
nicht mögen.

Ist dann auch schwierig, die Fehlerquelle ausfindig zu machen,
wenns nicht funktioniert.

Also merke : wenn ein buffer und ein weiter Parameter mit dessen
Länge verlangt wird, am besten einen Bereich nehmen.

PS: Wenn es bei versch. Windows Versionen nicht funktioniert,
kann es durchaus sein, daß MS die Funktion wegoptimiert hat
oder die Parameter geändert. Das steht aber meist in der Doku
der MSDN dabei.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
11.05.2014  
 




maroro
also der Fehler bei XP entsteht dadurch das FindFirstVolume -1 als Handle
zurückgibt womit FindNextVolume nichts anfangen kann. Beide Funktionen
sind auch für XP angegeben.
Ich habe mal die FindFirstVolumeW (Unicode) anstatt FindFirstVolumeA (ANSI)
verwendet auch für Findnext. Jetzt läuft es auch unter XP durch nur enthält der Buffer nur ein "\" gibt's ne Lösung das die "W" das ausspuckt oder ist doch by by XP angesagt.
 
11.05.2014  
 




H.Brill
Nimm mal beim Auslesen des Buffers StringW$().
Das ist normalerweise für Unicode (UTF-8) bestimmt.

Also

Da könntest du sogar mit $WinVer prüfen, ob es
XP ist und dann entsprechend die A oder W - Version
aufrufen.

Vorausgesetzt, die Unicode - Variante würde nicht
mit WIN7 funktionieren.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
11.05.2014  
 




maroro
Fertig. Funktioniert so unter Win7 und XP. Vielen Dank an H.Brill.
'getestet unter Window7 32Bit und XP 32bit
Declare Mem buffer
Declare String s
Declare vh& ,er&'handle ,Rückgabewert
Dim buffer, 60
Def @GetVolumeNameForVolumeMountPoint(3) !"KERNEL32","GetVolumeNameForVolumeMountPointA"
Def @FindFirstVolume(2) !"KERNEL32","FindFirstVolumeW"
Def @FindNextVolume(3) !"KERNEL32","FindNextVolumeA"
Def @FindVolumeClose(1) !"KERNEL32","FindVolumeClose"
'Volume GUID die in einem Mountpoint eingehangen sind

whileloop 8

    print chr$(&loop+66)+":\"
    s = chr$(&loop+66)+":\"'"C:\"
    @GetVolumeNameForVolumeMountPoint(Addr(s), buffer, SizeOf(buffer))
    Print String$(buffer, 0)
    clear buffer

endwhile

Print "-----------------------------------------------------------"
'Alle Volume GUID
vh& = @FindFirstVolume( buffer, SizeOf(buffer))
Print "V: "+str$(vh&)'Volumehandle

If vh& > 0

    'Print String$(buffer, 0)
    Print StringW$(buffer, 0)
    clear buffer
    er& = 1

    while er& = 1

        er& = @FindNextVolume( vh&, buffer, SizeOf(buffer))
        Print "E: "+str$(er&)'Volume gefunden
        Print String$(buffer, 0)
        'Print StringW$(buffer, 0)
        clear buffer

    endwhile

    er& = @FindVolumeClose(vh&)
    Print "C: "+str$(er&)'geschlossen

endif

Waitkey
Dispose buffer
End
 
11.05.2014  
 




H.Brill
Freut mich, daß ich da richtig vermutete
und es läuft.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
11.05.2014  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.266 Betrachtungen

Unbenanntvor 0 min.
Martin Kempf10.11.2019
maroro07.07.2016
H.Brill24.12.2014
Georg Hovenbitzer26.09.2014
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

H.Brill (4x)
maroro (4x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie