W_INITIATE_OFFLOAD_HANDLER コールバック関数 (ndischimney.h)
[TCP チムニー オフロード機能は非推奨であり、使用しないでください。]
MiniportInitiateOffload は、ホスト スタックから 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 MiniportInitializeEx 関数。
[in, out] OffloadBlockList
へのポインター NDIS_MINIPORT_OFFLOAD_BLOCK_LIST スタンドアロン構造、またはそのような構造体のリンクされたリストのルートにすることができます。
戻り値
なし
解説
MiniportInitiateOffload 関数は、OffloadBlockList ポインターを格納し、 を返します。 オフロード ターゲットは、常に を呼び出すことによって、オフロード操作を非同期的に完了します NdisMInitiateOffloadComplete。 OffloadBlockList ポインターが指す状態ツリーは、ミニポート ドライバーが NdisMInitiateOffloadComplete を呼び出すまで有効です。
MiniportInitiateOffload 関数から戻った後、オフロード ターゲットは状態ツリーから状態をオフロードします。 MiniportOffloadContext メンバーが NULL 値を含むメモリの場所を指すNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の後に、オフロードする状態が続きます。 詳細については、「 オフロード状態の格納と参照」を参照してください。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の Header メンバーには 、 オフロード状態の種類を指定する Type メンバーと、メモリ内のNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の直後にある オフロード状態の構造体 が含まれます。
オフロード ターゲットは、NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体に関連付けられているオフロード状態をオフロード コンテキスト領域にオフロードします。 詳細については、「 オフロード状態の格納と参照」を参照してください。
状態をオフロードする場合、オフロード ターゲットは 、深さ優先または幅の次の方法で状態ツリーを走査する必要があります。 オフロード ターゲットは、この方法で状態をオフロードすることが重要です。
MiniportInitiateOffload 関数に渡される状態ツリー内のNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造の一部は、オフロードする付随する状態を持たないプレースホルダーまたはリンク ノードにすることができます。 詳細については、「 プレースホルダー、リンカー、および新しいオフロード」を参照してください。
オフロード ターゲットは、オフロードされている接続のバッファーされたデータをホスト スタックから受信できます。 オフロード ターゲットは、オフロード操作を完了する前に、このデータを独自のバッファーにコピーする必要があります。 バッファー処理された受信データの処理の詳細については、次を参照してください。 オフロード操作中およびオフロード操作後にバッファー処理された受信データを処理する。
オフロード対象の状態オブジェクトごとに、オフロード ターゲットが状態オブジェクトを格納するオフロード コンテキスト領域を参照する PVOID 値も指定する必要があります。 オフロード ターゲットは、この PVOID 値を、状態に関連付けられているNDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の *MiniportOffloadContext メンバーが指すメモリの場所に書き込みます。 オフロード ターゲットが、NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体に関連付けられている状態を正常にオフロードしなかった場合は、 *MiniportOffloadContext メンバーが指すメモリの場所に値を書き込まないようにする必要があります。 詳細については、「 オフロード状態の格納と参照」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | ndischimney.h (Ndischimney.h を含む) |
IRQL | 任意のレベル |