Fonction QueryDosDeviceW (fileapi.h)

Récupère des informations sur les noms d’appareils MS-DOS. La fonction peut obtenir le mappage actuel pour un nom d’appareil MS-DOS particulier. La fonction peut également obtenir une liste de tous les noms d’appareils MS-DOS existants.

Les noms d’appareils MS-DOS sont stockés en tant que jonctions dans l’espace de noms d’objet. Le code qui convertit un chemin MS-DOS en chemin d’accès correspondant utilise ces jonctions pour mapper les appareils MS-DOS et les lettres de lecteur. La fonction QueryDosDevice permet à une application d’interroger les noms des jonctions utilisées pour implémenter l’espace de noms d’appareil MS-DOS, ainsi que la valeur de chaque jonction spécifique.

Syntaxe

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

Paramètres

[in, optional] lpDeviceName

Chaîne de nom d’appareil MS-DOS spécifiant la cible de la requête. Le nom de l’appareil ne peut pas avoir de barre oblique inverse de fin ; par exemple, utilisez « C : », et non « C :\ ».

Ce paramètre peut être NULL. Dans ce cas, la fonction QueryDosDevice stocke une liste de tous les noms d’appareils MS-DOS existants dans la mémoire tampon pointée par lpTargetPath.

[out] lpTargetPath

Pointeur vers une mémoire tampon qui recevra le résultat de la requête. La fonction remplit cette mémoire tampon avec une ou plusieurs chaînes null. La chaîne null finale est suivie d’une valeur NULL supplémentaire.

Si lpDeviceName n’a pas la valeur NULL, la fonction récupère des informations sur l’appareil MS-DOS spécifié par lpDeviceName. La première chaîne terminée par null stockée dans la mémoire tampon est le mappage actuel pour l’appareil. Les autres chaînes terminées par null représentent des mappages antérieurs non supprimés pour l’appareil.

Si lpDeviceName a la valeur NULL, la fonction récupère une liste de tous les noms d’appareils MS-DOS existants. Chaque chaîne terminée par null stockée dans la mémoire tampon est le nom d’un appareil MS-DOS existant, par exemple, \Device\HarddiskVolume1 ou \Device\Floppy0.

[in] ucchMax

Nombre maximal de TCHAR pouvant être stockés dans la mémoire tampon pointée par lpTargetPath.

Valeur retournée

Si la fonction réussit, la valeur de retour est le nombre de TCHAR stockés dans la mémoire tampon pointée par lpTargetPath.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Si la mémoire tampon est trop petite, la fonction échoue et le dernier code d’erreur est ERROR_INSUFFICIENT_BUFFER.

Remarques

La fonction DefineDosDevice permet à une application de créer et de modifier les jonctions utilisées pour implémenter l’espace de noms d’appareil MS-DOS.

Windows Server 2003 et Windows XP : QueryDosDevice recherche d’abord le nom d’appareil MS-DOS local dans l’espace de noms d’appareil MS-DOS local. Si le nom de l’appareil est introuvable, la fonction effectue ensuite une recherche dans l’espace de noms Global MS-DOS Device.

Lorsque tous les noms d’appareils MS-DOS existants sont interrogés, la liste des noms d’appareils retournés dépend de son exécution dans le contexte « LocalSystem ». Si c’est le cas, seuls les noms d’appareils inclus dans l’espace de noms Global MS-DOS Device seront retournés. Si ce n’est pas le cas, une concaténation des noms des périphériques dans les espaces de noms de périphérique MS-DOS global et local sera retournée. Si un nom de périphérique existe dans les deux espaces de noms, QueryDosDevice retourne l’entrée de l’espace de noms de périphérique MS-DOS local.

Pour plus d’informations sur les espaces de noms d’appareils MS-DOS globaux et locaux et les modifications apportées à l’accessibilité des noms d’appareils MS-DOS, consultez Définition d’un nom d’appareil MS-DOS.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 No
Basculement transparent SMB 3.0 (TFO) No
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui
 

SMB ne prend pas en charge les fonctions de gestion des volumes.

Exemples

Pour obtenir un exemple, consultez Obtention d’un nom de fichier à partir d’un handle de fichier ou Affichage des chemins de volume.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête fileapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

DefineDosDevice

Fonctions de gestion des volumes