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.
KeInitializeDpc'ye geçirilen DeferredContext işaretçisi, diğer sürücü yordamlarının ve CustomTimerDpc yordamının durumunu koruyabildiği bir bağlam alanına işaret eder. Çekirdek, DPC yordamına yapılan her çağrıda DeferredContext işaretçisini geçirir.
IoTimer yordamının aksine, CustomTimerDpc'nin sürücü tarafından oluşturulan bir cihaz nesnesiyle belirli bir ilişkisi yoktur. Ancak bir sürücü, bağlam alanına cihaz nesnesine bir işaretçi ekleyerek customTimerDpc yordamını sürücü tarafından oluşturulan bir cihaz nesnesiyle ilişkilendirebilir.
Bağlam alanı yerleşik, sürücü tarafından ayrılan bellekte olmalıdır. Genellikle bu bağlam alanı bir cihaz uzantısındadır, ancak sayfa dışı havuzda da bulunabilir. Sürücü bir denetleyici nesnesi kullanıyorsa, denetleyici uzantısında olabilir. Bağlam alanının içeriği sürücü tarafından belirlenir.
CustomTimerDpc yordamı, sürücünün ISR'siyle bağlam bilgilerini paylaşıyorsa, CustomTimerDpc yordamının paylaşılan bağlama erişen bir SynchCritSection yordamını çağırmak için KeSynchronizeExecution kullanması gerekir. Daha fazla bilgi için bkz . Kritik Bölümleri Kullanma.
CustomTimerDpc diğer ISR olmayan sürücü yordamlarıyla bağlam bilgilerini paylaşıyorsa, DeferredContext alanındaki alanın bir yönetici spin kilidi tarafından korunması gerekir. Daha fazla bilgi için Spin Locks'a bkz.