NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT Rückruffunktion (ndis.h)
Die Erweiterung des erweiterbaren Hyper-V-Switches ruft die GetNetBufferListSwitchContext-Funktion auf, um den switch-Kontext abzurufen, der zuvor für die NET_BUFFER_LIST festgelegt wurde.
Syntax
NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT NdisSwitchGetNetBufferListSwitchContext;
PVOID NdisSwitchGetNetBufferListSwitchContext(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in] PNET_BUFFER_LIST NetBufferList,
[in] PNDIS_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE ContextType
)
{...}
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] NetBufferList
Ein Zeiger auf eine NET_BUFFER_LIST-Struktur für ein einzelnes Paket, das den abzurufenden Kontext enthält.
[in] ContextType
Kontext
Der Kontexttyp, der mit dem NDIS_DECLARE_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE deklariert wurde, der beim Festlegen des Kontexts verwendet wurde.
Rückgabewert
NULL, wenn in der NET_BUFFER_LIST kein Kontext gefunden wurde, der dem angegebenen Kontexttyp entspricht. Andernfalls wird ein Nicht-NULL-Zeiger auf den Puffer zurückgegeben.
Hinweise
Die SetNetBufferListSwitchContext-APIs ermöglichen Es Erweiterungen, Kontext an eine NET_BUFFER_LIST beim Eingehenden anzufügen und beim ausgehenden Datenverkehr abzurufen. Dennoch sollten Erweiterungen resilient sein, wenn der Eingangskontext beim ausgehenden Datenverkehr nicht vorhanden ist. Der Switchkontext wird nicht beibehalten, wenn ein NET_BUFFER_LIST geklont wird. In Szenarien, in denen die NET_BUFFER_LIST zwischen Eingehendem und Ausgehendem geklont wird, verfügt der NET_BUFFER_LIST also nicht über den Switchkontext des Originals.
Die Erweiterung muss die Lebensdauer des Kontexts verwalten. Ein Ansatz besteht darin, NDIS NET_BUFFER_LIST Kontext zuzuordnen (mithilfe von NdisAllocateNetBufferListContext oder vorkonfiguriert, wenn die Erweiterung den NET_BUFFER_LIST-Pool besitzt) und setNetBufferListSwitchContext zu verwenden, um dem NDIS-NET_BUFFER_LIST-Kontext einen Kontexttypbezeichner zuzuordnen. Wenn die NBL abgeschlossen ist, kann die Erweiterung den NDIS-NET_BUFFER_LIST-Kontext freigeben (mithilfe von NdisFreeNetBufferListContext oder freigeben des NET_BUFFER_LIST selbst, wenn es von der Erweiterung stammt).
Weitere Informationen zum Weiterleitungskontext für erweiterbare Switches 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 (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Weitere Informationen
AllocateNetBufferListForwardingContext
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