Fırsatçı Kilitlerin Kırılması
Fırsatçı kilidin kırılması, bir istemcinin dosyada sahip olduğu kilidi düşürme işlemidir, böylece başka bir istemci dosyayı fırsatçı bir kilitle veya olmadan açabilir. Diğer istemci açma işlemini istediğinde, sunucu açma işlemini geciktirip fırsatçı kilidi tutan istemciye bildirir.
Kilidi tutan istemci daha sonra, okuma arabelleklerini bırakma, dosyayı kapatma vb. kilit türüne uygun eylemler gerçekleştirir. Yalnızca fırsatçı kilidi tutan istemci, bunun yapıldığını sunucuya bildirirse, sunucu açma işlemini isteyen istemci için dosyayı açar. Ancak, düzey 2 kilidi bozulduğunda, sunucu istemciye bozulduğunu bildirir, ancak önbelleğe alınmış verilerin sunucuya boşaltılmaması nedeniyle herhangi bir onay beklemez.
Herhangi bir özel kilidin (filtre, düzey 1 veya toplu iş) bozulduğunu kabul ettiğinizde, kırılmış kilidin sahibi başka bir özel kilit isteyemez. Özel bir kilidi düzey 2 kilide düşürebilir veya hiç kilit bırakmayabilir. Tutucu genellikle kilidi serbest bırakır ve zaten dosyayı kapatmak üzereyken dosyayı kapatır.
Uygulamalara, kilidin bozulduğu dosya ile ilişkili OVERLAPPED yapısının hEvent üyesi kullanılarak fırsatçı bir kilidin bozulduğunu bildirilir. Uygulamalar, GetOverlappedResult ve HasOverlappedIoCompletedgibi işlevleri de kullanabilir.