Программирование для Windows NT

Определение количества дисковых устройств в системе


Для того чтобы определить список установленных в системе логических дисковых устройств, вы можете вызвать функцию GetLogicalDrives:

DWORD GetLogicalDrives(VOID);

Эта функция не имеет параметров и возвращает 32-разрядное значение, каждый бит которого отвечает за свое логическое устройство. Самый младший, нулевой бит соответствует устройству с идентификатором A:, бит с номером 1 - устройству с идентификатором A:, и так далее. Если бит установлен, устройство присутствует в системе, если нет - отсутствует.

Более развернутую информацию о составе логических дисковых устройств в системе можно получить при помощи функции GetLogicalDriveStrings:

DWORD GetLogicalDriveStrings(

  DWORD  nBufferLength, // размер буфера

  LPTSTR lpBuffer);     // адрес буфера для записи

                        // сведений об устойствах

Если вызвать эту функцию с параметрами nBufferLength и lpBuffer равными, соответственно, 0 и NULL, она вернет размер буфера, необходимый для записи информации о всех логических дисковых устройствах, присутствующих в системе. После этого вы можете вызвать функцию GetLogicalDriveStrings еще раз, заказав предварительно буфер нужного размера и указав функции правильный размер буфера.

Функция GetLogicalDriveStrings заполнит буфер текстовыми строками вида:

a:\

b:\

c:\

Каждая такая строка закрыта двоичным нулем. Последняя строка будет закрыта двумя двоичными нулями.



Содержание раздела