次の方法で共有


OID_PM_ADD_PROTOCOL_OFFLOAD

セットとして、NDIS プロトコル ドライバーは、ネットワーク アダプターに電源管理のプロトコル オフロードを追加するOID_PM_ADD_PROTOCOL_OFFLOAD OID を使用します。 NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_PM_PROTOCOL_OFFLOAD 構造体へのポインターが含まれています。

備考

NDIS 6.20 以降のプロトコル ドライバーは、ネットワーク アダプターに電源管理のプロトコル オフロードを追加するOID_PM_ADD_PROTOCOL_OFFLOAD OID を使用します。 要求が成功した場合、ネットワーク アダプターが低電力状態のときに、オフロードされたプロトコルに必要な応答パケットを生成して送信する必要があります。

プロトコル ドライバーは、基になるネットワーク アダプターに正常にバインドされた後、およびプロトコルをオフロードするために必要なデータ (インターフェイスの IP アドレスなど) が含まれるとすぐに、プロトコルをオフロードできます。 プロトコル ドライバーは、以前に追加された WOL パターンやオフロードされたプロトコルの拒否など、他の電源管理イベント通知に応答してプロトコルをオフロードすることもできます。

NDIS と同じミニポート アダプターにバインドされている他のプロトコル ドライバーの競合状態を回避するために、NDIS がネットワーク アダプターを低電力状態に設定し始めると、そのネットワーク アダプターに別のプロトコルをオフロードしようとして失敗します。 たとえば、NDIS プロトコル ドライバーは、そのネットワーク アダプターの NetEventSetPower イベント通知を処理するコンテキストでプロトコルをオフロードしようとすると、NDIS は要求に失敗します。

NDIS は、基になる NDIS ドライバーにこの OID 要求を送信するか、または上にあるドライバーに要求を完了する前に、NDIS_PM_PROTOCOL_OFFLOAD 構造体の ULONG ProtocolOffloadId メンバーを一意の値に設定します。 プロトコル ドライバーと NDIS は、基になるネットワーク アダプターからプロトコル オフロードを削除する OID_PM_REMOVE_PROTOCOL_OFFLOAD OID 要求でこのプロトコル オフロード識別子を使用します。

プロトコル オフロード識別子は、ネットワーク アダプターに設定されている各プロトコル オフロードの一意の値です。 ただし、プロトコル オフロード識別子は、すべてのネットワーク アダプターでグローバルに一意ではありません。

NDIS または基になるネットワーク アダプターがオフロードを拒否した場合は、NDIS_STATUS_PM_OFFLOAD_REJECTED 状態の表示が生成されます。 これは、OID のNDIS_STATUS_SUCCESSを返した後に発生する可能性があります。 NDIS_STATUS_INDICATION 構造体の StatusBuffer メンバーには、拒否されたプロトコル オフロードの ULONG プロトコル オフロード識別子が含まれています。

ネイティブ 802.11 ワイヤレス LAN ミニポート ドライバーがこの OID を使用する方法については、「追加と削除の低電力プロトコル オフロードを参照してください。

ミニポート ドライバーは、要求の次の状態コードのいずれかを返します。

NDIS_STATUS_SUCCESS
要求されたプロトコル オフロードが正常に追加されました。 NDIS_PM_PROTOCOL_OFFLOAD 構造体の ProtocolOffloadId メンバーには、プロトコル オフロード識別子が含まれています。

NDIS_STATUS_PENDING
要求の完了が保留中です。 NDIS は、要求が完了した後、呼び出し元の OID 要求完了ハンドラーに最終的な状態コードと結果を渡します。

NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
プロトコル オフロード リストがいっぱいで、ネットワーク アダプターが別のプロトコル オフロードを追加できないため、要求が失敗しました。

NDIS_STATUS_RESOURCES
NDIS または基になるネットワーク アダプターは、リソースの不足のため、新しいプロトコル オフロードを追加できませんでした。

NDIS_STATUS_INVALID_PARAMETER
NDIS_PM_PROTOCOL_OFFLOAD 構造体内の 1 つ以上のパラメーターが無効でした。

NDIS_STATUS_BUFFER_TOO_SHORT
情報バッファーが短すぎます。 NDIS は、データを設定します。SET_INFORMATION。BytesNeeded 必要な最小バッファー サイズにNDIS_OID_REQUEST構造体のメンバーです。

NDIS_STATUS_NOT_SUPPORTED
ネットワーク アダプターは、要求されたプロトコル オフロードをサポートしていません。

NDIS_STATUS_FAILURE
上記の理由以外の理由で要求が失敗しました。

必要条件

バージョン

NDIS 6.20 以降でサポートされています。 ミニポート ドライバーには必須です。

ヘッダ

Ntddndis.h (Ndis.h を含む)

関連項目

NDIS_OID_REQUEST

NDIS_PM_PROTOCOL_OFFLOAD

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_OFFLOAD_REJECTED

OID_PM_REMOVE_PROTOCOL_OFFLOAD

低電力プロトコル オフロード の追加と削除