Funzione QueryDosDeviceA (winbase.h)
Recupera informazioni sui nomi dei dispositivi MS-DOS. La funzione può ottenere il mapping corrente per un determinato nome del 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 dei dispositivi MS-DOS e il valore di ogni giunzione specifica.
Sintassi
DWORD QueryDosDeviceA(
[in, optional] LPCSTR lpDeviceName,
[out] LPSTR 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 dei dispositivi 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 con terminazione null finale è seguita da un valore NULL aggiuntivo.
Se lpDeviceName non è 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 mapping precedenti non aggiornati 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 dei dispositivi MS-DOS.
Windows Server 2003 e Windows XP: QueryDosDevice cerca prima lo spazio dei nomi Dispositivo MS-DOS locale per il nome del dispositivo specificato. Se il nome del dispositivo non viene trovato, la funzione cercherà lo spazio dei nomi del dispositivo MS-DOS globale.
Quando tutti i nomi dei dispositivi MS-DOS esistenti vengono sottoposti a query, 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 del dispositivo MS-DOS globale. In caso contrario, verrà restituita una concatenazione dei nomi dei dispositivi negli spazi dei nomi del dispositivo GLOBAL e Local MS-DOS. Se esiste un nome di dispositivo in entrambi gli spazi dei nomi, QueryDosDevice restituirà la voce nello spazio dei nomi 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 del 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 con scalabilità orizzontale (SO) | No |
File system del volume condiviso del cluster (CsvFS) | Sì |
File system resiliente (ReFS) | Sì |
SMB non supporta le funzioni di gestione dei volumi.
Esempio
Per un esempio, vedere Ottenere un nome file da un handle file o visualizzare i 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 | winbase.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |