Freigeben über


FSCTL_REQUEST_OPLOCK-Steuerelementcode

Der FSCTL_REQUEST_OPLOCK-Steuerungscode fordert eine opportunistische Sperre (Oplock) für eine Datei an oder bestätigt, dass ein Oplock-Break aufgetreten ist.

Weitere Informationen zu opportunistischen Sperren finden Sie unter Opportunistische Sperren in der Windows Desktop-Dokumentation. Weitere Informationen zu OPLOCK-Steuerelementen im Benutzermodus finden Sie unter Dateiverwaltungssteuerungscodes in der Windows Desktop-Dokumentation.

Um diesen Steuerungscode zu verarbeiten, ruft ein Dateisystem- oder Filtertreiber FsRtlOplockFsctrlEx mit den folgenden Parametern auf.

Parameter

  • Oplock: Undurchsichtiger Oplock-Objektzeiger für die Datei.

  • Irp: Ein Zeiger auf den IRP für eine IRP_MJ_FILE_SYSTEM_CONTROL FSCTL-Anforderung. Der FsControlCode-Parameter für den Vorgang muss FSCTL_REQUEST_OPLOCK sein.

  • OpenCount: Die Anzahl der Benutzerhandles für die Datei, wenn die Anforderung für einen exklusiven Oplock gilt. Wenn die Anforderung für einen Oplock gilt, der freigegeben werden kann, ist OpenCount null, wenn für die Datei keine Bytebereichssperren vorhanden sind. Andernfalls ist OpenCount ungleich null. Der Aufrufer kann die FsRtlOplockIsSharedRequest-Routine für das IRP aufrufen, um zu bestimmen, ob die Anforderung für einen Oplock gilt, der freigegeben werden kann.

  • Flags: Eine Bitmaske für die zugeordneten Oplockvorgänge. Ein Dateisystem oder Filtertreiber legt Bits fest, um das Verhalten von FsRtlOplockFsctrlEx anzugeben. Der Flags-Parameter verfügt über die folgenden Optionen:

    Wert Bedeutung
    OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) Gibt an, dass das Dateisystem überprüft hat, ob alle opportunistischen Sperrschlüssel mit jedem derzeit geöffneten Handle übereinstimmen. Durch Angabe dieses Flags kann das oplock-Paket einen Oplock der Ebene RW oder RWH gewähren, wenn mehr als ein geöffnetes Handle für die Datei vorhanden ist. Weitere Informationen zu oplock-Typen finden Sie unter Übersicht.

Statusblock

FsRtlOplockFsctrlEx gibt einen der folgenden NTSTATUS-Werte für diesen Vorgang zurück:

Code Bedeutung
STATUS_PENDING Der Oplock wurde gewährt. Dies ist ein Erfolgscode.
STATUS_CANCELLED Der IRP wurde abgebrochen, bevor der FSCTL_REQUEST_OPLOCK Vorgang abgeschlossen wurde. Dies ist ein Fehlercode.
STATUS_OPLOCK_NOT_GRANTED Der Oplock konnte nicht gewährt werden. Dies ist ein Fehlercode.

Anforderungen

Anforderungstyp Anforderung
Header Ntifs.h (schließen Sie Ntifs.h oder Fltkernel.h ein)

Weitere Informationen

FsRtlOplockFsctrlEx

FsRtlOplockIsSharedRequest

IRP_MJ_FILE_SYSTEM_CONTROL