Fonction DefineDosDeviceW (fileapi.h)
Définit, redéfinit ou supprime les noms d’appareils MS-DOS.
Syntaxe
BOOL DefineDosDeviceW(
[in] DWORD dwFlags,
[in] LPCWSTR lpDeviceName,
[in, optional] LPCWSTR lpTargetPath
);
Paramètres
[in] dwFlags
Aspects contrôlables de la fonction DefineDosDevice . Ce paramètre peut prendre une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Si cette valeur est spécifiée avec DDD_REMOVE_DEFINITION, la fonction utilise une correspondance exacte pour déterminer le mappage à supprimer. Utilisez cette valeur pour vous assurer que vous ne supprimez pas quelque chose que vous n’avez pas défini. |
|
Ne diffusez pas le message WM_SETTINGCHANGE . Par défaut, ce message est diffusé pour informer l’interpréteur de commandes et les applications de la modification. |
|
Utilise la chaîne lpTargetPath en l’état. Sinon, il est converti d’un chemin MS-DOS en chemin d’accès. |
|
Supprime la définition spécifiée pour l’appareil spécifié. Pour déterminer la définition à supprimer, la fonction examine la liste des mappages pour l’appareil, en recherchant une correspondance de lpTargetPath avec un préfixe de chaque mappage associé à cet appareil. Le premier mappage qui correspond est celui supprimé, puis la fonction retourne.
Si lpTargetPath a la valeur NULL ou un pointeur vers une chaîne NULL , la fonction supprime le premier mappage associé à l’appareil et affiche le mappage le plus récent envoyé. S’il ne reste plus rien à afficher, le nom de l’appareil est supprimé. Si cette valeur n’est pas spécifiée, la chaîne pointée vers par le paramètre lpTargetPath devient le nouveau mappage pour cet appareil. |
[in] lpDeviceName
Pointeur vers une chaîne de nom d’appareil MS-DOS spécifiant l’appareil que la fonction définit, redéfinit ou supprime. La chaîne de nom d’appareil ne doit pas avoir de deux-points comme dernier caractère, sauf si une lettre de lecteur est définie, redéfinie ou supprimée. Par exemple, le lecteur C est la chaîne « C: ». En aucun cas, une barre oblique inverse de fin (\) n’est autorisée.
[in, optional] lpTargetPath
Pointeur vers une chaîne de chemin qui implémentera cet appareil. La chaîne est une chaîne de chemin MS-DOS, sauf si l’indicateur DDD_RAW_TARGET_PATH est spécifié, auquel cas cette chaîne est une chaîne de chemin d’accès.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Notes
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 DefineDosDevice permet à une application de modifier les jonctions utilisées pour implémenter l’espace de noms d’appareil MS-DOS.
Pour récupérer le mappage actuel d’un nom d’appareil MS-DOS particulier ou obtenir une liste de tous les appareils MS-DOS connus du système, utilisez la fonction QueryDosDevice .
Pour définir une attribution de lettres de lecteur persistante entre les démarrages et non un partage réseau, utilisez la fonction SetVolumeMountPoint . Si une lettre de lecteur est déjà affectée au volume à monter, utilisez la fonction DeleteVolumeMountPoint pour supprimer l’affectation.
Les lettres de lecteur et les noms d’appareil définis au moment du démarrage du système sont protégés contre la redéfinition et la suppression, sauf si l’utilisateur est administrateur.
À compter de Windows XP, cette fonction crée un nom d’appareil pour un appelant qui ne s’exécute pas dans le contexte « LocalSystem » dans son propre espace de noms d’appareil MS-DOS local. Si l’appelant s’exécute dans le contexte « LocalSystem », la fonction crée le nom de l’appareil dans l’espace de noms global de l’appareil MS-DOS. Pour plus d’informations, consultez Définition d’un nom d’appareil MS DOS et des noms de fichiers, chemins et espaces de noms.
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 | Non |
Basculement transparent SMB 3.0 (TFO) | Non |
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) | Non |
Système de fichiers du volume partagé de cluster (CsvFS) | Non |
Système de fichiers résilient (ReFS) | Non |
SMB ne prend pas en charge les fonctions de gestion des volumes. Pour csvFs, un nouveau nom n’est pas répliqué sur les autres nœuds du cluster.
Exemples
Pour obtenir un exemple, consultez Modification des attributions de lettres de lecteur.
Spécifications
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 |