Condividi tramite


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)
Resilient File System (ReFS)
 

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

Vedere anche

DefineDosDevice

Funzioni di gestione dei volumi