Überprüfen von Flags im Geräteobjekt
Für jede IRP, die einen E/A-Vorgang für wechselbare Medien anfordert, muss ein Wechselmediengerätetreiber ermitteln, ob DO_VERIFY_VOLUME bereits in seinen DeviceObject-Flags> festgelegt ist. Wenn dieser Wert festgelegt ist, muss der Treiber folgendes tun:
Überprüfen Sie bei IRP_MJ_READ, IRP_MJ_WRITE und IRP_MJ_DEVICE_CONTROL Anforderungen, ob SL_OVERRIDE_VERIFY_VOLUME im Flags-Member der IO_STACK_LOCATION Struktur des Treibers festgelegt ist. Wenn dies der Grund ist, fahren Sie mit dem angeforderten Vorgang fort.
Gerätesteuerungsanforderungen, die Informationen zur logischen Struktur des zugrunde liegenden Mediums zurückgeben, werden SL_OVERRIDE_VERIFY_VOLUME im Flags-Member des E/A-Stapels festgelegt, wenn ein IFS ein Wechselmedienvolume ein- oder neu einrichtet.
Andernfalls muss der Treiber die Ausführung von E/A-Anforderungen für das entsprechende Laufwerk, Gerät oder die entsprechende Partition ablehnen, während DO_VERIFY_VOLUME in seinen DeviceObject-Flags> festgelegt ist. Bei einem Wechselmedientreiber müssen IRPs fehlschlagen, die an das entsprechende Gerät gesendet werden, bis der FSD DO_VERIFY_VOLUME in den DeviceObject-Flags> des Wechselmedientreibers löscht.
Wenn bei einem Gerätetreiber für Wechselmedien keine IRPs fehlschlagen, wenn DO_VERIFY_VOLUME festgelegt ist und SL_OVERRIDE_VERIFY_VOLUME nicht für die vorherigen Übertragungsanforderungen festgelegt ist, kann das Dateisystem weder die Integrität der zwischengespeicherten Dateidaten aufrechterhalten noch dazu führen, dass der Benutzer aufgefordert wird, das Medium, das eine geöffnete Datei enthält, erneut einzufügen.