Freigeben über


Oplock-Synchronisierung

Filter und Dateisysteme, die exklusive opportunistische Sperren (Oplocks ) anfordern, müssen Aufrufe mit dem vom System bereitgestellten oplock-Paket synchronisieren. Insbesondere müssen Aufrufe von OPLOCK-FSCTRL-Routinen (zum Einrichten von Oplocks) mit Aufrufen von Oplock-Check-Break-Routinen synchronisiert werden. Eine Liste der beiden Routinegruppen umfasst:

Bei der Verarbeitung einer Oplock-Anforderung müssen Filter und Dateisysteme Folgendes sicherstellen:

  • E/A, die möglicherweise einen Oplock unterbrechen, können nicht parallel zur Verarbeitung der Anforderung erfolgen.
  • Oplock-Anforderungen können nicht gleichzeitig mit Oplock-Unterbrechungsbestätigungen ausgeführt werden.

IRP-Aufrufe, die die Erstellung exklusiver Oplocks für denselben Dateisteuerungsblock (FCB) anfordern, sind:

Im Folgenden sind einige Beispiele für die oplock-Synchronisierung aufgeführt:

  • Bei der Verarbeitung einer Oplock-Anforderung würde ein Dateisystem eine Ressource exklusiv abrufen, FsRtlOplockFsctrlEx aufrufen und die Ressource freigeben.

  • Beim Verarbeiten einer Oplock-Unterbrechungsbestätigung würde das Dateisystem dieselbe freigegebene Ressource abrufen, FsRtlOplockFsctrlEx aufrufen und die Ressource freigeben.

  • Bei der E/A-Ausführung würde das Dateisystem dieselbe freigegebene Ressource abrufen, FsRtlCheckOplockEx2 aufrufen, die E/A-Vorgänge ausführen und die Ressource freigeben.

    Obere Dateisysteme sollten sicherstellen, dass sie sich zwischen Aufrufen von FsRtlCheckUpperOplock und FsRtlUpperOplockFsctrl auf ähnliche Weise synchronisieren.