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.
Uyarı
UMDF 2, UMDF'nin en son sürümüdür ve UMDF 1'in yerini alır. Tüm yeni UMDF sürücüleri UMDF 2 kullanılarak yazılmalıdır. UMDF 1'e yeni özellik eklenmiyor ve Windows 10'un daha yeni sürümlerinde UMDF 1 desteği sınırlı. Evrensel Windows sürücüleri UMDF 2 kullanmalıdır.
Arşivlenen UMDF 1 örnekleri, Windows 11, sürüm 22H2 - Mayıs 2022 Sürücü Örnekleri Güncelleştirme'de bulunabilir.
Daha fazla bilgi için bkz. UMDF ile Çalışmaya Başlama.
İş öğesi, sürücünün OnWorkItem olay geri çağırma işlevinde gerçekleştirdiği bir görevdir. Bu işlevler zaman uyumsuz olarak çalışır.
UmDF sürücüleri genellikle bir OnInterruptIsr'ın kesme hizmeti isteğinin (ISR) yürütülmesini geciktirmeden ek işlem gerçekleştirmesi gerekiyorsa iş öğelerini kullanır çünkü kesme satırı birden çok cihaz tarafından paylaşılabilir.
Genellikle bir sürücünün OnInterruptIsr geri çağırma işlevi bir iş öğesi nesnesi oluşturur ve bunu sistemin iş öğesi kuyruğuna ekler. Daha sonra, iş parçacığı havuzundaki bir iş parçacığı nesneyi kuyruğundan çıkarır ve iş öğesinin OnWorkItem geri çağırma işlevini çağırır.
İş Öğesi Ayarlama
bir iş öğesi ayarlamak için sürücünüzün şunları yapması gerekir:
İş öğesini oluşturun.
Sürücünüz, bir iş öğesi nesnesi oluşturmak ve iş öğesini işleyecek bir OnWorkItem geri çağırma işlevini tanımlamak için IWDFDevice3::CreateWorkItem'i çağırır.
İş öğesi hakkındaki bilgileri depolayın.
Sürücüler genellikle onWorkItem geri çağırma işlevinin gerçekleştirmesi gereken görevle ilgili bilgileri depolamak için iş öğesi nesnesinin bağlam belleğini kullanır. OnWorkItem geri çağırma işlevi çağrıldığında, bu bağlam belleğine erişerek bilgileri alabilir. Bağlam belleği ayırma ve bunlara erişme hakkında bilgi için bkz.IWDFObject::AssignContext.
İş öğesini sistemin iş öğesi kuyruğuna ekleyin.
Sürücünüz, sürücünün iş öğesini iş öğesi kuyruğuna ekleyen IWDFWorkItem::Enqueue'yi çağırır.
Sürücünüz IWDFDevice3::CreateWorkItem'i çağırdığında, isteğe bağlı olarak bir üst nesne (örneğin bir cihaz nesnesi veya kuyruk nesnesi) sunabilir. Sistem bu nesneyi sildiğinde, nesneyle ilişkili mevcut iş öğelerini de siler.
WorkItem Geri Çağırma İşlevini Kullanma
İş öğesi, iş öğesi kuyruğuna eklendikten sonra, bir sistem iş parçacığı kullanılabilir hale gelene kadar kuyrukta kalır. Sistem işçi parçacığı iş öğesini kuyruktan kaldırır ve ardından sürücünün OnWorkItem callback fonksiyonunu çağırarak iş öğesi nesnesini teslim eder.
Genellikle OnWorkItem geri çağırma işlevi aşağıdaki adımları gerçekleştirir:
- İş öğesi nesnesinin bağlam belleğine erişerek iş öğesi hakkında sürücü tarafından sağlanan bilgileri alır.
- Belirttiğiniz görevi gerçekleştirir. Gerekirse, geri çağırma işlevi iş öğesinin üst nesnesini belirlemek için IWDFWorkItem::GetParentObject öğesini çağırabilir.
- Sürücü iş öğesini yeniden sıraya koyacaksa, iş öğesinin tanıtıcısının artık yeniden kullanılabilir olduğunu işaret eder.
Birkaç sürücü, iş öğelerini iş öğesi kuyruğundan temizlemek için IWDFWorkItem::Flush çağırmaları gerekebilir. Sürücü Flush yöntemini çağırırsa, yöntem bir çalışan iş parçacığı belirtilen iş öğesini iş öğesi kuyruğundan kaldırıp sürücünün OnWorkItem geri çağırma işlevini çağırana ve OnWorkItem geri çağırma işlevi iş öğesi işlendikten sonra geri dönene kadar döndürülmez.