NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS Rückruffunktion (ndis.h)

Die erweiterbare Hyper-V-Switch-Erweiterung ruft die UpdateNetBufferListDestinations-Funktion auf, um Änderungen zu committen, die die Erweiterung an einem Paket vorgenommen hat, das mehrere erweiterbare Switchzielports enthält. Die Funktion speichert diese Änderungen im erweiterbaren OOB(Out-of-Band)-Switchweiterleitungskontext der NET_BUFFER_LIST Struktur des Pakets.

Syntax

NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS NdisSwitchUpdateNetBufferListDestinations;

NDIS_STATUS NdisSwitchUpdateNetBufferListDestinations(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList,
  [in]      UINT32 NumberOfNewDestinations,
  [in]      PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Destinations
)
{...}

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 Parameter NdisSwitchContext zurückgegeben.

[in, out] NetBufferList

Ein Zeiger auf eine NET_BUFFER_LIST-Struktur für ein einzelnes Paket.

Hinweis Diese Struktur muss einen erweiterbaren Switchweiterleitungskontext enthalten. Wenn die Erweiterung das Paket erstellt oder geklont hat, muss sie diese Struktur zuvor durch Aufrufen der Funktion AllocateNetBufferListForwardingContext zugeordnet haben.
 

[in] NumberOfNewDestinations

Ein UINT32-Wert, der die Anzahl der neuen Zielports angibt, die dem Paket hinzugefügt wurden.

[in] Destinations

Ein Zeiger auf eine NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur . Diese Struktur gibt die erweiterbaren Switchzielports des Pakets an.

Hinweis Die Erweiterung hat diese Struktur über einen vorherigen Aufruf der GetNetBufferListDestinations-Funktion empfangen.
 

Rückgabewert

Wenn der Aufruf erfolgreich ist, gibt die Funktion NDIS_STATUS_SUCCESS zurück. Andernfalls wird ein NDIS_STATUS_Xxx-Fehlercode zurückgegeben, der in Ndis.h definiert ist.

Hinweise

Die erweiterbare Switcherweiterung ruft die GetNetBufferListDestinations-Funktion auf, um ein Array der erweiterbaren Switchzielports für ein Paket abzurufen. Wenn die Funktion erfolgreich zurückgegeben wird, wird das Array über den Destinations-Parameter abgerufen, der einen Zeiger auf eine NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur enthält. Jedes Element in diesem Array ist als NDIS_SWITCH_PORT_DESTINATION-Struktur formatiert, die einen Zielport für das Paket angibt.

Nachdem die Erweiterung die NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur abgerufen hat, kann die Erweiterung die folgenden Aktionen ausführen:

Wenn die Erweiterung Zielports in der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur hinzufügt oder ändert, muss die Erweiterung die UpdateNetBufferListDestinations-Funktion aufrufen, um diese Änderungen an die NET_BUFFER_LIST Struktur des Pakets zu committen.
Hinweis Nur Weiterleitungserweiterungen können UpdateNetBufferListDestinations aufrufen, um Zielports zu committen, die für Pakete mit mehreren Zielports hinzugefügt oder geändert wurden. Weitere Informationen zu diesem Erweiterungstyp finden Sie unter Weiterleitungserweiterungen.
 
Wenn der Aufruf von UpdateNetBufferListDestinations NDIS_STATUS_SUCCESS zurückgibt, garantiert die erweiterbare Switchschnittstelle, dass der erweiterbare Switchport und die Netzwerkadapterverbindung, auf die in den Zielports verwiesen wird, erst gelöscht werden, wenn der Sende- oder Empfangsvorgang des Pakets abgeschlossen ist.

Außerdem können nach dem Commit der Änderungen für Zielports Zielports nicht entfernt werden, und nur das IsExcluded-Mitglied der NDIS_SWITCH_PORT_DESTINATION Struktur eines Zielports kann geändert werden. Weitere Informationen finden Sie unter Ausschließen der Paketübermittlung an extensible Switch-Zielports.

Hinweis Aus Leistungsgründen sollte die Erweiterung die UpdateNetBufferListDestinations-Funktion nicht aufrufen, um die Änderungen an einem Paket mit nur einem Zielport zu committen. Stattdessen ruft die Erweiterung AddNetBufferListDestination auf, um die Änderungen am Zielport des Pakets zu committen.
 
Weitere Informationen zum Kontext der erweiterbaren Switchweiterleitung finden Sie unter Hyper-V Extensible Switch Forwarding Context.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.30 und höher.
Zielplattform Desktop
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

AllocateNetBufferListForwardingContext

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandler

NdisFOidRequest

OID_SWITCH_NIC_DELETE