#Include <WinAPIex.au3>
#Include <WinAPI.au3>
Global $sDrive, $ibufer, $filebufer
$sDrive = 'C:'
;============== Считываю данные с загрузочного сектора и сохроняю их на диск =====================
$strBufer = DllStructCreate("byte[512]") ; создаем структуру (будем считывать 512 байт )
$hDisk = _WinAPI_CreateFile('\\.\' & $sDrive, 2 ,2 + 4 , 2 + 4 ) ; подключаюсь к тому
_WinAPI_SetFilePointerEx ( $hDisk,0,$FILE_BEGIN) ; устанвливаю позицию для считывания, т.к будем читать весь сектор позиция равна 0
_WinAPI_ReadFile($hDisk, DllStructGetPtr($strBufer,1), 512,$ibufer) ; Читаю загрузочный сектор полностью
_WinAPI_CloseHandle($hDisk ) ; Закрываю Handle
$sfile = FileOpen("C:\Damp.Txt", 16+2) ; Создаю файл для сохранения в нем считынных байт
FileWrite("C:\ByteF.Txt",DllStructGetData($strBufer, 1)) ; Сохраняю данные
FileClose($sfile) ; закрываю файл
;=============== Читаю данные из сохраненного файла и вывожу их в понятной форме =========
$file =_WinAPI_CreateFile("C:\Damp.Txt", 2 ,2 ) ; Открываю файл
$strFile= DllStructCreate("byte[8]") ; создаем структуру (будем считывать 8 байт )
_WinAPI_SetFilePointerEx ( $file,72,$FILE_BEGIN) ; Устанавливаю позицию для считывания необходимой информации (серийный номер тома)
_WinAPI_ReadFile($file , DllStructGetPtr($strFile,1), 8,$filebufer) ; Читаю
_WinAPI_CloseHandle($file ) ; Закрываю Handle
$text = DllStructGetData($strFile, 1)
ConsoleWrite($text& @CRLF ) ; Вывожу данные