Что нового

Получение информации о физических дисках

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
AutoIt: 3.3.8.1+
Версия: 1.0

Категория: Данные, Файловая система

Описание: Получение информации о физических дисках. Подробную информацию об используемых API-функциях можно посмотреть здесь: Public Device Installation Functions

Код/Пример:
Код:
#include 'DiskDriveInfo.au3'

Opt('MustDeclareVars', 1)

Global $iCount, $aInfo[6] = ['Hardware ID: ', 'Driver: ', 'Friendly Name: ', 'Physical Device Object Name: ', 'Enumerator: ', 'Unique Instance ID: ']

$iCount = _DiskDriveInfo_GetDiskCount()
If @error Then Exit 13
ConsoleWrite('Disks count: ' & $iCount & @CRLF)
For $j = 1 To $iCount
	For $i = 0 To 5
		ConsoleWrite('Disk_' & $j & ' - ' & $aInfo[$i] & _DiskDriveInfo_GetDiskProperty($j, $i) & @TAB & @error & @LF)
	Next
	ConsoleWrite('---' & @LF)
Next
_DiskDriveInfo_Close()

Файл: Прикрепленный архив DiskDriveInfo.7z

История версий:
Первая публичная версия.

Источник: Получение информации о физических дисках
Автор: madmasles
 

Вложения

  • DiskDriveInfo.7z
    2 КБ · Просмотры: 42

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Информация:
Код:
Disks count: 1
Disk_1 - Hardware ID: IDE\DiskSAMSUNG_HD161HJ_________________________JF100-15	0
Disk_1 - Driver: {4d36e967-e325-11ce-bfc1-08002be10318}\0000	0
Disk_1 - Friendly Name: SAMSUNG HD161HJ ATA Device	0
Disk_1 - Physical Device Object Name: \Device\Ide\IdeDeviceP2T1L0-4	0
Disk_1 - Enumerator: IDE	0
Disk_1 - Unique Instance ID: IDE\DISKSAMSUNG_HD161HJ_________________________JF100-15\5&1A277646&0&0.1.0	0
 

ostapvoip

Новичок
Сообщения
9
Репутация
0
Каким образом связать номер диска в ОС с номером индекса ? Если точнее видимо c \Device\000000XX
Пример http://i.imgur.com/n7AIATD.png
 
Автор
madmasles

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ostapvoip [?]
Каким образом связать номер диска в ОС с номером индекса ?
ИМХО, никак не связать, так как в строке "Disk_3" 3 - это нумератор запроса.
 

ostapvoip

Новичок
Сообщения
9
Репутация
0
Ну понятно, что это номер запроса. Я имел виду получить через известный Physical Device Object Name (KernelNames) вида \Device\000000XX - DosDevName вида \\.\PhysicalDriveX. Или наоборот из DosDevName получить Physical Device Object Name (KernelNames)
http://i.imgur.com/wkTv0GL.png
 
Автор
madmasles

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ostapvoip,
Придумал, как их связать, через DeviceIoControl, завтра реализую.
 

ostapvoip

Новичок
Сообщения
9
Репутация
0
Затянулось оформление. Ну ладно. И на том спасибо.
 
Верх