Condividi tramite


Errore di convalida degli oggetti dispositivo

Molti driver creano più di un tipo di oggetto dispositivo chiamando IoCreateDevice. Alcuni driver creano oggetti dispositivo di controllo nelle routine DriverEntry per consentire alle applicazioni di comunicare con il driver, anche prima che il driver crei un fdO. Ad esempio, i driver del file system creano oggetti dispositivo per gestire le notifiche del file system quando si registrano come file system con IoRegisterFileSystem.

Un driver deve essere pronto per le richieste di IRP_MJ_CREATE per qualsiasi oggetto dispositivo creato. Dopo aver completato la richiesta con uno stato di esito positivo, il driver dovrebbe ricevere eventuali richieste di I/O accessibili dall'utente nell'oggetto file creato. Di conseguenza, qualsiasi driver che crea più di un oggetto dispositivo deve verificare quale oggetto dispositivo specifica ogni richiesta di I/O.

Si supponga, ad esempio, che un driver crei oggetti dispositivo di controllo complessivi in DriverEntry e quindi crei un altro set di oggetti dispositivo nella routine AddDevice . Si supponga che la routine AddDevice inizializzi l'estensione del dispositivo con informazioni sui driver di livello inferiore, ma gli oggetti dispositivo di controllo non contengono queste informazioni. In questo caso, tutte le routine dispatch devono prestare attenzione a controllare ogni oggetto dispositivo ricevuto. In caso contrario, il driver potrebbe arrestarsi in modo anomalo quando si tenta di usare le informazioni sull'estensione del dispositivo.