Condividi tramite


Controllo dell'accesso ai dispositivi (WDM)

L'accesso a un dispositivo è controllato da un descrittore di sicurezza e dall'ACL che contiene. Un descrittore di sicurezza per un oggetto dispositivo può essere specificato quando viene creato l'oggetto dispositivo o impostato nel Registro di sistema.

Controllo dell'accesso ai dispositivi per i driver WDM

Quando un driver WDM (diverso da determinati driver del bus) crea un oggetto dispositivo, il gestore Plug and Play determina un descrittore di sicurezza per il dispositivo. L'ordine delle operazioni è il seguente.

  1. Il gestore PnP chiama la routine AddDevice del driver.

  2. La routine AddDevice del driver chiama IoCreateDevice per creare l'oggetto dispositivo e collegarlo allo stack di oggetti del dispositivo.

  3. Il gestore PnP aggiorna il descrittore di sicurezza per l'oggetto dispositivo appena creato.

Per un driver WDM, il gestore PnP determina il descrittore di sicurezza per l'oggetto dispositivo come indicato di seguito.

  1. Se il dispositivo ha un'impostazione del descrittore di sicurezza nel Registro di sistema, viene applicata a ogni oggetto nello stack di dispositivi.

  2. In caso contrario, se la classe di installazione del dispositivo ha un'impostazione del descrittore di sicurezza nel Registro di sistema, viene applicata a ogni oggetto nello stack di dispositivi.

  3. In caso contrario, il gestore PnP lascia invariato il descrittore di sicurezza predefinito per ogni oggetto. In questo caso, il descrittore di sicurezza predefinito per lo stack è determinato dal tipo di dispositivo e dalle caratteristiche del dispositivo del PDO.

Per la maggior parte dei tipi di dispositivi e delle loro caratteristiche, il descrittore di sicurezza predefinito concede accesso completo (GENERIC_ALL) agli amministratori e accesso in lettura, scrittura ed esecuzione (GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE) a tutti gli altri.

Per altre informazioni su come impostare un descrittore di sicurezza per un dispositivo o una classe di installazione del dispositivo nel Registro di sistema, vedere Impostazione delle proprietà dell'oggetto dispositivo nel Registro di sistema.

Se un dispositivo viene gestito in modalità non elaborata, il gestore PnP non può determinare un descrittore di sicurezza per l'oggetto dispositivo. In tal caso, il conducente del bus deve fornire un descrittore di sicurezza; vedere di seguito.

Controllo dell'accesso ai dispositivi per i driver del bus WDM

Un driver del bus WDM deve fornire un descrittore di sicurezza per il PDO di ogni dispositivo che può essere gestito in modalità non elaborata. Usare IoCreateDeviceSecure per creare l'oggetto dispositivo con un descrittore di sicurezza.

Se il driver del bus non opera un dispositivo in modalità non elaborata, non è necessario fornire un descrittore di sicurezza. Il gestore PnP determina il descrittore di sicurezza, come descritto in precedenza. Il driver del bus può fornire un descrittore di sicurezza se deve garantire che i relativi PDO abbiano impostazioni di sicurezza più rigorose rispetto al descrittore predefinito. Qualsiasi descrittore specificato dal driver del bus viene sottoposto a override dalle impostazioni nel Registro di sistema.

Per altre informazioni sulla creazione di oggetti dispositivo, vedere Creazione di un oggetto Device.

Controllo dell'accesso ai dispositivi per driver non WDM

I driver non WDM devono specificare un descrittore di sicurezza predefinito e un GUID di classe per tutti gli oggetti dispositivo denominati creati.

Usare la routine IoCreateDeviceSecure per creare l'oggetto dispositivo denominato e per specificare il descrittore di sicurezza predefinito e il GUID della classe per tale dispositivo. Il descrittore di sicurezza viene specificato in un subset di SDDL. Per altre informazioni, vedere SDDL per oggetti dispositivo.

Il sistema esegue l'override del descrittore di sicurezza predefinito con qualsiasi impostazione di sicurezza nel Registro di sistema per il GUID della classe specificata. Il driver deve specificare il proprio GUID univoco per il dispositivo. Usare lo strumento GuidGen per generare un GUID univoco. GuidGen è incluso in Microsoft Windows SDK.