Condividi tramite


Specifica dell'accesso esclusivo agli oggetti dispositivo

Se è abilitato l'accesso esclusivo a un dispositivo, è possibile aprire un solo handle per il dispositivo alla volta. Affinché il gestore di I/O applichi l'accesso esclusivo al dispositivo, la proprietà esclusiva deve essere impostata per l'oggetto dispositivo denominato nello stack di dispositivi.

Per uno stack di dispositivi WDM con un PDO e un FDO, la proprietà esclusiva può essere impostata solo dal file INF usando una direttiva INF AddReg. Il PDO è l'oggetto denominato nello stack, ma il driver del bus (non il driver di funzione stesso) crea il PDO, per conto del driver di funzione. L'unico modo per indirizzare il driver del bus a impostare il flag esclusivo per il PDO è costituito dalla classe o dai file INF del dispositivo. La chiamata alla routine IoCreateDevice crea l'oggetto FDO. L'impostazione del flag esclusivo per l'oggetto FDO non ha alcun effetto.

I driver i cui oggetti dispositivo non sono impilati, ad esempio driver e dispositivi non WDM che operano in modalità raw, possono usare la routine IoCreateDeviceSecure per impostare la proprietà esclusiva per l'oggetto dispositivo con nome.

Il gestore di I/O applica l'esclusività su basi nominali per gli oggetti dispositivo denominati, indipendentemente dal suffisso del nome. Si supponga, ad esempio, che l'oggetto dispositivo abbia il nome "\Device\DeviceName". Il gestore di I/O applica quindi l'esclusività per una richiesta di apertura di "\Device\DeviceName\Filename1" seguita da "\Device\DeviceName\Filename2". Se due oggetti nello stack di dispositivi sono denominati (non consigliato), il gestore di I/O consente l'apertura di un singolo handle per ogni oggetto. In una situazione di questo tipo, i driver devono gestire l'esclusività all'interno delle funzioni di callback DRIVER_DISPATCH. Il gestore di I/O non impone l'esclusività per le aperture rispetto a un altro handle di file. Per altre informazioni sulle richieste di apertura dei file nello spazio dei nomi del dispositivo, vedere Controllo dell'accesso allo spazio dei nomi dei dispositivi.