Freigeben über


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 muss diese Richtlinien befolgen, wenn reportFilteredNetBufferLists aufgerufen wird:
  • 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

FilterAttach

INF AddService-Direktive

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UNICODE_STRING