Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows 8.1'den başlayarak, ExDeleteTimer yordamı, ExAllocateTimer yordamı tarafından oluşturulan bir zamanlayıcı nesnesini siler. Bu zamanlayıcı nesnesi, üyeleri sürücüler tarafından görülemeyen sistem tarafından ayrılmış bir EX_TIMER yapısıdır. Zamanlayıcı nesnesi silinmeden önce, exDeleteTimer nesne üzerinde daha fazla süreölçer işlemini devre dışı bırakır ve nesne üzerinde devam ediyor olabilecek bekleyen işlemleri iptal eder veya tamamlar.
Bir sürücü ExDeleteTimerçağrısı yaptıktan sonra, bu yordam zamanlayıcı nesnesini güvenli bir şekilde silebilmesini sağlamak için birkaç adım uygular. İlk olarak, ExDeleteTimer sürücünün nesneyi kullanan yeni bir zamanlayıcı işlemi başlatmasını önlemek için zamanlayıcı nesnesini devre dışı olarak işaretler. Zamanlayıcı nesnesi devre dışı bırakıldıktan sonra, ExSetTimer veya ExCancelTimer yordamına yapılan bir çağrı hemen FALSE döndürür ve hiçbir işlem gerçekleştirmez. Ayrıca, ExDeleteTimer işlevine ikinci bir çağrı FALSE döndürür ve hiçbir işlem gerçekleştirmez.
Ardından ExDeleteTimer, bir zamanlayıcının önceki bir çağrıda ExDeleteTimeriçin hala beklemede olup olmadığını denetler. Zamanlayıcı nesnesini devre dışı bırakmak, nesne devre dışı bırakılmadan önce ayarlanmış bir zamanlayıcıyı iptal etmez. Aşağıdaki iki durumdan birinde, zamanlayıcı nesnesi devre dışı bırakıldıktan sonra önceden ayarlanmış bir süreölçerin süresi dolabilir:
- Süreölçer düzenlidir.
- Süreölçer tek seferlik (ya da periyodik olmayan) ve henüz süre dolmamış.
Zamanlayıcı nesnesi devre dışı bırakıldıktan sonra düzenli bir süreölçerin süresi hiçbir zaman birden fazla kez dolmaz.
Sürücünüz bir ExTimerCallback geri çağırma yordamı uygularsa, zamanlayıcı nesnesi devre dışı bırakıldıktan sonra süreölçerin süresi dolsa bile, bu yordamın Timer parametresinin her zaman zamanlayıcı nesnesine (EX_TIMER bir yapı) yönelik geçerli bir işaretçi olması garanti edilir.
Bekleyen bir zamanlayıcı yoksa, ExDeleteTimer zamanlayıcı nesnesini siler ve beklemeden geri döner.
ExDeleteTimer çağrıldığında bir süreölçer bekliyorsa, İptal Et ve sürücünüzün bu yordama sağladığı parametre değerleri bekle yordamın davranışını denetler. Cancel parametresi, ExDeleteTimer'ın bekleyen bir zamanlayıcıyı iptal etmeye çalışıp çalışmayacağını belirtir. Wait parametresi, ExDeleteTimer süreölçer nesnesi silinene kadar döndürülmesinin beklenip beklenmeyeceğini bildirir.
İptal FALSE (bu durumda , BeklemeFALSEolmalıdır) ve bir zamanlayıcı beklemedeyse ExDeleteTimer zamanlayıcı nesnesi silinmeden önce zamanlayıcının süresinin dolmasına izin verir. Bu durumda, ExDeleteTimer, bekleyen süreölçer sona erdikten sonra (ve ExTimerCallback'e yapılan son geri çağrıda bulunulan yordamı tamamlandığında) silineceğini belirtmek için zamanlayıcı nesnesini işaretler. Ardından ExDeleteTimer, süreölçerin süresinin bitmesini veya nesnenin silinmesini beklemeden geri döner.
İptalDOĞRUise, ExDeleteTimer süre dolmadan önce bekleyen bir süreölçeri iptal etmeye çalışır. ExDeleteTimer, zamanlayıcıyı başarıyla iptal ederse TRUE döndürür. ExDeleteTimer , süreölçer iptal edilemediğinde FALSE döndürür. Bu, süresi dolmuş veya süresi dolmakta olan tek seferlik bir süreölçer için geçerli olan durumdur. ExDeleteTimer, (tek seferlik veya düzenli) zamanlayıcı ExDeleteTimer çağrısından önce iptal edildiyse veya zamanlayıcı hiç ayarlanmamışsa da YANLIŞ döndürür.
İptal, TRUE ise ve Bekleme, FALSEise, ExDeleteTimer çağıran iş parçacığını hiçbir zaman engellemez. Zamanlayıcı nesnesi hemen silinemiyorsa, exDeleteTimer süreölçer nesnesini, bekleyen süreölçer sona erdikten sonra silineceğini belirtmek üzere işaretler ve süreölçerin süresinin dolacağı veya nesnenin silinmesini beklemeden hemen döner.
Eğer hem Cancel hem de WaitDOĞRUise, ExDeleteTimer zamanlayıcı nesne hemen silinemiyorsa çağrıcı iş parçacığını engeller. ExDeleteTimer , gerekirse süreölçerin süresinin dolmasını ve sürücü tarafından uygulanan bir sürücüye yapılan geri çağırma ExTimerCallback yordamının bitmesini bekler. Ardından, ExDeleteTimer zamanlayıcı nesnesini siler ve sürücü bu yordamı uygularsa ExTimerDeleteCallbackyordamınıçağırır. Son olarak, ExDeleteTimer döndürür.
Bir sürücü, IRQL = DISPATCH_LEVEL'de çalışan sürücünün ExTimerCallback yordamından ExDeleteTimer çağırabilir, ancak sürücünün bu çağrıdaki Wait parametresini FALSE olarak ayarlaması gerekir.
Bir seçenek olarak, sürücü bir zamanlayıcı nesnesi silindikten sonra çalışan bir ExTimerDeleteCallback geri çağırma yordamı uygulayabilir. Genellikle, bir ExTimerDeleteCallback yordamı, sürücünün zamanlayıcı nesnesiyle birlikte kullanmak için ayırmış olduğu tüm sistem kaynaklarını serbest bırakır.
ExDeleteTimer, zamanlayıcı nesnesi silindikten sonra çalışacak sürücünün uyguladığı ExTimerDeleteCallback rutinini planlar ve bu sırada bu nesnenin işaretçisi artık geçerli değildir. Wait parametresi TRUE ise, ExDeleteTimer çağrısında, geri çağırma ExTimerDeleteCallback yordamında ExDeleteTimer döndürüldükten önce tamamlanır. WaitFALSEise, ExTimerDeleteCallback yordamı, ExDeleteTimer döndürülmeden önce veya sonra çalıştırılabilir.
Daha fazla bilgi için bkz. ExXxxZamanlayıcı Yordamları ve EX_TIMER Nesneleri.