次の方法で共有


W_INITIATE_OFFLOAD_HANDLER コールバック関数 (ndischimney.h)

[TCP のチムニー オフロード機能は非推奨であり、使用しないでください。]

ミニポートInitiateOffload は、ホスト スタックから TCP チムニー状態をオフロードします。

構文

W_INITIATE_OFFLOAD_HANDLER WInitiateOffloadHandler;

void WInitiateOffloadHandler(
  [in]      IN NDIS_HANDLE MiniportAdapterContext,
  [in, out] IN OUT PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
)
{...}

パラメーター

[in] MiniportAdapterContext

オフロード ターゲットがアダプターのこのインスタンスに関する状態情報を保持するオフロード ターゲット割り当てコンテキスト領域へのハンドル。 ミニポート ドライバーは、呼び出されたときに NDIS にこのハンドルを提供しました NdisMSetMiniportAttributes からミニポートInitializeEx 関数を します。

[in, out] OffloadBlockList

へのポインター NDIS_MINIPORT_OFFLOAD_BLOCK_LIST スタンドアロン構造体、またはそのような構造体のリンクされたリストのルートにすることができます。

戻り値

何一つ

備考

ミニポートInitiateOffload 関数は、OffloadBlockList ポインターを格納し、返します。 オフロード ターゲットは常に、オフロード操作を非同期的に完了します。NdisMInitiateOffloadComplete します。 OffloadBlockList ポインターが指す状態ツリーは、ミニポート ドライバーが NdisMInitiateOffloadComplete 呼び出すまで有効です。

ミニポートInitiateOffload 関数から戻った後、オフロード ターゲットは状態ツリーから状態をオフロードします。 ミニポートOffloadContext メンバーが、NULL 値を含むメモリの場所を指すNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の後に、オフロードする状態が続きます。 詳細については、「オフロード状態 格納および参照する」を参照してください。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の Header メンバーには、オフロード状態の種類を指定する Type メンバーが含まれています。つまり、メモリ内のNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の直後に または構造体 オフロード状態構造体が含まれます。

オフロード ターゲットは、NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体に関連付けられているオフロード状態をオフロード コンテキスト領域にオフロードします。 詳細については、「オフロード状態 格納および参照する」を参照してください。

状態をオフロードする場合、オフロード ターゲットは、深さ優先/幅の次の方法 状態ツリーを走査する必要があります。 オフロード ターゲットは、この方法で状態をオフロードすることが重要です。

ミニポートInitiateOffload 関数に渡される状態ツリー内のNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造の一部は、プレースホルダーまたは関連付ける状態を持たないノードをリンクすることができます。 詳細については、「プレースホルダー、リンカー、および新しいオフロード する」を参照してください。

オフロード ターゲットは、オフロードされている接続のホスト スタックからバッファーされたデータを受信できます。 オフロードターゲットは、オフロード操作を完了する前に、このデータを独自のバッファーにコピーする必要があります。 バッファリングされた受信データの処理の詳細については、以下を参照してください。 オフロード操作中およびオフロード後にバッファーされた受信データを処理します。

オフロード対象がオフロードする状態オブジェクトごとに、オフロード ターゲットが状態オブジェクトを格納するオフロード コンテキスト領域を参照する PVOID 値も指定する必要があります。 オフロード ターゲットは、この PVOID 値を、状態に関連付けられているNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の *MiniportOffloadContext メンバーが指すメモリ位置に書き込みます。 オフロード ターゲットが、NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体に関連付けられている状態を正常にオフロードしなかった場合は、*MiniportOffloadContext メンバーが指すメモリ位置に値を書き込むべきではありません。 詳細については、「オフロード状態 格納および参照する」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー ndischimney.h (Ndischimney.h を含む)
IRQL 任意のレベル

関連項目

ミニポートInitializeEx

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMInitiateOffloadComplete

NdisMSetMiniportAttributes