Standart Sürücü Rutin Gereksinimleri

Çekirdek modu sürücüsü tasarlarken aşağıdaki noktaları göz önünde bulundurun:

  • Her sürücünün sürücü genelindeki veri yapılarını ve kaynaklarını başlatan bir DriverEntry yordamı olmalıdır. G/Ç yöneticisi, sürücüyü yüklerken DriverEntry yordamını çağırır.

  • Her sürücü, G/Ç istek paketlerini (IRP) alan ve işleyen en az bir dağıtım yordamına sahip olmalıdır. Her sürücü, sürücünün alabileceği her IRP ana işlev kodu için bir dağıtım yordamının giriş noktasını DRIVER_OBJECT yapısına yerleştirmelidir. Bir sürücü, her IRP ana işlev kodu için ayrı bir dağıtım yordamına sahip olabilir veya birkaç işlev kodunu işleyen bir veya daha fazla dağıtım yordamına sahip olabilir.

  • Her WDM sürücüsü bir Unload yordamına sahip olmalıdır. Sürücünün , Unload yordamının giriş noktasını sürücünün sürücü nesnesine yerleştirmesi gerekir. Bir PnP sürücüsünün Unload yordamının sorumlulukları çok azdır, ancak PnP olmayan bir sürücünün kaldırma yordamı, sürücünün kullandığı tüm sistem kaynaklarını serbest bırakmaktan sorumludur.

  • Her WDM sürücüsünün bir AddDevice yordamı olması ve sürücü nesnesinin sürücü uzantısında giriş noktasını tanımlaması gerekir. AddDevice yordamı, sürücü denetimindeki her PnP cihazı için cihaz nesneleri oluşturmaktan ve başlatmaktan sorumludur.

  • Bir sürücü, sürücünün sistem tarafından sağlanan bir IRP kuyruğuna sıraya aldığı IRP'ler için G/Ç işlemlerini başlatmak üzere G/Ç yöneticisinin çağırdığı bir StartIo yordamına sahip olabilir. StartIo yordamı olmayan herhangi bir sürücü, aldığı IRP'ler için iç kuyrukları ayarlamalı ve yönetmelidir veya dağıtım yordamları içindeki tüm IRP'leri tamamlamalıdır. Üst düzey sürücülerin StartIo yordamı olmayabilir, eğer IRP'leri doğrudan dağıtım yordamlarından alt düzey sürücülere geçiriyorlarsa.

  • Bazı miniport sürücüleri, önceki gereksinimlerin istisnalarıdır. Miniport sürücüleri gereksinimleri hakkında bilgi için Windows Sürücü Seti'ndeki (WDK) cihaza özgü belgelere bakın.

  • Bir sürücünün başka tür standart yordamları olup olmadığı, işlevselliğine ve bu sürücünün sisteme nasıl uyum sağladığına bağlıdır (örneğin, sistem tarafından sağlanan sürücülerle birlikte çalışıp çalışmadığı). Ayrıntılar için WDK'deki cihaz türüne özgü belgelere bakın.