Freigeben über


NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO Rückruffunktion (ndis.h)

Die Hyper-V erweiterbare Switcherweiterung ruft die CopyNetBufferListInfo-Funktion auf, um den OOB-Weiterleitungskontext aus der NET_BUFFER_LIST Struktur eines Quellpakets in die NET_BUFFER_LIST Struktur eines Zielpakets zu kopieren. Dieser Kontext umfasst die Informationen zum erweiterbaren Switchquellenport und Netzwerkadapter. Die Erweiterbaren Switch-Zielportinformationen können ebenfalls 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 NdisFGetOptionalSwitchHandlersaufruft, wird dieses Handle über den NdisSwitchContext Parameter 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 NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS Flag angegeben wird, kopiert die Funktion die erweiterbaren Switch-Zielports vom 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 Quellport-IDs und den Index der Netzwerkadapterverbindung, von der das Paket stammt. Abhängig von der Anzahl der erweiterbaren Switch-Zielports, die in das Zielpaket kopiert werden, wird das NumAvailableDestinations-Mitglied 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.

Bemerkungen

Die erweiterbare Switcherweiterung ruft die CopyNetBufferListInfo Funktion auf, um die OOB-Daten aus einem Quellpaket in ein Zielpaket zu kopieren. Diese Daten umfassen Folgendes:

  • Die Daten aus der NetBufferListInfo Array der NET_BUFFER_LIST Struktur des Quellpakets.
  • Die NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO Daten aus dem erweiterbaren Switchweiterleitungskontext des Quellpakets.
  • Die Daten für die erweiterbaren Switch-Zielports 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 CopyNetBufferListInfoaufruft, 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.

    Beispielsweise kann die Erweiterung 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 AllocateNetBufferListForwardingContext--Funktion aufrufen, um den erweiterbaren Switchweiterleitungskontext für das Zielpaket zuzuweisen. Diese Daten werden verwendet, um die OOB-erweiterbaren 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 über den erweiterbaren Switchtreiberstapel filtert, enthalten bereits einen zugeordneten erweiterbaren Switchweiterleitungskontext.
 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 6.30 und höher.
Zielplattform- Desktop
Header- ndis.h (include Ndis.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

AllocateNetBufferListForwardingContext-

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisFGetOptionalSwitchHandlers