Функция QueryDosDeviceW (fileapi.h)

Извлекает сведения об именах устройств MS-DOS. Функция может получить текущее сопоставление для определенного имени устройства MS-DOS. Функция также может получить список всех существующих имен устройств MS-DOS.

Имена устройств MS-DOS хранятся в пространстве имен объектов в виде соединений. Код, преобразующий путь MS-DOS в соответствующий путь, использует эти соединения для сопоставления устройств MS-DOS и букв дисков. Функция QueryDosDevice позволяет приложению запрашивать имена соединений, используемых для реализации пространства имен устройств MS-DOS, а также значения каждого конкретного соединения.

Синтаксис

DWORD QueryDosDeviceW(
  [in, optional] LPCWSTR lpDeviceName,
  [out]          LPWSTR  lpTargetPath,
  [in]           DWORD   ucchMax
);

Параметры

[in, optional] lpDeviceName

Строка имени устройства MS-DOS, указывающая целевой объект запроса. Имя устройства не может иметь обратную косую черту в конце; например, используйте "C:", а не "C:\".

Этот параметр может принимать значение NULL. В этом случае функция QueryDosDevice сохранит список всех существующих имен устройств MS-DOS в буфер, на который указывает lpTargetPath.

[out] lpTargetPath

Указатель на буфер, который получит результат запроса. Функция заполняет этот буфер одной или несколькими строками, оканчиваются значением NULL. За последней строкой, завершающейся значением NULL, следует дополнительное значение NULL.

Если значение lpDeviceName не равно NULL, функция извлекает сведения о конкретном устройстве MS-DOS, указанном с помощью lpDeviceName. Первая строка, завершающаяся значением NULL, хранящейся в буфере, является текущим сопоставлением для устройства. Другие строки, завершаемые значением NULL, представляют незавершенные предыдущие сопоставления для устройства.

Если lpDeviceName имеет значение NULL, функция получает список всех существующих имен устройств MS-DOS. Каждая строка, оканчиваемая значением NULL, хранится в буфере, является именем существующего устройства MS-DOS, например \Device\HarddiskVolume1 или \Device\Floppy0.

[in] ucchMax

Максимальное количество TCHAR , которые могут храниться в буфере, на который указывает lpTargetPath.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение — это количество TCHAR , хранящихся в буфере, на который указывает lpTargetPath.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Если буфер слишком мал, функция завершается сбоем и последний код ошибки ERROR_INSUFFICIENT_BUFFER.

Комментарии

Функция DefineDosDevice позволяет приложению создавать и изменять соединения, используемые для реализации пространства имен устройств MS-DOS.

Windows Server 2003 и Windows XP: QueryDosDevice сначала выполняет поиск указанного имени устройства в пространстве имен локального устройства MS-DOS. Если имя устройства не найдено, функция выполнит поиск в глобальном пространстве имен устройств MS-DOS.

При запросе всех существующих имен устройств MS-DOS список возвращаемых имен устройств зависит от того, выполняется ли он в контексте LocalSystem. Если это так, будут возвращены только имена устройств, включенные в глобальное пространство имен устройств MS-DOS. В противном случае будет возвращено объединение имен устройств в глобальном и локальном пространствах имен устройств MS-DOS. Если имя устройства существует в обоих пространствах имен, QueryDosDevice вернет запись в локальном пространстве имен ms-DOS Device.

Дополнительные сведения о глобальном и локальном пространствах имен устройств MS-DOS и изменениях в специальных возможностях имен устройств MS-DOS см. в статье Определение имени устройства MS DOS.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Нет
Прозрачная отработка отказа (TFO) SMB 3.0 Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

SMB не поддерживает функции управления томами.

Примеры

Пример см. в разделе Получение имени файла из дескриптора файла или Отображение путей тома.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header fileapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

DefineDosDevice

Функции управления томами