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
DDD_EXACT_MATCH_ON_REMOVE
0x00000004
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.
DDD_NO_BROADCAST_SYSTEM
0x00000008
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.
DDD_RAW_TARGET_PATH
0x00000001
Utilise la chaîne lpTargetPath en l’état. Sinon, il est converti d’un chemin MS-DOS en chemin d’accès.
DDD_REMOVE_DEFINITION
0x00000002
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

Voir aussi

DeleteVolumeMountPoint

QueryDosDevice

SetVolumeMountPoint

Fonctions de gestion des volumes