共用方式為


破除機會鎖

解除機會鎖定指的是將一個客戶端對檔案的鎖定程式降級,以便另一個客戶端能夠開啟該檔案,不論是否有機會鎖定。 當其他用戶端要求開啟作業時,伺服器會延遲開啟作業,並通知持有機會鎖的用戶端。

保留鎖定的客戶端接著會採取適當的鎖定類型動作,例如放棄讀取緩衝區、關閉檔案等等。 只有當持有機會鎖(opportunistic lock)的客戶端通知伺服器它已完成時,伺服器才會開啟那個要求開啟作業的客戶端的檔案。 不過,當層級 2 鎖定被破壞時,伺服器會向客戶端報告它已被破壞,但不會等待任何回應,因為沒有任何快取的資料要排清到伺服器。

在認可任何獨佔鎖定的中斷時(篩選、層級 1 或批次),中斷鎖定的持有者無法要求另一個獨佔鎖定。 它可以將獨佔鎖定降級為層級 2 鎖定或完全沒有鎖定。 持有人通常會釋放鎖定,並在檔案即將關閉時關閉檔案。

應用程式會接收到通知,即透過與鎖定中斷的檔案相關聯的 OVERLAPPED 結構中的 hEvent 成員來中斷機會鎖定。 應用程式也可以使用 GetOverlappedResultHasOverlappedIoCompleted等函式。