Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die DispatchRead - und DispatchWrite-Routinen eines Treibers verarbeiten IRPs mit E/A-Funktionscodes von IRP_MJ_READ bzw. IRP_MJ_WRITE. Alternativ kann eine kombinierte DispatchReadWrite-Routine IRPs für beide E/A-Funktionscodes verarbeiten.
Jeder Treiber eines Geräts, von dem Daten an das System übertragen werden können, muss über eine DispatchRead-Routine verfügen. Jeder Treiber eines Geräts, auf den Daten aus dem System übertragen werden können, muss über eine DispatchWrite-Routine verfügen. Jeder Treiber, der Daten in beide Richtungen überträgt, kann über eine kombinierte DispatchReadWrite-Routine verfügen.
Treiber auf niedrigerer Ebene verarbeiten IRP_MJ_READ - und IRP_MJ_WRITE-Anforderungen asynchron. Daher müssen DispatchRead - und/oder DispatchWrite-Routinen in Treibern der höchsten Ebene diese Anforderungen zur weiteren Verarbeitung übergeben, sofern die Anforderung über gültige Parameter am E/A-Stapelspeicherort des IRP dieses Treibers verfügt.
Ob ein Treiber seine Geräteobjekte für gepufferte oder direkte E/A-Vorgänge einrichtet, wirkt sich auf die Verarbeitung von Übertragungsanforderungen aus. Insbesondere ein Treiber, der direkte E/A für DMA-Vorgänge verwendet, muss möglicherweise große Übertragungsanforderungen in eine Sequenz kleinerer Übertragungsvorgänge aufteilen, um eine IRP_MJ_READ - oder IRP_MJ_WRITE-Anforderung zu erfüllen. Weitere Informationen finden Sie unter Eingabe-/Ausgabetechniken.
In den folgenden Unterabschnitten werden einige der Entwurfs- und Implementierungsüberlegungen für DispatchReadWrite-Routinen in Gerätetreibern der niedrigsten Ebene erläutert, die gepufferte E/A und direkte E/A verwenden, sowie in übergeordneten Treibern, die darüber liegen:
Asynchrones Behandeln von Übertragungen
DispatchReadWrite mit gepufferten E/A-Vorgängen
DispatchReadWrite mit direkter E/A
DispatchReadWrite in Higher-Level-Treibern
Zusammenfassung der Lese-/Schreibroutinen für die Verteilung