Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Filtertreiberdatenumgehungsmodus kann eine verbesserte Systemleistung bieten. NDIS ruft keine FilterXxx-Funktionen auf, die umgangen werden. Wenn beispielsweise die Sende- und Empfangsdienste für eine bestimmte Filteranwendung nicht erforderlich sind, kann der Filtertreiber die Sende- und Empfangsfunktionen umgehen.
Ein Filtertreiber gibt die Standardeinstiegspunkte für Funktionen an, die umgangen werden können, während der Treiberinitialisierung, wenn sie die NdisFRegisterFilterDriver-Funktion aufruft. Die Einstiegspunkte sind NULL für Funktionen, die standardmäßig umgangen werden. Weitere Informationen zur Initialisierung finden Sie unter Initialisieren eines Filtertreibers.
Um den Umgehungszustand zur Laufzeit zu ändern, muss der Treiber während der Treiberinitialisierung einen Einstiegspunkt für die FilterSetModuleOptions-Funktion angeben. Der Treiber kann eine NDIS_FILTER_PARTIAL_CHARACTERISTICS Struktur initialisieren und die neuen Merkmale aus dem Kontext von FilterSetModuleOptions an die NdisSetOptionalHandlers-Funktion übergeben.
NDIS ruft die FilterSetModuleOptions-Funktion (falls vorhanden) beim Start eines Neustartvorgangs auf. Ein Filtertreiber kann den Umgehungsmodus für jedes Filtermodul unabhängig festlegen. Weitere Informationen finden Sie unter Starten eines Filtermoduls.
Filtertreiber können die folgenden optionalen FilterXxx-Funktionen umgehen, die in der NDIS_FILTER_DRIVER_CHARACTERISTICS Struktur angegeben sind:
FilterSendNetBufferListsComplete
FilterCancelSendNetBufferLists
Um eine FilterXxx-Funktion für den Umgehungsmodus festzulegen, gibt ein Filtertreiber NULL für den Einstiegspunkt dieser Funktion an. Wenn ein Treiber jedoch eine NDIS-Funktion aufruft, die über eine zugeordnete FilterXxx-Funktion verfügt, muss er einen Einstiegspunkt für diese FilterXxx-Funktion bereitstellen. Wenn beispielsweise ein Treiber die Funktion NdisFIndicateReceiveNetBufferLists aufruft, muss er eine FilterReturnNetBufferLists-Funktion bereitstellen.
Wenn ein Filtertreiber eine FilterSendNetBufferLists-Funktion angibt und Sendeanforderungen in die Warteschlange stellt, muss er auch eine FilterCancelSendNetBufferLists-Funktion angeben.
Wenn ein Filtertreiber eine FilterReceiveNetBufferLists - oder FilterReturnNetBufferLists-Funktion angibt, muss der Treiber auch eine FilterStatus-Funktion angeben.
Um die Einstellungen für den Umgehungsmodus zur Laufzeit zu ändern, kann ein Filtertreiber die NdisFRestartFilter-Funktion aufrufen. NdisFRestartFilter plant einen Pausenvorgang, gefolgt von einem Neustartvorgang für das angegebene Filtermodul. Wenn NDIS FilterSetModuleOptions aufruft, kann der Filtertreiber die Funktionen für dieses Filtermodul ändern, indem NdisSetOptionalHandlers aufgerufen und eine neue Gruppe von Einstiegspunkten angegeben wird.
Anmerkung Ein Anhalten und Neustart könnte dazu führen, dass einige Netzwerkpakete auf dem Übertragungspfad, dem Empfangspfad oder beiden verloren gehen. Netzwerkprotokolle, die einen zuverlässigen Transportmechanismus bereitstellen, versuchen möglicherweise den Netzwerk-E/A-Vorgang im Falle eines verlorenen Pakets erneut, aber andere Protokolle, die keine Zuverlässigkeit garantieren, wiederholen den Vorgang nicht.
Ein Filtertreiber kann zusätzliche optionale Funktionen registrieren, die optionale Treiberdienste unterstützen. Der Treiber registriert diese optionalen Dienste in der FilterSetOptions-Funktion . Weitere Informationen zu diesen optionalen Diensten finden Sie unter Configuring Optional Filter Driver Services.