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.
Filtre sürücüsü başlatma işlemi, sistem sürücüyü yükledikten hemen sonra gerçekleşir. Filtre sürücüleri sistem hizmetleri olarak yüklenir. Sistem, filtre sürücülerini miniport sürücüleri yüklenmeden önce, sırasında veya sonrasında herhangi bir zamanda yükleyebilir. NDIS, filtre sürücüsü tarafından desteklenen türde bir miniport bağdaştırıcısı kullanılabilir duruma geldikten ve filtre sürücüsünü başlatma tamamlandıktan sonra bir miniport bağdaştırıcısına filtre modülü ekleyebilir.
Bir sürücü yığını başlatılırken, sistem henüz yüklenmemişse filtre sürücülerini yükler. Filtre modülleri içeren bir sürücü yığını başlatma hakkında daha fazla bilgi için bkz. Sürücü Yığını Başlatma.
Bir filtre sürücüsü yüklendikten sonra sistem sürücünün DriverEntry yordamını çağırır.
Sistem, DriverEntryiki bağımsız değişkeni geçirir:
Sürücü nesnesine işaret eden ve G/Ç sistemi tarafından oluşturulan bir işaretçi.
Sürücüye özgü parametrelerin depolandığı yeri belirten kayıt defteri yolunun işaretçisi.
DriverEntry, sürücü NDIS filtre sürücüsü olarak başarıyla kaydedildiyse STATUS_SUCCESS veya eşdeğer NDIS_STATUS_SUCCESS döndürür. DriverEntry, bir hata durumu NdisXxx işlevi veya bir çekirdek mod desteği rutini tarafından döndürülüp yayıldığında başlatma işlemi başarısız olursa, sürücü yüklü kalmayacaktır. DriverEntry senkron olarak yürütülmelidir; yani, STATUS_PENDING veya eşdeğer NDIS_STATUS_PENDING döndüremez.
Filtre sürücüsü, NDIS'yi filtre sürücüsü olarak kaydederken sürücü nesnesini NdisFRegisterFilterDriver işlevine geçirir. Sürücü, yapılandırma bilgilerini almak için kayıt defteri yolunu kullanabilir. Filtre sürücüsü yapılandırma bilgilerine erişme hakkında daha fazla bilgi için bkz. Filtre Sürücüsüiçin Yapılandırma Bilgilerine Erişme.
Bir filtre sürücüsü, kendi DriverEntry yordamından NdisFRegisterFilterDriver'i çağırır. Filtre sürücüleri, FilterXxx işlevlerini, NDIS_FILTER_DRIVER_CHARACTERISTICS yapısını NdisFRegisterFilterDriver 'e FilterCharacteristics parametresinde geçirerek dışarı aktarır.
NDIS_FILTER_DRIVER_CHARACTERISTICS yapısı, FilterXxx işlevleri için zorunlu ve isteğe bağlı giriş noktalarını belirtir. Bazı isteğe bağlı işlevler atlanabilir. İşlevleri atlama hakkında daha fazla bilgi için bkz. Veri Atlama Modu.
Sürücülerin, NdisFRegisterFilterDriver çağırmasının ardından, FilterXxx işlevlerinden herhangi birine anında çağrı için hazırlıklı olması gerekir.
NDIS_FILTER_DRIVER_CHARACTERISTICS yapısı, bu zorunlu FilterXxx işlevleri için giriş noktalarını belirtir:
NDIS_FILTER_DRIVER_CHARACTERISTICS yapısı, çalışma anında değiştirilemeyen ve isteğe bağlı olan bu FilterXxx işlevlerine yönelik giriş noktalarını belirtir:
FilterCancelSendNetBufferLists
NDIS_FILTER_DRIVER_CHARACTERISTICS yapısı, çalıştırma sırasında isteğe bağlı ve değiştirilebilir olan FilterXxx işlevlerinin varsayılan giriş noktalarını belirtir.
FilterSendNetBufferListsComplete
Yukarıdaki dört işlev de NDIS_FILTER_PARTIAL_CHARACTERISTICS yapısında tanımlanır. Bu yapı, FilterSetModuleOptions işlevinden NdisSetOptionalHandlers işlevi çağrılarak çalışma zamanında değiştirilebilen işlevleri belirtir. Bir filtre sürücüsü çalışma zamanında bu kısmi özellikleri değiştirecekse, FilterSetModuleOptionsiçin giriş noktasını sağlaması gerekir. Kısmi özellikler her filtre modülü için farklı olabilir. Daha fazla bilgi için bkz. Filtre Modülü Başlatma.
NDIS, FilterSetOptions işlevini, NdisFRegisterFilterDriver çağrısı bağlamında çağırır. filterSetOptions isteğe bağlı hizmetleri NDIS ile kaydeder. Daha fazla bilgi için bkz. İsteğe Bağlı Filtre Sürücüsü Hizmetlerini Yapılandırma.
NdisFRegisterFilterDriver çağrısı başarılı olursa, NDIS NdisFilterDriverHandle değişkenini, filtre sürücüsü tanıtıcı (handle) ile doldurur. Filtre sürücüsü bu tutucuyu kaydeder ve daha sonra bu tutamacı, giriş parametresi olarak filtre sürücüsü tutucusu gerektiren NdisFDeregisterFilterDrivergibi NDIS işlevlerine aktarır. Sürücü boşaltıldığında, NdisFRegisterFilterDrivertarafından ayrılan sürücü kaynaklarını serbest bırakmak amacıyla NdisFDeregisterFilterDriver işlevinin çağrılması gerekir.
FilterSetOptions döndüğünde, filtre modülleri Ayrılmış durumunda olur. NDIS, FilterSetOptions çağrısından sonra filtre sürücüsünün FilterAttach işlevini çağırabilir. Sürücü, FilterAttach işlevinde filtre modülüne özgü başlatma gerçekleştirir. Sürücü yığınına filtre modülü ekleme hakkında daha fazla bilgi için bkz. Filtre Modülü Ekleme.
Bir filtre sürücüsü, DriverEntryiçinde gerekli olan diğer sürücüye özgü başlatma işlemlerini de gerçekleştirir. Filtre sürücüsünün FilterDriverUnload yordamında ayırmış olduğu sürücüye özgü kaynakları serbest bırakması gerekir. Daha fazla bilgi için bkz. Filtre Sürücüsünü Kaldırma.