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)
File system resiliente (ReFS)
 

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

Vedere anche

DefineDosDevice

Funzioni di gestione dei volumi