FSCTL_OPLOCK_BREAK_NOTIFY控件程式代碼
FSCTL_OPLOCK_BREAK_NOTIFY控件程式代碼可讓呼叫端應用程式等候作業鎖定完成, (oplock) 中斷。
這項作業只適用於開啟呼叫端句柄時已起始的 oplock 中斷。 句柄必須以 FILE_COMPLETE_IF_OPLOCKED 開啟。 如果目前保留 oplock 且未啟動 oplock 中斷,此作業就無意義。
若要處理此控件程式代碼,迷你篩選會使用下列參數呼叫 FltOplockFsctrl 。 文件系統或舊版篩選驅動程式會呼叫 FsRtlOplockFsctrl。
如需有關商機鎖定和FSCTL_OPLOCK_BREAK_NOTIFY控件程式代碼的詳細資訊,請參閱 Microsoft Windows SDK 檔。
參數
Oplock:檔案的不透明不透明鎖定對象指標。
CallbackData:僅限 FltOplockFsctrl 。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 要求的回呼數據 (FLT_CALLBACK_DATA) 結構。 作業的 FsControlCode 參數必須FSCTL_OPLOCK_BREAK_NOTIFY。
Irp:僅限 FsRtlOplockFsctrl 。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 要求的 IRP。 作業的 FsControlCode 參數必須FSCTL_OPLOCK_BREAK_NOTIFY。
OpenCount:未與這項作業搭配使用;設定為零。
狀態區塊
FltOplockFsctrl 會在 oplock 中斷進行時傳回FLT_PREOP_PENDING,而且當 oplock 中斷完成時,IRP 將會完成。 (在此情況下,IRP 最終可以使用 STATUS_SUCCESS 或 STATUS_CANCELLED.) 完成,否則 FltOplockFsctrl 會傳回FLT_PREOP_COMPLETE。
FsRtlOplockFsctrl 會針對此作業傳回下列其中一個 NTSTATUS 值:
程式碼 | 意義 |
---|---|
STATUS_SUCCESS | 此句柄不會保留任何 oplock,或保留 oplock,而且未啟動 oplock 中斷。 |
STATUS_INVALID_OPLOCK_PROTOCOL | IRP 在完成FSCTL_OPLOCK_BREAK_NOTIFY作業之前已取消。 |
STATUS_PENDING | Oplock 中斷正在進行中。 當 oplock 中斷完成時,IRP 將會完成。 IRP 最終可以完成STATUS_SUCCESS或STATUS_CANCELLED。 這是成功的程序代碼。 |
規格需求
需求類型 | 需求 |
---|---|
標頭 | Ntifs.h (包括 Ntifs.h 或 Fltkernel.h) |
另請參閱
IRP_MJ_FILE_SYSTEM_CONTROL的FLT_PARAMETERS
FSCTL_OPBATCH_ACK_CLOSE_PENDING