FsRtlCheckOplock 宏 (rxprocs.h)
FsRtlCheckOplock 例程會同步處理檔案 I/O 作業的 IRP 與檔案目前的商機鎖定 (oplock) 狀態。
語法
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
參數
A1
檔案不透明的不透明鎖定指標。 此指標必須由 先前對 FsRtlInitializeOplock 的呼叫初始化。
A2
I/O 作業之 IRP 的指標。
A3
要傳遞至 CompletionRoutine 和 PostIrpRoutine 參數所指向之回呼例程之呼叫端定義內容資訊的指標。
A4
呼叫端提供的回呼例程指標。 如果作業鎖定中斷正在進行中,當中斷完成時,就會呼叫此例程。 此參數是選擇性的,可以是 NULL。 如果是 NULL,則呼叫端會進入等候狀態,直到作業鎖定中斷完成為止。
此例程宣告如下:
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
此例程具有下列參數:
A5
如果 I/O 作業張貼至工作佇列,則呼叫端提供的回呼例程指標。 此參數是選擇性的,可以是 NULL。
此例程宣告如下:
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
傳回值
無
備註
FsRtlCheckOplock 會根據下列條件,同步處理 I/O 作業的 IRP 與檔案目前的商機鎖定狀態:
- 如果 I/O 作業會導致機會鎖定中斷,則會起始機會鎖定中斷。
- 如果 I/O 作業在作業中斷完成之前無法繼續, FsRtlCheckOplock 會傳回STATUS_PENDING,並呼叫 PostIrpRoutine 參數指向的回呼例程。
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
如需有關機會鎖定的詳細資訊,請參閱 Microsoft Windows SDK 檔。
Minifilters 應該呼叫 FltCheckOplock ,而不是 FsRtlCheckOplock。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 此例程適用於 Microsoft Windows 2000 和更新版本的 Windows 操作系統。 |
目標平台 | Universal |
標頭 | rxprocs.h (包括 FltKernel.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
另請參閱
FSCTL_OPBATCH_ACK_CLOSE_PENDING