NdisMTerminateOffloadComplete 関数 (ndischimney.h)
[TCP のチムニー オフロード機能は非推奨であり、使用しないでください。]
オフロード ターゲットは NdisMTerminateOffloadComplete 関数を呼び出して、 への以前の呼び出しによって開始された終了オフロード操作を完了します。オフロード ターゲットの MiniportTerminateOffload 関数。
void NdisMTerminateOffloadComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);
[in] NdisMiniportHandle
前の呼び出しでオフロード ターゲットが取得したハンドル。 NdisMRegisterMiniportDriver。
[in] OffloadBlockList
へのポインター NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 構造体。 オフロード ターゲットは、 への入力パラメーターとしてこのポインターを取得しました。 MiniportTerminateOffload 関数。
なし
NdisMTerminateOffloadComplete 関数を呼び出す前に、オフロード ターゲットは、状態ツリー内の各NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の Status メンバーに次のNDIS_STATUS値のいずれかを書き込む必要があります。
-
NDIS_STATUS_SUCCESS
オフロード ターゲットは、NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体によって参照される状態オブジェクトのオフロードを正常に終了しました。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST構造体の後に委任された状態構造 (XXX_OFFLOAD_STATE_DELEGATED) が続く場合、オフロード ターゲットは、その状態オブジェクトの委任された変数値を委任された状態構造体に正常に書き込みます。
-
NDIS_STATUS_FAILURE
終了操作が成功しませんでした。 このような障害は、壊滅的な障害によって引き起こされ、終了された状態オブジェクトが失われます。 この場合、オフロード ターゲット ハードウェアが応答していない可能性があります。 ホスト スタックで接続を中止する必要がある場合があります。
- MiniportInvalidateOffload、MiniportQueryOffload、MiniportTcpOffloadReceive への未処理の呼び出しを完了します。 MiniportTcpOffloadDisconnect、 MiniportTcpOffloadForward、 MiniportTcpOffloadSend、および MiniportUpdateOffload 関数。
- NdisMIndicateStatusEx、NdisMOffloadEventIndicate、NdisTcpOffloadEventHandler、 NdisTcpOffloadReceiveHandler 関数が返されました。
未処理の送信データをホスト スタックに渡す場合、オフロード ターゲットは、終了する接続に対して次の委任された TCP 変数に NULL 以外の値も指定する必要があります。
- SndUna
- SndNxt
- SndMax
終了している TCP 接続に未処理の送信データがない場合、オフロード ターゲットは NetBufferListChain メンバーの NULL 値を指定する必要があります。
アップロード中の TCP 接続で未処理の受信データが存在する可能性があります。 これは、オフロード ターゲットがネットワークから受信し、処理し、確認したデータです。 このようなデータの処理の詳細については、次を参照してください。 オフロードの終了操作中にバッファーされた受信データを処理します。
オフロード ターゲットは、終了状態オブジェクトに関連付けられているすべてのリソース (メモリなど) を解放します。
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ndischimney.h (Ndischimney.h を含む) |
IRQL | 任意のレベル |