NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS Rückruffunktion (ndis.h)
Die ReportFilteredNetBufferLists-Funktion meldet mindestens ein Netzwerkpaket, das von der erweiterbaren Switcherweiterung gelöscht oder von der Portübermittlung ausgeschlossen wurde. Jedes Netzwerkpaket wird durch eine NET_BUFFER_LIST-Struktur definiert.
Syntax
NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS NdisSwitchReportFilteredNetBufferLists;
void NdisSwitchReportFilteredNetBufferLists(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in] PUNICODE_STRING ExtensionGuid,
[in] PUNICODE_STRING ExtensionFriendlyName,
[in] NDIS_SWITCH_PORT_ID PortId,
[in] UINT32 Flags,
[in] UINT32 NumberOfNetBufferLists,
[in] PNET_BUFFER_LIST NetBufferLists,
[in, optional] PUNICODE_STRING FilterReason
)
{...}
Parameter
[in] NdisSwitchContext
Ein NDIS_SWITCH_CONTEXT Wert, der das Handle des erweiterbaren Switchmoduls enthält, an das die erweiterbare Hyper-V-Switcherweiterung angefügt ist. Wenn die Erweiterung NdisFGetOptionalSwitchHandlers aufruft, wird dieses Handle über den NdisSwitchContext-Parameter zurückgegeben.
[in] ExtensionGuid
Ein Zeiger auf eine UNICODE_STRING-Struktur , die die GUID der Erweiterung enthält. NDIS gibt diese GUID im FilterModuleGuidName-Element der NDIS_FILTER_ATTACH_PARAMETERS-Struktur an. NDIS übergibt einen Zeiger auf diese Struktur im AttachParameters-Parameter , wenn die FilterAttach-Funktion der Erweiterung aufgerufen wird.
[in] ExtensionFriendlyName
Ein Zeiger auf eine UNICODE_STRING-Struktur , die den benutzerfreundlichen Namen der Erweiterung enthält. Dieser Name wird durch den DisplayName-Eintrag in der AddService-Direktive der INF-Datei der Erweiterung definiert.
[in] PortId
Ein NDIS_SWITCH_PORT_ID Wert, der einen erweiterbaren Switchport angibt. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
[in] Flags
Ein UINT32-Wert. Wenn das flag NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING angegeben wird, gibt dies an, dass der PortId-Member die Quelle des gelöschten Pakets definiert. Wenn er nicht angegeben ist, definiert der PortId-Member den erweiterbaren Switchport des Ziels. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
[in] NumberOfNetBufferLists
Ein UINT32-Wert, der die Anzahl von NET_BUFFER_LIST Strukturen enthält, die durch den NetBufferLists-Parameter angegeben wird.
[in] NetBufferLists
Ein Zeiger auf eine verknüpfte Liste von NET_BUFFER_LIST Strukturen.
[in, optional] FilterReason
Ein Zeiger auf eine UNICODE_STRING-Struktur , die eine benutzerfreundliche Beschreibung des Grunds für das Löschen oder Ausschließen der Pakete enthält. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
Rückgabewert
Keine
Bemerkungen
Wenn die Erweiterung die Übermittlung eines Pakets an einen erweiterbaren Switchport ausschließt, muss reportFilteredNetBufferLists aufgerufen werden. Wenn diese Funktion aufgerufen wird, erhöht das erweiterbare Switchmodul Indikatoren und protokolliert Ereignisse für die gelöschten oder ausgeschlossenen Pakete. Wenn ein Ereignis für einen gelöschten oder ausgeschlossenen Paketsatz protokolliert wird, verwendet das erweiterbare Switchmodul die benutzerfreundliche Beschreibung, die durch den FilterReason-Parameter angegeben wird.
Die Erweiterung kann die Übermittlung eines Pakets auf folgende Weise ausschließen:
- Die Erweiterung schließt das Paket ab, anstatt es über den erweiterbaren Switchtreiberstapel weiterzuleiten. Beispielsweise kann die Erweiterung NdisFSendNetBufferListsComplete aufrufen, um ein Paket zu löschen, das überprüft wurde, wenn NDIS die FilterSendNetBufferLists-Funktion aufruft .
-
Die Erweiterung ändert die Zielports für ein Paket. Beispielsweise muss die Erweiterung ReportFilteredNetBufferLists aufrufen, wenn sie den IsExcluded-Member in der NDIS_SWITCH_PORT_DESTINATION-Struktur für einen Zielport des Pakets auf TRUE festlegt.
Weitere Informationen zum Ausschließen der Paketübermittlung an erweiterbare Switchports finden Sie unter Ausschließen der Paketübermittlung an extensible Switch-Zielports.
- Der NetBufferLists-Parameter hat eine linked-list von NET_BUFFER_LIST-Strukturen angegeben. Alle pakete, die von diesen Strukturen angegeben werden, müssen vom gleichen Port empfangen oder an denselben Port gesendet und aus demselben Grund gelöscht oder ausgeschlossen worden sein.
- Wenn das Paket aufgrund einer Richtlinie gelöscht wird, die auf dem Quellport basiert, muss das flag NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING angegeben werden. Die Erweiterung muss auch den PortId-Parameter auf den Bezeichner des Ports festlegen, von dem das Paket empfangen wurde.
- Wenn das Paket aufgrund einer Richtlinie gelöscht wird, die auf dem Zielport basiert, darf das flag NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING nicht angegeben werden. Die Erweiterung muss auch den PortId-Parameter auf den Bezeichner des Ports festlegen, an den das Paket gesendet werden sollte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.30 und höher. |
Zielplattform | Desktop |
Kopfzeile | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für