Abfragen und Ändern des NVGRE-Vorgangs offload-Zustands

In diesem Abschnitt wird beschrieben, wie Sie die aktuelle Netzwerkvirtualisierung mithilfe des NVGRE-Vorgangs offload-Zustands eines NVGRE-fähigen Miniporttreibers abfragen oder ändern. Die NVGRE-Aufgabenauslagerung kann standardmäßig aktiviert sein, darf aber nicht standardmäßig operativ aktiv sein. Eine NIC sollte erst mit der Ausführung von Aufgabenauslagerungen für gekapselte Pakete beginnen, bis dieses Feature explizit von einem NDIS-Protokoll oder Filtertreiber aktiviert wird.

Abfragen des NVGRE-Vorgangs Offloadstatus

Um den aktuellen NVGRE-Task-Abladezustand eines Miniporttreibers abzufragen, verwendet ein NDIS-Protokoll oder Filtertreiber die OID_TCP_OFFLOAD_CURRENT_CONFIG OID-Anforderung. Dadurch wird eine NDIS_OFFLOAD-Struktur zurückgegeben, deren EncapsulatedPacketTaskOffloadGre-Member eine NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD-Struktur ist, die NDIS_OFFLOAD_SUPPORTED enthält, wenn diese Auslagerungen derzeit für GRE-gekapselte Pakete aktiviert sind und andernfalls NDIS_OFFLOAD_NOT_SUPPORTED . NDIS verarbeitet diese OID und gibt sie nicht an den Miniport weiter.

Hinweis Um zu ermitteln, ob ein Miniporttreiber die NVGRE-Aufgabenauslagerung unterstützt, verwenden Sie die OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES OID-Anforderung, wie unter Ermitteln der NVGRE-Aufgabenauslagerungsfunktionen eines Netzwerkadapters beschrieben.

Ändern des NVGRE-Vorgangs offload-Zustands

Ein NDIS-Protokoll oder Filtertreiber kann die NVGRE-Aufgabenauslagerung aktivieren oder deaktivieren, indem die OID_TCP_OFFLOAD_PARAMETERS OID-Anforderung ausgegeben wird. Diese OID verwendet eine NDIS_OFFLOAD_PARAMETERS-Struktur . In dieser Struktur kann das EncapsulatedPacketTaskOffload-Element die folgenden Werte aufweisen:

Begriff BESCHREIBUNG

NDIS_OFFLOAD_SET_NO_CHANGE

Der NVGRE-Vorgangsauslagerungsstatus bleibt unverändert.

NDIS_OFFLOAD_SET_ON

Geben Sie dieses Flag an, um die NVGRE-Aufgabenauslagerung zu aktivieren.

NDIS_OFFLOAD_SET_OFF

Geben Sie dieses Flag an, um die NVGRE-Aufgabenauslagerung zu deaktivieren.

Nachdem der Miniporttreiber die OID_TCP_OFFLOAD_PARAMETERS OID-Anforderung verarbeitet hat, muss er eine NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG status Angabe mit dem aktualisierten Auslagerungsstatus ausgeben.

Wenn ein Miniporttreiber eine OID_TCP_OFFLOAD_PARAMETERS OID-Anforderung empfängt, in der das NDIS_OFFLOAD_SET_OFF-Flag angegeben wird, sollte der Treiber alle vorhandenen gekapselten Pakete angeben, die teilweise verarbeitet werden, um den Stapel abzuladen, bevor die OID-Anforderung abgeschlossen wird.

Basisaufgabenauslagerungen für normale Pakete werden durch vorhandene OIDs wie OID_OFFLOAD_ENCAPSULATION und OID_RECEIVE_FILTER_ALLOCATE_QUEUE aktiviert. Die Membereinstellung EncapsulatedPacketTaskOffload ergänzt diese OIDs und weist die NIC an, auch diese Auslagerungen für gekapselte Pakete zu erledigen.