FSCTL_REQUEST_OPLOCK控件程式代碼
FSCTL_REQUEST_OPLOCK控件程式代碼會要求在檔案上 (oplock) 的商機鎖定,或確認發生 oplock 中斷。
如需有關商機鎖定的詳細資訊,請參閱 Windows 桌面檔中 的 Opportunistic Locks 。 如需使用者模式 OPLOCK 控制件的詳細資訊,請參閱 Windows 桌面檔中的 檔案管理控制項代碼 。
若要處理此控件程式代碼,文件系統或篩選驅動程式會使用下列參數呼叫 FsRtlOplockFsctrlEx 。
參數
Oplock:檔案的不透明不透明鎖定對象指標。
Irp:IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 要求的 IRP 指標。 作業的 FsControlCode 參數必須FSCTL_REQUEST_OPLOCK。
OpenCount:如果要求是針對獨佔 oplock,則檔案的使用者句柄數目。 如果要求是針對可共用的oplock,則如果檔案上沒有位元組範圍鎖定, 則OpenCount 為零。 否則, OpenCount 為非零。 呼叫端可以在 IRP 上呼叫 FsRtlOplockIsSharedRequest 例程,以判斷要求是否適用於可共用的 oplock。
旗標:相關聯 oplock 作業的位掩碼。 文件系統或篩選驅動程式會設定位,以指定 FsRtlOplockFsctrlEx 的行為。 Flags 參數具有下列選項:
值 意義 OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) 指定檔案系統已確認所有商機鎖定索引鍵都符合目前開啟的任何句柄。 藉由指定此旗標,當檔案有多個開啟句柄存在時,oplock 套件可以授與層級 RW 或 RWH 的 oplock。 如需 oplock 類型的詳細資訊,請參閱 概觀。
狀態區塊
FsRtlOplockFsctrlEx 會針對此作業傳回下列其中一個 NTSTATUS 值:
程式碼 | 意義 |
---|---|
STATUS_PENDING | 已授與 oplock。 這是成功的程序代碼。 |
STATUS_CANCELLED | IRP 在完成FSCTL_REQUEST_OPLOCK作業之前已取消。 這是錯誤碼。 |
STATUS_OPLOCK_NOT_GRANTED | 無法授與 oplock。 這是錯誤碼。 |
規格需求
需求類型 | 需求 |
---|---|
標頭 | Ntifs.h (包括 Ntifs.h 或 Fltkernel.h) |