Freigeben über


Erforderliche Verteilerroutinen

Die meisten Treiber müssen die folgenden Dispatch-Routinen verarbeiten:

  • DispatchPnP

    IRP_MJ_PNP gibt eine Anforderung an, die PnP-Geräteerkennung, Hardwarekonfiguration oder Ressourcenzuordnung umfasst. Solche Anforderungen werden in der Regel vom PnP-Manager oder von einem eng gekoppelten Treiber auf höherer Ebene an einen Gerätetreiber gesendet.

  • DispatchPower

    IRP_MJ_POWER gibt eine Anforderung an, die sich auf den Energiezustand des Geräts oder des Systems bezieht. Solche Anforderungen werden entweder vom Power-Manager oder einem eng gekoppelten Treiber auf höherer Ebene an den Gerätetreiber gesendet.

  • DispatchCreate

    IRP_MJ_CREATE gibt an, dass ein vom Benutzermodus geschütztes Subsystem, möglicherweise im Namen einer Anwendung oder eines subsystemspezifischen Treibers, ein Handle für das Dateiobjekt angefordert hat, das dem Zielgerätobjekt zugeordnet ist, oder dass ein Treiber auf höherer Ebene das Verbinden oder Anfügen seines Geräteobjekts an das Zielgerätobjekt anfordert.

  • DispatchClose

    IRP_MJ_CLOSE gibt an, dass das letzte Handle des Dateiobjekts, dem das Zielgerätobjekt zugeordnet war, geschlossen und freigegeben wurde. Alle E/A-Anfragen wurden abgeschlossen oder abgebrochen, sodass jetzt keine offenen Verweise auf den Dateiobjektzeiger vorhanden sind.

  • DispatchRead

    IRP_MJ_READ gibt eine E/A-Anforderung zum Übertragen von Daten vom zugrunde liegenden physischen Gerät an das System an.

  • DispatchWrite

    IRP_MJ_WRITE gibt eine E/A-Anforderung zum Übertragen von Daten vom System an das zugrunde liegende physische Gerät an.

  • DispatchDeviceControl

    IRP_MJ_DEVICE_CONTROL gibt eine Anforderung an, die einen vom System definierten, gerätetypspezifischen E/A-Steuercode enthält, der einen gerätetypspezifischen Vorgang angibt. Treiber auf höherer Ebene übergeben diese IRPs an ihre zugrunde liegenden Gerätetreiber, die die Anforderung in der Regel verarbeiten, indem sie auf das Gerät zugreifen.

  • DispatchInternalDeviceControl

    IRP_MJ_INTERNAL_DEVICE_CONTROL gibt eine an den Gerätetreiber gesendete Anforderung an, in den meisten Fällen von einem eng gekoppelten höheren Treiber, in der Regel mit einem privat definierten, treiberspezifischen und gerätespezifischen E/A-Steuerungscode, der einen gerätespezifischen oder gerätespezifischen Vorgang anfordert.

    Es sind nur bestimmte Arten von Treibern erforderlich, um systemdefinierte interne Geräte-E/A-Steuerungsanforderungen zu verarbeiten, einschließlich BESTIMMTER SCSI-Treiber, Tastatur- oder Mausgerätetreiber und parallele Treiber, die mit vom System bereitgestellten Treibern zusammenarbeiten.

  • DispatchSystemControl

    IRP_MJ_SYSTEM_CONTROL wird verwendet, um WMI-Anforderungen für Treiber anzugeben. Für weitere Informationen zu WMI siehe Windows Management Instrumentation.

Die Verteilerroutinen, die ein Treiber bereitstellen muss, variieren je nach Typ und Funktionalität des zugrunde liegenden physischen Geräts. Informationen zu hauptfunktionsspezifischen IRP-Funktionscodes, die Treiber verarbeiten müssen, finden Sie in der gerätetypspezifischen Dokumentation im Windows Driver Kit (WDK).