FsRtlCheckOplock-Makro (rxprocs.h)
Die FsRtlCheckOplock-Routine synchronisiert den 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 FsRtlInitializeOplock initialisiert worden sein.
A2
Ein Zeiger auf den IRP für den E/A-Vorgang.
A3
Ein Zeiger auf vom Aufrufer definierte Kontextinformationen, die an die Rückrufroutinen übergeben werden sollen, auf die die Parameter CompletionRoutine und PostIrpRoutine 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 sein. Wenn der Wert 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 verfügt über die folgenden Parameter:
- Kontext
- Irp
Ein Kontextinformationszeiger, der im Context-Parameter an FsRtlCheckOplock übergeben wurde.
Ein Zeiger auf den 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 an eine Arbeitswarteschlange gesendet wird. Dieser Parameter ist optional und kann NULL sein.
Diese Routine wird wie folgt deklariert:
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
- Kontext
- Irp
Ein Kontextinformationszeiger, der im Context-Parameter an FsRtlCheckOplock übergeben wurde.
Ein Zeiger auf den IRP für den E/A-Vorgang.
Rückgabewert
Keine
Bemerkungen
FsRtlCheckOplock synchronisiert den IRP für einen E/A-Vorgang mit dem aktuellen opportunistischen Sperrzustand einer Datei gemäß den folgenden Bedingungen:
- Wenn der E/A-Vorgang bewirkt, dass die opportunistische Sperre unterbrochen wird, wird der opportunistische Sperrbruch initiiert.
- Wenn der E/A-Vorgang nicht fortgesetzt werden kann, bis der opportunistische Sperrumbruch abgeschlossen ist, gibt FsRtlCheckOplock STATUS_PENDING zurück und ruft die Rückrufroutine auf, auf die der Parameter PostIrpRoutine 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 Dokumentation zu Microsoft Windows SDK.
Minifilter sollten FltCheckOplock anstelle von FsRtlCheckOplock aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Diese Routine ist in Microsoft Windows 2000 und höheren Versionen von Windows-Betriebssystemen verfügbar. |
Zielplattform | Universell |
Header | rxprocs.h (include FltKernel.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Weitere Informationen
FSCTL_OPBATCH_ACK_CLOSE_PENDING