Funzione QueryDosDeviceW (fileapi.h)
Recupera informazioni sui nomi dei dispositivi MS-DOS. La funzione può ottenere il mapping corrente per un particolare nome di dispositivo MS-DOS. La funzione può anche ottenere un elenco di tutti i nomi di dispositivo MS-DOS esistenti.
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 QueryDosDevice consente a un'applicazione di eseguire query sui nomi delle giunzioni usate per implementare lo spazio dei nomi del dispositivo MS-DOS e il valore di ogni giunzione specifica.
Sintassi
DWORD QueryDosDeviceW(
[in, optional] LPCWSTR lpDeviceName,
[out] LPWSTR lpTargetPath,
[in] DWORD ucchMax
);
Parametri
[in, optional] lpDeviceName
Stringa del nome del dispositivo MS-DOS che specifica la destinazione della query. Il nome del dispositivo non può avere una barra rovesciata finale; Ad esempio, usare "C:", non "C:\".
Questo parametro può essere NULL. In tal caso, la funzione QueryDosDevice archivierà un elenco di tutti i nomi di dispositivo MS-DOS esistenti nel buffer a cui punta lpTargetPath.
[out] lpTargetPath
Puntatore a un buffer che riceverà il risultato della query. La funzione riempie questo buffer con una o più stringhe con terminazione Null. La stringa finale con terminazione Null è seguita da un valore NULL aggiuntivo.
Se lpDeviceName è diverso da NULL, la funzione recupera informazioni sul dispositivo MS-DOS specifico specificato da lpDeviceName. La prima stringa con terminazione Null archiviata nel buffer è il mapping corrente per il dispositivo. Le altre stringhe con terminazione Null rappresentano i mapping precedenti non recapitati per il dispositivo.
Se lpDeviceName è NULL, la funzione recupera un elenco di tutti i nomi di dispositivo MS-DOS esistenti. Ogni stringa con terminazione Null archiviata nel buffer è il nome di un dispositivo MS-DOS esistente, ad esempio \Device\HarddiskVolume1 o \Device\Floppy0.
[in] ucchMax
Numero massimo di TCHAR che possono essere archiviati nel buffer a cui punta lpTargetPath.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è il numero di TCHAR archiviati nel buffer a cui punta lpTargetPath.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Se il buffer è troppo piccolo, la funzione ha esito negativo e l'ultimo codice di errore è ERROR_INSUFFICIENT_BUFFER.
Commenti
La funzione DefineDosDevice consente a un'applicazione di creare e modificare le giunzioni usate per implementare lo spazio dei nomi del dispositivo MS-DOS.
Windows Server 2003 e Windows XP: QueryDosDevice cerca innanzitutto lo spazio dei nomi del dispositivo MS-DOS locale per il nome del dispositivo specificato. Se il nome del dispositivo non viene trovato, la funzione eseguirà una ricerca nello spazio dei nomi Globale del dispositivo MS-DOS.
Quando viene eseguita una query su tutti i nomi dei dispositivi MS-DOS esistenti, l'elenco dei nomi dei dispositivi restituiti dipende dal fatto che sia in esecuzione nel contesto "LocalSystem". In tal caso, verranno restituiti solo i nomi dei dispositivi inclusi nello spazio dei nomi globale del dispositivo MS-DOS. In caso contrario, verrà restituita una concatenazione dei nomi dei dispositivi negli spazi dei nomi globale e locale del dispositivo MS-DOS. Se esiste un nome di dispositivo in entrambi gli spazi dei nomi, QueryDosDevice restituirà la voce nello spazio dei nomi Del dispositivo MS-DOS locale.
Per altre informazioni sugli spazi dei nomi dei dispositivi MS-DOS globali e locali e sulle modifiche apportate all'accessibilità dei nomi dei dispositivi MS-DOS, vedere Definizione di un nome dispositivo MS DOS.
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 di scalabilità orizzontale (SO) | No |
File system del volume condiviso cluster (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
SMB non supporta le funzioni di gestione dei volumi.
Esempio
Per un esempio, vedere Recupero di un nome file da un handle di file o visualizzazione dei percorsi del volume.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | fileapi.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |