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üleri, diğer sürücülerden alınan ağ verilerini kopyalamak veya gönderme veya alma işlemlerini başlatmak için arabellekler oluşturur.
Bir filtre sürücüsü arabellek oluşturmazsa, sürücü arabellek havuzlarını yönetmez. Böyle bir sürücü diğer sürücülerden aldığı arabellekleri basitçe geçirir.
Gönderim veya alma işlemlerini destekleyen bir filtre sürücüsü, NET_BUFFER_LIST yapı havuzlarını ve NET_BUFFER yapı havuzlarını yönetmelidir.
Bu havuzları oluşturmak için sürücüler aşağıdaki işlevleri çağırır:
Filtre sürücüleri havuzlardan yapıları ayırmak için aşağıdaki işlevleri kullanabilir:
NdisAllocateNetBufferAndNetBufferList
NdisAllocateNetBufferAndNetBufferList çağırmak, NdisAllocateNetBufferList ve ardından NdisAllocateNetBufferçağırmaktan daha verimlidir. Ancak NdisAllocateNetBufferAndNetBufferList NET_BUFFER_LIST yapısında yalnızca bir NET_BUFFER nesnesi oluşturur. NdisAllocateNetBufferAndNetBufferListkullanmak için, sürücü NdisAllocateNetBufferListPoolçağırdığında AllocateNetBuffer parametresini TRUE olarak ayarlamalıdır.
Gönderme isteklerini başlatan filtre sürücüleri, altta yatan sürücülerin bağlamını ve geri doldurma alanı gereksinimlerini belirlemelidir. Filtre sürücüleri, temel sürücülerin geri doldurma gereksinimlerini belirlemek için yeniden başlatma özniteliklerini kullanır. Filtre sürücüsü, Yeniden Başlatma durumundaki geri doldurma ve bağlam gereksinimlerini belirlemelidir. Sürücü, yığının tamamı için yeterli geri doldurma ve bağlam alanı ayırmalıdır. Gerekirse, bir filtre sürücüsü havuzları boşaltabilir ve Yeniden Başlatıyor durumunda yeniden yerleştirebilir.
Filtre sürücüleri havuzları boşaltmak için aşağıdaki işlevleri kullanır:
Filtre sürücüleri, havuzlardan tahsis edilmiş yapıları serbest bırakmak için aşağıdaki işlevleri kullanır.
Sürücüler, ilişkili NET_BUFFER_LIST yapısını boşaltmadan önce NdisAllocateNetBuffer ile ayrılan NET_BUFFER yapılarını serbest bırakmalıdır. NdisAllocateNetBufferAndNetBufferList ile ayrılan NET_BUFFER yapılar, sürücü ilişkili NET_BUFFER_LIST yapısı için NdisFreeNetBufferList çağırdığında serbest bırakılır.