Freigeben über


NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT Rückruffunktion (ndis.h)

Die AllocateNetBufferListForwardingContext-Funktion bereitet eine NET_BUFFER_LIST-Struktur für Sende- oder Empfangsvorgänge im erweiterbaren Switch vor.

Syntax

NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT NdisSwitchAllocateNetBufferListForwardingContext;

NDIS_STATUS NdisSwitchAllocateNetBufferListForwardingContext(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList
)
{...}

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, out] NetBufferList

Ein Zeiger auf eine verknüpfte Liste von NET_BUFFER_LIST Strukturen.

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 kann Paketsendevorgänge innerhalb des erweiterbaren Switch-Datenpfads erstellen. Beispielsweise kann die Erweiterung Pakete an einen beliebigen Port des erweiterbaren Switches senden. Weitere Informationen zu diesem Datenpfad finden Sie unter Hyper-V Extensible Switch Data Path.

Nachdem die Erweiterung NdisAllocateNetBufferList oder NdisAllocateCloneNetBufferList aufgerufen hat , um ein Paket aus dem NET_BUFFER_LIST Pool zu erstellen oder zu klonen, muss die Erweiterung die AllocateNetBufferListForwardingContext-Funktion aufrufen. Diese Funktion ordnet den erweiterbaren Switchweiterleitungskontext (Out-of-Band, OOB) für die angegebene NET_BUFFER_LIST-Struktur zu und initialisiert diesen. Weitere Informationen zu diesem Kontext finden Sie unter Hyper-V Extensible Switch Forwarding Context.For more information about this context, see Hyper-V Extensible Switch Forwarding Context.

Die Erweiterung muss die folgenden Richtlinien befolgen, um den Weiterleitungskontext über die AllocateNetBufferListForwardingContext-Funktion zuzuweisen:

  • Die Erweiterung ruft NdisAllocateNetBufferList auf, um ein Paket aus dem NET_BUFFER_LIST-Pool der Erweiterung für einen Sende- oder Empfangsvorgang über den erweiterbaren Switch zuzuordnen. Bevor die Erweiterung Quell- und Zielports für das Paket initialisiert, muss sie AllocateNetBufferListForwardingContext aufrufen.

    Weitere Informationen zum Angeben von Quell- und Zielportports für erweiterbare Switchports finden Sie unter Verwalten von Quell- und Zielportdaten des erweiterbaren Hyper-V-Switches.

  • Bevor die Erweiterung AllocateNetBufferListForwardingContext aufruft, muss sie den SourceHandle-Member jeder zugeordneten NET_BUFFER_LIST-Struktur auf den Handle-Wert festlegen, der die Erweiterung identifiziert. Die Erweiterung empfängt dieses Handle über den NdisFilterHandle-Parameter , wenn NDIS die FilterAttach-Funktion der Erweiterung aufruft.
  • Wenn der Sendevorgang abgeschlossen ist, muss die Erweiterung die FreeNetBufferListForwardingContext-Funktion aufrufen, um die Zuordnung der Ressourcen für den Weiterleitungskontext aufzugeben. Die Erweiterung muss diese Funktion aufrufen, bevor sie NdisFreeNetBufferList aufruft, um das Paket an ihren NET_BUFFER_LIST-Pool zurückzugeben.
  • Wenn die Erweiterung ein Paket klont, muss copyNetBufferListInfo aufgerufen werden, um den Weiterleitungskontext aus dem ursprünglichen Paket in das geklonte Paket zu kopieren. Die Erweiterung muss dies tun, nachdem sie AllocateNetBufferListForwardingContext aufgerufen hat.
Weitere Informationen zum Erstellen von Sendevorgängen finden Sie unter Filtern von Sende- und Empfangsvorgängen für Module.
Hinweis Wenn der NetBufferList-Parameter einen Zeiger auf eine verknüpfte Liste mehrerer NET_BUFFER_LIST-Strukturen enthält, ist nur der ersten NET_BUFFER_LIST Struktur in der Liste ein Weiterleitungskontext zugeordnet.
 

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

CopyNetBufferListInfo

FilterAttach

FreeNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateNetBufferList

NdisFGetOptionalSwitchHandlers

NdisFreeNetBufferList