Freigeben über


NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO Rückruffunktion (ndis.h)

Die erweiterbare Hyper-V-Switch-Erweiterung ruft die CopyNetBufferListInfo-Funktion auf, um den OOB-Weiterleitungskontext (Out-of-Band) aus der NET_BUFFER_LIST Struktur eines Quellpakets in die NET_BUFFER_LIST Struktur eines Zielpakets zu kopieren. Dieser Kontext enthält die erweiterbaren Switch-Quellport- und Netzwerkadapterinformationen. Die erweiterbaren Switchzielportinformationen können auch kopiert werden.

Syntax

NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;

NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST DestNetBufferList,
  [in]      PNET_BUFFER_LIST SrcNetBufferList,
  [in]      UINT32 Flags
)
{...}

Parameter

[in] NdisSwitchContext

Ein NDIS_SWITCH_CONTEXT Wert, der das Handle des erweiterbaren Switchmoduls enthält, an das die Erweiterung angefügt ist. Wenn die Erweiterung NdisFGetOptionalSwitchHandlers aufruft, wird dieses Handle über den Parameter NdisSwitchContext zurückgegeben.

[in, out] DestNetBufferList

Ein Zeiger auf eine NET_BUFFER_LIST Struktur für das Zielpaket, in das der erweiterbare Switchweiterleitungskontext kopiert wird.

[in] SrcNetBufferList

Ein Zeiger auf eine NET_BUFFER_LIST Struktur für das Quellpaket, aus dem der erweiterbare Switchweiterleitungskontext kopiert wird.

[in] Flags

Ein UINT32-Wert. Wenn das flag NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS angegeben wird, kopiert die Funktion die erweiterbaren Switchzielports aus dem Quellpaket in das Zielpaket.

Die Daten, die in der NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO Union des Quellpakets enthalten sind, werden immer in den erweiterbaren Switchweiterleitungskontext im Zielpaket kopiert. Diese Daten umfassen die Quellportbezeichner und den Index der Netzwerkadapterverbindung, von der das Paket stammt. Abhängig von der Anzahl der erweiterbaren Switchzielports, die in das Zielpaket kopiert werden, wird der NumAvailableDestinations-Member der NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO Union im Zielpaket aktualisiert.

Weitere Informationen zum Weiterleitungskontext finden Sie unter Hyper-V Extensible Switch Forwarding Context.

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 CopyNetBufferListInfo-Funktion auf, um die OOB-Daten aus einem Quellpaket in ein Zielpaket zu kopieren. Zu diesen Daten gehören u. a. folgende Informationen:

  • Die Daten aus dem NetBufferListInfo-Array der NET_BUFFER_LIST Struktur des Quellpakets.
  • Der NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO Daten aus dem erweiterbaren Switchweiterleitungskontext des Quellpakets.
  • Die Daten für die erweiterbaren Switchzielports aus dem erweiterbaren Switchweiterleitungskontext des Quellpakets.
    Hinweis Diese Daten werden nur kopiert, wenn das NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS-Flag angegeben ist.
     
Bevor die Erweiterung CopyNetBufferListInfo aufruft, muss sie die NET_BUFFER_LIST Struktur des Zielpakets vorbereiten, indem Sie die folgenden Schritte ausführen:
  1. Die Erweiterung muss zunächst eine NET_BUFFER_LIST-Struktur für das Zielpaket initialisieren, das von der NET_BUFFER_LIST Struktur des Quellpakets abgeleitet ist.

    Die Erweiterung kann beispielsweise NdisAllocateCloneNetBufferList aufrufen, um eine vollständige Kopie des Quellpakets zu erstellen. Die Erweiterung kann auch NdisAllocateFragmentNetBufferList aufrufen, um eine Kopie nur eines Fragments des Quellpakets zu erstellen. Weitere Informationen finden Sie unter Abgeleitete NET_BUFFER_LIST Strukturen.

  2. Die Erweiterung muss die Funktion AllocateNetBufferListForwardingContext aufrufen, um den erweiterbaren Switchweiterleitungskontext für das Zielpaket zuzuweisen. Diese Daten werden verwendet, um die erweiterbaren OOB-Switchweiterleitungsinformationen zu speichern, z. B. die Quell- und Zielports eines Pakets.
Hinweis Wenn die Erweiterung das Quellpaket erstellt oder klont, muss die Erweiterung zuvor die AllocateNetBufferListForwardingContext-Funktion für das Paket aufgerufen haben. Quellpakete, die die Erweiterung durch den erweiterbaren Switchtreiberstapel filtert, enthalten bereits einen zugeordneten erweiterbaren Switchweiterleitungskontext.
 

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

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisFGetOptionalSwitchHandler