Определение типа носителя и «серийного номера».

Нам понадобится всего 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, то функция будет выполняется для текущего диска (с которого была запущена программа).

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>