Función QueryDosDeviceW (fileapi.h)

Recupera información sobre los nombres de dispositivo MS-DOS. La función puede obtener la asignación actual para un nombre de dispositivo MS-DOS determinado. La función también puede obtener una lista de todos los nombres de dispositivo MS-DOS existentes.

Los nombres de dispositivo MS-DOS se almacenan como uniones en el espacio de nombres de objeto. El código que convierte una ruta de acceso de MS-DOS en una ruta de acceso correspondiente usa estas uniones para asignar dispositivos MS-DOS y letras de unidad. La función QueryDosDevice permite a una aplicación consultar los nombres de las uniones usadas para implementar el espacio de nombres del dispositivo MS-DOS, así como el valor de cada unión específica.

Sintaxis

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

Parámetros

[in, optional] lpDeviceName

Cadena de nombre de dispositivo MS-DOS que especifica el destino de la consulta. El nombre del dispositivo no puede tener una barra diagonal inversa final; por ejemplo, use "C:", no "C:\".

Este parámetro puede ser NULL. En ese caso, la función QueryDosDevice almacenará una lista de todos los nombres de dispositivo MS-DOS existentes en el búfer al que apunta lpTargetPath.

[out] lpTargetPath

Puntero a un búfer que recibirá el resultado de la consulta. La función rellena este búfer con una o varias cadenas terminadas en NULL. La cadena final terminada en NULL va seguida de un valor NULL adicional.

Si lpDeviceName no es NULL, la función recupera información sobre el dispositivo MS-DOS determinado especificado por lpDeviceName. La primera cadena terminada en null almacenada en el búfer es la asignación actual del dispositivo. Las demás cadenas terminadas en null representan asignaciones anteriores sin eliminar para el dispositivo.

Si lpDeviceName es NULL, la función recupera una lista de todos los nombres de dispositivo MS-DOS existentes. Cada cadena terminada en null almacenada en el búfer es el nombre de un dispositivo MS-DOS existente, por ejemplo, \Device\HarddiskVolume1 o \Device\Floppy0.

[in] ucchMax

Número máximo de TCHAR que se pueden almacenar en el búfer al que apunta lpTargetPath.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es el número de TCHAR almacenados en el búfer al que apunta lpTargetPath.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Si el búfer es demasiado pequeño, se produce un error en la función y se ERROR_INSUFFICIENT_BUFFER el último código de error.

Comentarios

La función DefineDosDevice permite a una aplicación crear y modificar las uniones usadas para implementar el espacio de nombres del dispositivo MS-DOS.

Windows Server 2003 y Windows XP: QueryDosDevice busca primero el espacio de nombres del dispositivo MS-DOS local para el nombre de dispositivo especificado. Si no se encuentra el nombre del dispositivo, la función buscará en el espacio de nombres global MS-DOS Device.

Cuando se consultan todos los nombres de dispositivo MS-DOS existentes, la lista de nombres de dispositivo que se devuelven depende de si se ejecuta en el contexto "LocalSystem". Si es así, solo se devolverán los nombres de dispositivo incluidos en el espacio de nombres global MS-DOS Device. En caso contrario, se devolverá una concatenación de los nombres de dispositivo en los espacios de nombres de los dispositivos MS-DOS global y local. Si el dispositivo existe en ambos espacios de nombres QueryDosDevice devolverá la entrada en el espacio de nombres del dispositivo MS-DOS local.

Para obtener más información sobre los espacios de nombres del dispositivo MS-DOS global y local y los cambios en la accesibilidad de los nombres de dispositivo MS-DOS, consulte Definición de un nombre de dispositivo de MS DOS.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0 No
Conmutación por error transparente (TFO) de SMB 3.0 No
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) No
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)
 

SMB no admite funciones de administración de volúmenes.

Ejemplos

Para obtener un ejemplo, vea Obtener un nombre de archivo de un identificador de archivo o mostrar rutas de acceso de volumen.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado fileapi.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

DefineDosDevice

Funciones de administración de volúmenes