Akış İşaretçilerini Kilitleme ve Kilidini Açma

Her akış işaretçisi kilit durumunu korur: kilitli veya kilidi açık.

Kilitli akış işaretçilerinin kuyruktaki verilere başvurması garanti edilir. Kilitli akış işaretçilerinin işaret ettiği veri çerçeveleri iptal edilemez. Bu nedenle, minidriver'lar kilitli akış işaretçilerini tutma sürelerini en aza indirmelidir.

Kilitlenmemiş akış işaretçisinin kuyruktaki bir veri çerçevesine başvurması garanti değildir. Kilitsiz bir akış işaretçisini tutarak, minidriver bir veri işaretçisini koruyabilir, ancak yine de karenin iptal edilmesine izin verebilir.

Kilidi açılmış bir akış işaretçisi tarafından işaret edilen verilere erişmek mümkündür. KsStreamPointerClone'da sağladığınız CancelCallback yordamı KsStreamPointerDelete'i çağırırsa, CancelCallback'i ve gerçekleştirdiği tüm veri erişimini eşitlemeniz gerekir. Minidriver, iptal geri çağırma rutininin başka bir iş parçacığı akış işaretçisini kullanırken silmemesini sağlamalıdır.

İptal geri çağırma yordamı KsStreamPointerDelete'ı çağırmazsa eşitleme gerekli olmayabilir.

Bir akış işaretçisini kilitlemek için KsStreamPointerLock çağrısında bulunur. Bir akış işaretçisi kilidini açmak için KsStreamPointerUnlock çağrısında bulunur.

Bir IRP iptal edildiğinde AVStream, IRP içindeki çerçeveleri işaret eden tüm kilidi açılmış akış işaretçileri için iptal geri çağırmalarını çağırır.

Baştaki ve sondaki kenar akış işaretçilerinin kilidini yalnızca kullanımda değilken açın.