Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Each driver-specific I/O stack location (IO_STACK_LOCATION) for every IRP contains a major function code (IRP_MJ_XXX), which tells the driver what operation it or the underlying device driver should carry out to satisfy the I/O request. Ogni driver in modalità kernel deve fornire routine dispatch per i codici di funzione principali che deve supportare.
The specific operations a driver carries out for a given IRP_MJ_XXX code depend somewhat on the underlying device, particularly for IRP_MJ_DEVICE_CONTROL and IRP_MJ_INTERNAL_DEVICE_CONTROL requests. Ad esempio, le richieste inviate a un driver da tastiera sono necessariamente diverse da quelle inviate a un driver su disco. Tuttavia, il gestore di I/O definisce i parametri e il contenuto della posizione dello stack I/O per ogni codice di funzione principale definito dal sistema.
Every higher-level driver must set up the appropriate I/O stack location in IRPs for the next-lower-level driver and call IoCallDriver, either with each input IRP, or with a driver-created IRP (if the higher-level driver holds on to the input IRP). Di conseguenza, ogni driver intermedio deve fornire una routine dispatch per ogni codice di funzione principale gestito dal driver di dispositivo sottostante. In caso contrario, un nuovo driver intermedio interromperà la catena ogni volta che un'applicazione o un driver di livello superiore tenta di inviare una richiesta di I/O al driver di dispositivo sottostante.
File system drivers and legacy file system filter drivers also handle a required subset of system-defined IRP_MJ_XXX function codes, some with subordinate IRP_MN_XXX function codes. Per altre informazioni su come gestire questi provider di integrazione, vedere Codici di funzione principali IRP per i driver del file system e i driver di filtro FS legacy.
I driver gestiscono i runtime di integrazione impostati con alcuni o tutti i codici di funzione principali seguenti:
IRP_MJ_INTERNAL_DEVICE_CONTROL
I parametri di input e output descritti in questa sezione sono i parametri specifici della funzione in IRP.
For more information about IRPs, see Handling IRPs.