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) |