Freigeben über


Funktionalität der Dispatchroutine

Die erforderliche Funktionalität einer bestimmten Dispatchroutine variiert je nach E/A-Funktionscode, der position des einzelnen Treibers in einer Kette von Treibern und dem Typ des zugrunde liegenden physischen Geräts.

Die meisten Dispatchroutinen verarbeiten eingehende E/A-Anforderungspakete (IRPs) wie folgt:

  1. Überprüfen Sie den E/A-Stapelspeicherort des Treibers im IRP, um zu ermitteln, was zu tun ist, und überprüfen Sie ggf. die Parameter auf Gültigkeit.

    Ob ein Treiber seinen E/A-Stapelspeicherort überprüfen muss, um zu bestimmen, was zu tun ist, und die Parameter zu überprüfen, hängt von der angegebenen IRP_MJ_XXX ab und davon, ob dieser Treiber eine separate Dispatch-Routine für jeden IRP_MJ_XXX eingerichtet hat, den der Treiber verarbeitet.

  2. Erfüllen Sie die Anforderung, und schließen Sie die IRP nach Möglichkeit ab. Andernfalls übergeben Sie es zur weiteren Verarbeitung durch Treiber niedrigerer Ebene oder durch andere Gerätetreiberroutinen.

    Ob ein Treiber ein IRP für die weitere Verarbeitung übergeben muss, hängt von der Gültigkeit der Parameter (sofern vorhanden) sowie vom IRP_MJ_XXX und ggf. von der Treiberebene in einer Kette von mehrstufigen Treibern ab.

Weitere Informationen zu IRPs finden Sie unter Behandeln von IRPs.