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.
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
FreeNetBufferListForwardingContext
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für