Windows Kernel-Mode I/O Manager
Un computer è costituito da vari dispositivi che forniscono input e output (I/O) da e verso il mondo esterno. I dispositivi tipici sono tastiere, mouse, controller audio, controller video, unità disco, porte di rete e così via. I driver di dispositivo forniscono la connessione software tra i dispositivi e il sistema operativo. Per questo motivo, I/O è molto importante per il writer del driver di dispositivo.
La gestione I/O in modalità kernel di Windows gestisce la comunicazione tra applicazioni e interfacce fornite dai driver di dispositivo. Poiché i dispositivi operano a velocità che potrebbero non corrispondere al sistema operativo, la comunicazione tra il sistema operativo e i driver di dispositivo viene eseguita principalmente tramite pacchetti di richiesta I/O (IRP). Questi pacchetti sono simili ai pacchetti di rete o ai pacchetti di messaggi di Windows. Vengono passati dal sistema operativo a driver specifici e da un driver a un altro.
Il sistema I/O di Windows fornisce un modello di driver a livelli denominato stack. In genere gli indirizzi IRP passano da un driver a un altro nello stesso stack per facilitare la comunicazione. Ad esempio, un driver del joystick deve comunicare con un hub USB, che a sua volta deve comunicare con un controller host USB, che dovrà quindi comunicare tramite un bus PCI al resto dell'hardware del computer. Lo stack è costituito da driver joystick, hub USB, controller host USB e bus PCI. Questa comunicazione è coordinata dalla presenza di ogni driver nello stack di invio e ricezione di IRP.
Non può essere sottolineato abbastanza che il driver deve inviare e ricevere IRP in modo tempestivo per l'intero stack per funzionare in modo efficiente. Se il driver fa parte di uno stack e non riceve correttamente, gestisce e passa le informazioni, il driver può causare arresti anomali del sistema.
Per altre informazioni sui provider di servizi di integrazione, vedere Gestione dei provider di servizi di integrazione.
Per altre informazioni sugli stack di driver, vedere Oggetti dispositivo e Stack di dispositivi.
Per la programmazione techiques correlata alla gestione di I/O, vedere Tecniche di programmazione di I/O Manager.
Le routine che forniscono un'interfaccia diretta al gestore di I/O sono in genere precedute dalle lettere "Io"; Ad esempio, IoCreateDevice. Per un elenco delle routine di gestione I/O, vedere Routine di I/O Manager.
Per elenchi di routine correlate a IRPS, vedere IRP.
Il gestore di I/O ha due sottocomponenti: il gestore di Plug and Play e power manager. Gestiscono le funzionalità di I/O per le tecnologie di Plug and Play e risparmio energia. Per altre informazioni sulla gestione di Plug and Play, vedere Windows Kernel-Mode Plug and Play Manager e per altre informazioni sulla gestione delle energia, vedere Windows Kernel-Mode Power Manager.