Funzione DefineDosDeviceW (fileapi.h)

Definisce, ridefinirà o elimina i nomi dei dispositivi MS-DOS.

Sintassi

BOOL DefineDosDeviceW(
  [in]           DWORD   dwFlags,
  [in]           LPCWSTR lpDeviceName,
  [in, optional] LPCWSTR lpTargetPath
);

Parametri

[in] dwFlags

Gli aspetti controllabili della funzione DefineDosDevice . Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
DDD_EXACT_MATCH_ON_REMOVE
0x00000004
Se questo valore viene specificato insieme a DDD_REMOVE_DEFINITION, la funzione userà una corrispondenza esatta per determinare quale mapping rimuovere. Usare questo valore per assicurarsi di non eliminare un elemento che non è stato definito.
DDD_NO_BROADCAST_SYSTEM
0x00000008
Non trasmettere il messaggio di WM_SETTINGCHANGE . Per impostazione predefinita, questo messaggio viene trasmesso per notificare la shell e le applicazioni della modifica.
DDD_RAW_TARGET_PATH
0x00000001
Usa la stringa lpTargetPath come è. In caso contrario, viene convertito da un percorso MS-DOS a un percorso.
DDD_REMOVE_DEFINITION
0x00000002
Rimuove la definizione specificata per il dispositivo specificato. Per determinare quale definizione rimuovere, la funzione illustra l'elenco dei mapping per il dispositivo, cercando una corrispondenza di lpTargetPath su un prefisso di ogni mapping associato a questo dispositivo. Il primo mapping corrispondente è quello rimosso e quindi la funzione restituisce.

Se lpTargetPath è NULL o un puntatore a una stringa NULL , la funzione rimuoverà il primo mapping associato al dispositivo e pop il push più recente. Se non c'è nulla da lasciare, il nome del dispositivo verrà rimosso.

Se questo valore non è specificato, la stringa puntata dal parametro lpTargetPath diventerà il nuovo mapping per questo dispositivo.

[in] lpDeviceName

Puntatore a una stringa di nome del dispositivo MS-DOS che specifica il dispositivo che la funzione definisce, ridefinisca o elimina. La stringa del nome del dispositivo non deve avere due punti come ultimo carattere, a meno che non venga definita una lettera di unità, ridefinita o eliminata. Ad esempio, l'unità C sarà la stringa "C:". In nessun caso è consentita una barra rovesciata finale (\).

[in, optional] lpTargetPath

Puntatore a una stringa di percorso che implementerà questo dispositivo. La stringa è una stringa di percorso MS-DOS a meno che non venga specificato il flag DDD_RAW_TARGET_PATH , in cui questa stringa è una stringa di percorso.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

I nomi dei dispositivi MS-DOS vengono archiviati come giunzioni nello spazio dei nomi dell'oggetto. Il codice che converte un percorso MS-DOS in un percorso corrispondente usa queste giunzioni per eseguire il mapping di dispositivi MS-DOS e lettere di unità. La funzione DefineDosDevice consente a un'applicazione di modificare le giunzioni usate per implementare lo spazio dei nomi dei dispositivi MS-DOS.

Per recuperare il mapping corrente per un determinato nome del dispositivo MS-DOS o per ottenere un elenco di tutti i dispositivi MS-DOS noti al sistema, usare la funzione QueryDosDevice .

Per definire un'assegnazione di lettera di unità persistente tra avvio e non una condivisione di rete, usare la funzione SetVolumeMountPoint . Se il volume da montare ha già una lettera di unità assegnata, usare la funzione DeleteVolumeMountPoint per rimuovere l'assegnazione.

Le lettere di unità e i nomi dei dispositivi definiti all'ora di avvio del sistema sono protetti dalla ridefinizione e dall'eliminazione, a meno che l'utente non sia un amministratore.

A partire da Windows XP, questa funzione crea un nome di dispositivo per un chiamante che non è in esecuzione nel contesto "LocalSystem" nello spazio dei nomi dei dispositivi MS-DOS locale. Se il chiamante è in esecuzione nel contesto "LocalSystem", la funzione crea il nome del dispositivo nello spazio dei nomi del dispositivo MS-DOS globale. Per altre informazioni, vedere Definizione di un nome del dispositivo MS DOS e nomi di file, percorsi e spazi dei nomi.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
File system del volume condiviso del cluster (CsvFS) No
File system resiliente (ReFS) No
 

SMB non supporta le funzioni di gestione dei volumi. Per CsvFs, un nuovo nome non verrà replicato negli altri nodi del cluster.

Esempio

Per un esempio, vedere Modifica delle assegnazioni di lettera unità.

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione fileapi.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

DeleteVolumeMountPoint

QueryDosDevice

SetVolumeMountPoint

Funzioni di gestione dei volumi