汎用ルーティング カプセル化 (NVGRE) タスク オフロードを使用してネットワーク仮想化をサポートするミニポート ドライバーは、そのミニポートInitializeEx 関数が NdisMSetMiniportAttributes に渡すNDIS_OFFLOAD構造体を使用してこの機能を報告します。
NVGRE タスク オフロード機能の報告
NDIS_OFFLOAD構造体では、Header メンバーを次のように設定する必要があります。
- Revision メンバーは、NDIS_OFFLOAD_REVISION_3に設定する必要があります。
- Size メンバーは、NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3に設定する必要があります。
NVGRE タスクオフロードのサポートを報告するには、ミニポート ドライバーは、そのMiniportInitializeEx関数がNdisMSetMiniportAttributesに渡すNDIS_OFFLOAD構造体のEncapsulatedPacketTaskOffloadGreメンバーに格納されているNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD構造体の次のメンバーを設定します。
MaxHeaderSizeSupported メンバーを、パケットの先頭から内部 TCP または UDP ペイロードの先頭 (TCP または UDP 内部ヘッダーの最後のバイト) までの最大ヘッダー サイズに設定します。このサイズは、NIC がこれらのすべてのタスク オフロードをサポートする必要があります。 プロトコル ドライバーは、結合されたカプセル化ヘッダーがこのサイズを超えるパケットの処理をオフロードしないことが期待されます。
注 256 バイトは、考えられるすべてのケースをカバーする適切な既定値です。
他のメンバーを設定して、カプセル化されたパケットに対してミニポート ドライバーがサポートするタスク オフロードの種類を示します。 これらのメンバーに設定できるフラグの一覧については、 NDIS_ENCAPSULATED_PACKET_TASK_OFFLOADの「解説」セクションを参照してください。
NVGRE タスク オフロード機能のクエリ
ミニポート ドライバーが NVGRE タスク オフロードをサポートしているかどうかを判断するには、プロトコルとフィルター ドライバーは、NDIS_OFFLOAD構造体を返すOID_TCP_OFFLOAD_HARDWARE_CAPABILITIES OID 要求を発行できます。
手記ミニポート ドライバーの NVGRE 機能が現在有効になっているかどうかを確認するには、「クエリと NVGRE タスク オフロード状態の変更」の説明に従って、OID_TCP_OFFLOAD_CURRENT_CONFIG OID 要求を使用します。
手記ミニポート ドライバーの NVGRE 機能を有効または無効にするには、「NVGRE タスク オフロード状態の照会と変更」の説明に従って、OID_TCP_OFFLOAD_PARAMETERS OID 要求を使用します。