FsRtlCheckOplock-Makro (rxprocs.h)
Die FsRtlCheckOplock Routine synchronisiert das IRP für einen Datei-E/A-Vorgang mit dem aktuellen opportunistischen Sperrzustand (Oplock) der Datei.
Syntax
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
Parameter
A1
Ein undurchsichtiger opportunistischer Sperrzeiger für die Datei. Dieser Zeiger muss durch einen vorherigen Aufruf von fsRtlInitializeOplockinitialisiert worden sein.
A2
Ein Zeiger auf das IRP für den E/A-Vorgang.
A3
Ein Zeiger zum Aufrufen definierter Kontextinformationen, die an die Rückrufroutinen übergeben werden sollen, auf die die parameter CompletionRoutine und PostIrpRoutine Parameter verweisen.
A4
Ein Zeiger auf eine vom Aufrufer bereitgestellte Rückrufroutine. Wenn ein opportunistischer Sperrbruch ausgeführt wird, wird diese Routine aufgerufen, wenn die Unterbrechung abgeschlossen ist. Dieser Parameter ist optional und kann NULL-werden. Wenn es NULL-ist, wird der Aufrufer in einen Wartezustand versetzt, bis der opportunistische Sperrbruch abgeschlossen ist.
Diese Routine wird wie folgt deklariert:
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
Diese Routine hat die folgenden Parameter:
- kontextbezogene
- Irp-
Ein Kontextinformationspunkt, der im parameter Context an FsRtlCheckOplockübergeben wurde.
Ein Zeiger auf das IRP für den E/A-Vorgang.
A5
Ein Zeiger auf eine vom Anrufer bereitgestellte Rückrufroutine, die aufgerufen werden soll, wenn der E/A-Vorgang in eine Arbeitswarteschlange gepostet wird. Dieser Parameter ist optional und kann NULL-werden.
Diese Routine wird wie folgt deklariert:
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
- kontextbezogene
- Irp-
Ein Kontextinformationspunkt, der im parameter Context an FsRtlCheckOplockübergeben wurde.
Ein Zeiger auf das IRP für den E/A-Vorgang.
Rückgabewert
Nichts
Bemerkungen
FsRtlCheckOplock synchronisiert das IRP für einen E/A-Vorgang mit dem aktuellen opportunistischen Sperrzustand einer Datei gemäß den folgenden Bedingungen:
- Wenn die E/A-Operation dazu führt, dass die opportunistische Sperre aufgehoben wird, wird der opportunistische Sperrbruch initiiert.
- Wenn der E/A-Vorgang erst fortgesetzt werden kann, wenn die opportunistische Sperrunterbrechung abgeschlossen ist, gibt FsRtlCheckOplock STATUS_PENDING zurück und ruft die Rückrufroutine auf, auf die der PostIrpRoutine Parameter verweist.
IRP_MJ_CLEANUP
IRP_MJ_CREATE
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_LOCK_CONTROL
IRP_MJ_READ
IRP_MJ_SET_INFORMATION
IRP_MJ_WRITE
Ausführliche Informationen zu opportunistischen Sperren finden Sie in der Microsoft Windows SDK-Dokumentation.
Minifilter sollten FltCheckOplock- anstelle von FsRtlCheckOplockaufrufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Diese Routine ist in Microsoft Windows 2000 und höheren Versionen von Windows-Betriebssystemen verfügbar. |
Zielplattform- | Universal |
Header- | rxprocs.h (include FltKernel.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |
Siehe auch
FSCTL_OPBATCH_ACK_CLOSE_PENDING