Нам понадобится всего 2 API — функции:
GetDriveType — определяет и возвращает тип носителя;
GetVolumeInformation — определяет информацию о носителе, среди которой содержится серийный номер.
Рассмотрим описание этих функций:
Функция GetDriveType очень простая и использует всего один параметр — указатель на том. Например «c:\»,»a:\» и т.д. Функция возвращает одно из следующих значений:
Значение | Пояснение |
---|---|
DRIVE_UNKNOWN | диск не определен/не существует |
DRIVE_NO_ROOT_DIR | неверный путь/путь не указывает на том |
DRIVE_REMOVABLE | тип устройства определяется как съемный (дискета, флешка и т.д.) |
DRIVE_FIXED | тип устройства — фиксированный диск (жесткий диск) |
DRIVE_REMOTE | тип устройства — удаленный(сетевой) диск |
DRIVE_CDROM | это устройство CD-ROM |
DRIVE_RAMDISK | виртуальный диск, созданный в оперативной памяти |
1 2 3 | UINT WINAPI GetDriveType( LPCTSTR lpRootPathName //путь к диску ); |
Замечание: Если в качестве параметра указать NULL, то тип устройства будет определяться для текущего диска (с которого была запущена программа).
Функция GetVolumeInformation тоже достаточно простая функция, однако использует параметров значительно больше.
1 2 3 4 5 6 7 8 9 10 11 12 | BOOL WINAPI GetVolumeInformation( LPCTSTR lpRootPathName, //путь к сетевому или локальному // тому (пример: "\\MyServer\MyShare\" или "C:\". LPTSTR lpVolumeNameBuffer, //буфер - в котором будет храниться // имя тома DWORD nVolumeNameSize, //размер буфера LPDWORD lpVolumeSerialNumber, //серийный номер тома LPDWORD lpMaximumComponentLength, //размер тома LPDWORD lpFileSystemFlags, //тип файловой системы LPTSTR lpFileSystemNameBuffer, //название файловой системы DWORD nFileSystemNameSize //размер буфера под название ФС ); |
Замечание: Если в качестве первого параметра указать NULL, то функция будет выполняется для текущего диска (с которого была запущена программа).
0 Комментарии。