Freigeben über


Einrichten von IRPs in Zwischentreibern

Jeder Zwischentreiber, der zwischen einem Dateisystemtreiber und einem Wechselmediengerätetreiber liegt, muss den E/A-Stapelspeicherort des nächstniedrigen Treibers in IRPs einrichten. Von eingehenden IRP_MJ_READ-, IRP_MJ_WRITE- und IRP_MJ_DEVICE_CONTROL-Anforderungen muss der zwischengeschaltete Treiber eigene E/A-Stapelspeicherungsflags in den E/A-Stapelspeicherort des nächstniedrigen Treibers kopieren, wenn er den E/A-Stapelspeicherort für den unteren Treiber einrichtet.

Wenn der Zwischentreiber neue IRPs für Wechselmedientreiber auf niedrigerer Ebene zuweist, müssen diese IRPs wie folgt eingerichtet werden:

  • Für Übertragungsanforderungen muss der Threadkontext in jedem treiberseitig zugewiesenen IRP aus dem Wert von Tail.Overlay.Thread im ursprünglichen IRP eingerichtet werden.

  • Für IRP_MJ_READ-, IRP_MJ_WRITE- und IRP_MJ_DEVICE_CONTROL-Anforderungen müssen die E/A-Stapelspeicherortflags aus dem ursprünglichen IRP auf jede vom Treiber zugewiesene IRP kopiert werden.

Andernfalls kann das Dateisystem weder die Integrität der zwischengespeicherten Dateidaten aufrechterhalten noch dazu veranlassen, dass der Benutzer aufgefordert wird, das Medium, das eine geöffnete Datei enthält, erneut einzufügen.