QueryDosDeviceA, fonction (winbase.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 de l’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 QueryDosDeviceA(
[in, optional] LPCSTR lpDeviceName,
[out] LPSTR 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 terminées par un caractère Null. La chaîne finale terminée par une valeur Null 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écifique spécifié par lpDeviceName. La première chaîne terminée par un caractère Null stockée dans la mémoire tampon est le mappage actuel pour l’appareil. Les autres chaînes terminées par un caractère 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 un caractère 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 correspond au 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 spécifié dans l’espace de noms De l’appareil MS-DOS local. Si le nom de l’appareil est introuvable, la fonction effectue 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 ». Dans ce cas, seuls les noms d’appareils inclus dans l’espace de noms Global MS-DOS Device sont 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 sur 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 | winbase.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |