Introduzione agli oggetti dispositivo

Il sistema operativo rappresenta i dispositivi in base agli oggetti del dispositivo. Uno o più oggetti dispositivo sono associati a ogni dispositivo. Gli oggetti dispositivo fungono da destinazione di tutte le operazioni nel dispositivo.

I driver in modalità kernel devono creare almeno un oggetto dispositivo per ogni dispositivo, con le eccezioni seguenti:

  • I minidriver con una classe o un driver di porta associati non devono creare oggetti dispositivo personalizzati. Il driver di classe o porta crea gli oggetti del dispositivo e invia le operazioni al minidriver.

  • I driver che fanno parte di sottosistemi specifici del tipo di dispositivo, ad esempio i driver miniport NDIS, hanno i relativi oggetti dispositivo creati dal sottosistema.

Per determinare se il driver crea i propri oggetti dispositivo, vedere la documentazione relativa al tipo di dispositivo specifico.

Alcuni oggetti dispositivo non rappresentano dispositivi fisici. Un driver solo software, che gestisce le richieste di I/O, ma non passa tali richieste all'hardware, deve comunque creare un oggetto dispositivo per rappresentare la destinazione delle sue operazioni.

Per altre informazioni su come il driver può creare oggetti dispositivo, vedere Creazione di un oggetto dispositivo.

I dispositivi sono in genere rappresentati da più oggetti dispositivo, uno per ogni driver nello stack di driver che gestisce le richieste di I/O per il dispositivo. Gli oggetti dispositivo per un dispositivo sono organizzati in uno stack di dispositivi. Ogni volta che viene eseguita un'operazione in un dispositivo, il sistema passa una struttura di dati IRP al driver per l'oggetto dispositivo superiore nello stack di dispositivi. Ogni driver gestisce l'IRP o lo passa al driver associato all'oggetto dispositivo inferiore successivo nello stack di dispositivi. Per altre informazioni sugli stack di dispositivi, vedere Esempio di Stack di dispositivi WDM. Per altre informazioni sui provider di servizi di integrazione, vedere Gestione dei provider di servizi di integrazione.

Gli oggetti dispositivo sono rappresentati da strutture DEVICE_OBJECT gestite dal gestore oggetti. Gestione oggetti offre le stesse funzionalità per gli oggetti dispositivo che esegue per altri oggetti di sistema. In particolare, un oggetto dispositivo può essere denominato e un oggetto dispositivo denominato può avere handle aperti su di esso. Per altre informazioni sugli oggetti dispositivo denominati, vedere Oggetti dispositivo denominati.

Il sistema fornisce spazio di archiviazione dedicato per ogni oggetto dispositivo, denominato estensione del dispositivo, che il driver può usare per l'archiviazione specifica del dispositivo. L'estensione del dispositivo viene creata e liberata dal sistema insieme all'oggetto dispositivo. Per altre informazioni, vedere Estensioni del dispositivo.

Nella figura seguente viene illustrata la relazione tra oggetti dispositivo e gestione I/O.

diagramma che illustra un oggetto dispositivo.

La figura mostra i membri della struttura DEVICE_OBJECT che sono di interesse per un writer driver. Per altre informazioni su questi membri, vedere Creazione di un oggetto Device, Inizializzazione di un oggetto Device e Proprietà degli oggetti dispositivo.