Noch ein bißchen sicherer...


[ Nachträge ] [ Nachtrag schicken ] [ Profan² News Board ]

Von Thomas Hölzer am 27 April, 1998 um 13:32:50:

Antwort auf: Disk-Seriennummer schreiben geht doch! von Thomas Hölzer am 27 April, 1998 um 02:22:15:

Ich habe das Ding noch ein bißchen sicherer gemacht( die nicht benötigten Bereiche der Strukturen werden erstmal mit Nullen gefüllt).
Deshalb hier noch einmal das komplette Listing:
MfG
Thomas

Def CloseHandle(1) !"KERNEL32","CloseHandle"
Def CreateFile(7) !"KERNEL32","CreateFileA"
Def DeviceIoControl (8)!"KERNEL32","DeviceIoControl"
Def FillStringNull$(1) Translate$(Space$(@%(1)),Chr$(32),Chr$(0))

' DOS-Interrupt $21 in Win32
Declare VWIN32_DIOC_DOS_IOCTL%
Let VWIN32_DIOC_DOS_IOCTL%=1

' Weitere Deklarationen und Initialisierungen
Declare Vxd&,Device#,REGISTERS#,MediaData#,InOutput#
Declare Fill$
Dim Device#,14
Dim Registers#,28
Dim MediaData#,8
Dim InOutput#,4

' Die Strukturen sicherheitshalber mit Nullen initialisieren
Let fill$=FillStringNull$(28)
String Registers#,0=fill$
String MediaData#,0=fill$
String InOutPut#,0=fill$

'Virtuellen Gerätetreiber ansprechen (*vwin32 ist intern in vmm32.vxd)
String device#,0=Add$("\\\\.\\vwin32",Chr$(0))
Let Vxd&=CreateFile(Device#,$40000000,3,0,3,128,0)

IF Equ(Vxd&,-1)
Messagebox("Ungültiges VXD-Handle","Abbruch",16)
End
EndIf

' Die Seriennummer...
Long MediaData#,0=0
Long MediaData#,2=12345

'Ins EAX-Register DOS-Funktion $440D:
Long Registers#,12=$440D
' EBX - das Laufwerk (0=Aktuelles, 1 = A:,3= C: usw.):
Long Registers#,0=1
' ECX - Unterfunktion (Set Media ID):
Long Registers#,8=$46
' EDX - Struktur mit Datenträgerinfos - hier nur Seriennummer gesetzt:
Long Registers#,4=MediaData#

' Abschicken
IF Equ(0,DeviceIoControl(Vxd&,VWIN32_DIOC_DOS_IOCTL%,Registers#,28,Registers#,28,Mediadata#,0))
print "Fehler!"
Else
print "Seriennummer geschrieben für Disk", Chr$(Add(Long(Registers#,0),64));":"
EndIf

' Aufräumen
CloseHandle(Vxd&)
Dispose Device#
Dispose Registers#
Dispose MediaData#
Dispose InOutPut#
WaitInput




Nachträge:



Nachtrag schreiben

Name:
E-Mail:

Subject:

Nachricht:

Link Adresse:
Link Titel:
Bild Adresse:


[ Nachtrag ] [ Nachtrag schreiben ] [ Profan² News Board ]