Definizione di un nome di dispositivo MS-DOS
Un nome di dispositivo MS-DOS è una giunzione che punta al percorso di un dispositivo MS-DOS. Queste giunzioni costituiscono lo spazio dei nomi del dispositivo MS-DOS. Chiamare le funzioni di DefineDosDevice e SetVolumeMountPoint per creare e modificare queste giunzioni. DeleteVolumeMountPoint elimina una giunzione creata da SetVolumeMountPointe DefineDosDevice elimina le giunzioni create.
Dopo aver definito un nome di dispositivo MS-DOS, rimane visibile a tutti i processi.
- Tutti i dispositivi MS-DOS sono identificati da Windows tramite un ID di autenticazione. Un ID di autenticazione è il LUID (identificatore univoco locale) associato a ogni sessione di accesso al momento della creazione.
- La visibilità di un nome di dispositivo MS-DOS è categorizzata come globale o locale e viene definita come tale dall'inclusione negli spazi dei nomi Global MS-DOS Device e Local MS-DOS Device. È possibile accedere al contenuto dei dispositivi MS-DOS nello spazio dei nomi Globale e il contenuto dei dispositivi MS-DOS nello spazio dei nomi Locale è accessibile solo dall'utente il cui token di accesso contiene l'AuthenticationID associato a tale spazio dei nomi locale MS-DOS dispositivo.
In un dato momento e su un singolo computer possono esistere più spazi dei nomi dispositivo locali MS-DOS e uno solo spazio dei nomi dispositivo globale MS-DOS.
Si noti che solo i processi in esecuzione nel contesto LocalSystem possono chiamare DefineDosDevice per creare un dispositivo MS-DOS nello spazio dei nomi del dispositivo Global MS-DOS. Inoltre, lo spazio dei nomi del dispositivo locale MS-DOS corrispondente a uno specifico AuthenticationID viene eliminato quando l'ultimo riferimento a tale AuthenticationID viene rimosso.
Quando il codice esegue una query su un nome di dispositivo MS-DOS esistente chiamando QueryDosDevice, cerca innanzitutto lo spazio dei nomi Local MS-DOS Device. Se non viene trovato, la funzione eseguirà una ricerca nello spazio dei nomi Global MS-DOS Device. Quando il codice esegue una query su tutti i nomi dei dispositivi MS-DOS esistenti tramite questa funzione, l'elenco di nomi restituiti dipende dal fatto che sia in esecuzione nel contesto LocalSystem. In tal caso, verranno restituiti solo i nomi dei dispositivi MS-DOS inclusi nello spazio dei nomi Global MS-DOS Device. In caso contrario, verrà restituita una concatenazione dei nomi dei dispositivi negli spazi dei nomi Global e Local MS-DOS Device. Se esiste un nome di dispositivo in entrambi gli spazi dei nomi, QueryDosDevice restituirà la voce nello spazio dei nomi Local MS-DOS Device. Questo vale anche per l'elenco di tutti i nomi dei dispositivi MS-DOS restituiti da GetLogicalDrives e GetLogicalDriveStrings.
Si noti che può verificarsi lo scenario seguente:
- L'utente A, che non è in esecuzione nel contesto LocalSystem, crea un nome di dispositivo nello spazio dei nomi Local MS-DOS Device corrispondente e tale nome del dispositivo non esiste nello spazio dei nomi Global MS-DOS Device.
- L'utente B, che è in esecuzione nel contesto LocalSystem, crea lo stesso nome del dispositivo nello spazio dei nomi Global MS-DOS Device.
In questo scenario, l'utente A non avrà accesso al nome del dispositivo nello spazio dei nomi Global MS-DOS Device finché non rimuove o rinomina il nome del dispositivo nello spazio dei nomi Local MS-DOS Device. Per ridurre la probabilità che si verifichi questo scenario, le lettere di unità MS-DOS devono essere allocate nello spazio dei nomi Device Global MS-DOS iniziando da C: e terminando con Z:. Questa sequenza deve essere invertita per l'allocazione di lettere di unità MS-DOS nello spazio dei nomi del dispositivo locale MS-DOS.
Se non si esegue nel contesto LocalSystem, DefineDosDevice non consente di definire un nome di dispositivo nello spazio dei nomi Local MS-DOS Device se tale nome di dispositivo esiste già negli spazi dei nomi Local o Global MS-DOS Device. Chiamare QueryDosDevice prima di chiamare DefineDosDevice per determinare se il nome dispositivo che si intende definire esiste nei namespace dei dispositivi MS-DOS.
Argomenti correlati