FsRtlOplockBreakToNoneEx 函式 (ntifs.h)
FsRtlOplockBreakToNoneEx 例程會立即中斷所有 opportunistic 鎖定 (oplocks) 而不考慮任何 oplock 密鑰。
語法
NTSTATUS FsRtlOplockBreakToNoneEx(
[in, out] POPLOCK Oplock,
[in] PIRP Irp,
[in] ULONG Flags,
[in, optional] PVOID Context,
[in, optional] POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
[in, optional] POPLOCK_FS_PREPOST_IRP PostIrpRoutine
);
參數
[in, out] Oplock
檔案的不透明不透明鎖定指標。 此指標必須由 先前對 FsRtlInitializeOplock 的呼叫初始化。
[in] Irp
I/O 作業之 IRP 的指標。
[in] Flags
相關聯檔案 I/O 作業的位掩碼。 文件系統或篩選驅動程式會設定位,以指定 FsRtlOplockBreakToNoneEx 的行為。 Flags 參數具有下列選項:
OPLOCK_FLAG_COMPLETE_IF_OPLOCKED (0x00000001)
指定允許 oplock 中斷繼續,而不封鎖或擱置造成 oplock 中斷的作業。 一般而言,只有在 Irp 參數指向的 IRP 宣告IRP_MJ_CREATE作業時,才會使用此旗標。
[in, optional] Context
要傳遞至 CompletionRoutine 和 PostIrpRoutine 參數所指向之回呼例程之呼叫端定義內容資訊的指標。
[in, optional] CompletionRoutine
呼叫端提供的回呼例程指標。 如果作業鎖定中斷正在進行中,當中斷完成時,就會呼叫此例程。 此參數是選擇性的,可以是 NULL。 如果是 NULL,則呼叫端會進入等候狀態,直到作業鎖定中斷完成為止。
此例程宣告如下:
typedef VOID
(*POPLOCK_WAIT_COMPLETE_ROUTINE) (
IN PVOID Context,
IN PIRP Irp
);
此例程具有下列參數:
Context
在 Context 參數中傳遞至 FsRtlOplockBreakToNoneEx 的內容資訊指標。
Irp
I/O 作業之 IRP 的指標。
[in, optional] PostIrpRoutine
如果要寫入 I/O 作業,則呼叫端提供的回呼例程指標。 此例程會在 oplock 套件畫上 IRP 之前呼叫。 此參數是選擇性的,可以是 NULL。
此例程宣告如下:
typedef VOID
(*POPLOCK_FS_PREPOST_IRP) (
IN PVOID Context,
IN PIRP Irp
);
Context
在 Context 參數中傳遞至 FsRtlOplockBreakToNoneEx 的內容資訊指標。
Irp
I/O 作業之 IRP 的指標。
傳回值
FsRtlOplockBreakToNoneEx 會傳回STATUS_SUCCESS或適當的 NTSTATUS 程式代碼,例如下列其中一項:
傳回碼 | Description |
---|---|
|
IRP 已取消。 STATUS_CANCELLED是錯誤碼。 |
|
作業中斷正在進行中。 因此,IRP 已畫筆。 STATUS_PENDING是成功的程序代碼。 |
|
作業鎖定中斷 (作業鎖定) 正在進行中。 STATUS_OPLOCK_BREAK_IN_PROGRESS是 FsRtlOplockBreakToNoneEx 傳回的成功程式代碼,如果呼叫端在 Flags 參數中設定OPLOCK_FLAG_COMPLETE_IF_OPLOCKED,且 oplock 必須中斷。 |
備註
如需有關機會鎖定的詳細資訊,請參閱 Microsoft Windows SDK 檔。
Minifilters 應該呼叫 FltOplockBreakToNoneEx ,而不是 FsRtlOplockBreakToNoneEx。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | FsRtlOplockBreakToNoneEx 例程可從 Windows 7 開始提供。 |
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應