Aracılığıyla paylaş


Filtre Modülü Başlatma

Duraklatılmış bir filtre modülünü başlatmak için NDIS, filtre sürücüsünün FilterSetModuleOptions işlevini (varsa) çağırır ve ardından FilterRestart işlevine çağrır. Filtre modülü, FilterRestart işlevinde yürütmenin başlangıcında Yeniden Başlat durumunu girer.

Sürücü FilterSetModuleOptionsiçin bir giriş noktası sağladıysa, sürücü filtre modülünün kısmi özelliğini değiştirebilir. Daha fazla bilgi için bkz. Veri Atlama Modu.

NDIS, bir filtre sürücüsünün FilterRestart işlevini çağırdığında, NDIS_FILTER_RESTART_PARAMETERS yapısının RestartAttributes üyesinde yer alan bir NDIS_RESTART_ATTRIBUTES yapısına işaretçi geçirir. Filtre sürücüleri, temel alınan sürücüler tarafından belirtilen yeniden başlatma özniteliklerini değiştirebilir. Yeniden başlatma özniteliklerini değiştirme hakkında daha fazla bilgi için bkz. FilterRestart.

NDIS, yığındaki herhangi bir filtre modülü için FilterRestart işlevini çağırmadan önce bir yığındaki tüm filtre modülleri için FilterSetModuleOptionsNDIS çağrıları.

NDIS, sürücü yığınını yeniden başlatmak için Tak Çalıştır işleminin bir parçası olarak bir filtre modülü başlatır. Sürücü yığınını yeniden başlatmaya genel bakış için bkz. Driver Stack'i yeniden başlatma.

Yeniden Başlatılıyor durumundaki bir filtre modülü adına filtre sürücüsü:

  • Normal gönderme ve alma işlemlerini yeniden başlatmak için gereken tüm işlemleri tamamlar.

    Gönderme ve alma işlemleri hakkında daha fazla bilgi için bkz. Filtre Modülü Gönderme ve Alma İşlemleri.

  • Filtre modülü için yapılandırılabilir parametreleri okuyabilir veya yazabilir.

  • Ağ verisi göstergelerini alabilir. Sürücü bu tür verileri kopyalayıp kuyruğa alabilir ve daha sonra üstteki sürücülere gösterebilir veya verileri atabilir.

  • Yeni bir alma göstergesi başlatmamalıdır.

  • FilterSendNetBufferLists işlevine yapılan tüm yeni gönderme isteklerini, NdisFSendNetBufferListsComplete işlevini çağırarak hemen reddetmeniz gerekir. Her NET_BUFFER_LIST tam durumunu NDIS_STATUS_PAUSED olarak ayarlamalıdır.

  • NdisFIndicateStatus işleviyle durum göstergeleri sağlayabilir.

    Durum göstergeleri hakkında daha fazla bilgi için bkz. Filtre Modülü Durum Göstergeleri.

  • FilterOidRequest işlevinde OID isteklerini işlemelidir.

    OID istekleri hakkında daha fazla bilgi için bkz. Modül OID İsteklerini Filtreleme.

  • Yeni gönderme isteği başlatmamalıdır.

  • NdisFReturnNetBufferLists işlevini çağırarak yeni alma göstergelerini NDIS'ye hemen döndürmelidir. Gerekirse, sürücü bu tür alma göstergelerini döndürmeden önce kopyalayabilir.

  • Güncelleştirilmiş yapılandırma bilgilerini ayarlamak veya sorgulamak için temel sürücülere OID isteklerinde bulunabilir.

  • FilterStatus işlevindeki durum göstergelerini işlemelidir.

  • NDIS_STATUS_SUCCESS veya hata durumunu göstermelidir. Bir filtre modülü yeniden başlatılmazsa NDIS modülü ayırır ve zorunlu bir filtreyse NDIS tüm sürücü yığınını sonlandırır.

Filtre sürücüsü gönderme ve alma işlemlerini başarıyla yeniden başlattıktan sonra yeniden başlatma işlemini tamamlaması gerekir. Filtre sürücüsü, FilterRestart'dan NDIS_STATUS_SUCCESS veya NDIS_STATUS_PENDING döndürerek yeniden başlatma işlemini senkron veya asenkron olarak tamamlayabilir.

Sürücü NDIS_STATUS_PENDING döndürürse, yeniden başlatma işlemini tamamladıktan sonra NdisFRestartComplete işlevini çağırması gerekir. Bu durumda, sürücü yeniden başlatma işleminin son durumunu NdisFRestartCompleteiletir.

Yeniden başlatma işlemi tamamlandıktan sonra filtre modülü Çalışıyor durumundadır. Sürücü normal gönderme ve alma işlemlerini sürdürür.

NDIS, süzgeç sürücüsü yeniden başlatma durumundayken, ekleme, ayırma veya duraklatma istekleri gibi diğer Tak çalıştır işlemlerini başlatmaz. NDIS, bir filtre sürücüsü Çalışıyor durumundayken duraklatma isteklerini başlatabilir. Filtre modülünü duraklatma hakkında daha fazla bilgi için bkz. Filtre Modülünü Duraklatma.