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

低電力プロトコル オフロードを追加する場合、NDIS プロトコル ドライバーは、OID_PM_ADD_PROTOCOL_OFFLOAD の OID セット要求を発行します。 NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_PM_PROTOCOL_OFFLOAD 構造体へのポインターが含まれています。

注: 受信パケットがオフロード プロトコルとパターンの両方に一致する場合 (たとえば、構成エラーが原因)、ネットワーク アダプターはパケットに応答し、コンピューターを起動する必要があります。

NDIS_PM_PROTOCOL_OFFLOAD 構造体には、次の情報が含まれています。

メンバー 説明

優先順位

プロトコル オフロードの優先順位が含まれます。 より多くのプロトコル オフロードに使用できるリソースがないときに、上位ドライバーにより優先度の高いプロトコル オフロードが追加された場合、NDIS は優先度の低いプロトコル オフロードを削除してリソースを解放することがあります。 ミニポート ドライバーは、このメンバーを無視する必要があります。 プロトコル ドライバーは、NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST から NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST までの定義済みの範囲内の任意の値を提供できます。

ProtocolOffloadType

プロトコル オフロードの種類を指定する NDIS_PM_PROTOCOL_OFFLOAD_TYPE 値を含みます。

FriendlyName

低電力プロトコル オフロードのユーザーが判読できる説明を含む NDIS_PM_COUNTED_STRING 構造体が含まれます。

ProtocolOffloadId

オフロードされたプロトコルを識別する OS 提供の値を含みます。 NDIS が基になる NDIS ドライバーに OID_PM_ADD_PROTOCOL_OFFLOADの の OID 要求を送信するか、または上位ドライバーへの要求を完了する前に、NDIS は ProtocolOffloadId をネットワーク アダプター上のプロトコル オフロードの中で一意の値に設定します。

NextProtocolOffloadOffset

OID_PM_PROTOCOL_OFFLOAD_LIST OID のリスト内における次の NDIS_PM_PROTOCOL_OFFLOAD 構造体への、OID 要求 InformationBuffer の先頭のオフセットを含みます。 OID_PM_PROTOCOL_OFFLOAD_LIST の詳細については、「低電力プロトコル オフロードの現在のパラメーター 設定の取得」を参照してください。

ProtocolOffloadParameters

共用体内の IPv4ARPParametersIPv6NSParameters、または Dot11RSNRekeyParameters 構造体のいずれかを含みます。

用語 説明

IPv4ARPParameters

IPv4 ARP パラメーターが含まれています。

IPv6NSParameters

IPv6 近隣要請 (NS) パラメーターが含まれています。

Dot11RSNRekeyParameters

IEEE 802.11 堅牢セキュア ネットワーク (RSN) ハンドシェイク パラメーターが含まれています

 

NDIS は、オフロードされたすべてのプロトコルにネットワーク アダプターの一意の識別子を割り当てます。 プロトコル オフロード識別子は、ネットワーク アダプターに設定されている各プロトコル オフロードの一意の値です。 ただし、プロトコル オフロード識別子は、すべてのネットワーク アダプターでグローバルに一意ではありません。 NDIS は、NDIS がミニポート ドライバーに OID_PM_ADD_PROTOCOL_OFFLOAD OID 要求を送信するときに、基になるミニポート ドライバーにこの識別子を渡します。 プロトコルのオフロードが成功した場合、NDIS はプロトコルをオフロードした上位ドライバーに識別子を返します。 上位ドライバーは、識別子を使用して、以前にオフロードされたプロトコルを削除します。 プロトコル オフロード識別子は、オフロードされたプロトコルがネットワーク アダプターから削除されるときに、上位層ドライバーの状態表示でも使用されます。

プロトコル ドライバーは、そのネットワーク アダプターへのバインドを閉じる前に、ネットワーク アダプターからオフロードされたすべてのプロトコルを削除する必要があります。 低電力プロトコル オフロードを削除する場合、プロトコル ドライバーは、OID_PM_REMOVE_PROTOCOL_OFFLOAD の OID セット要求 を送信します。 NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、プロトコル オフロード識別子へのポインターが含まれています。

NDIS を使用すると、複数の NDIS プロトコル ドライバーが同じネットワーク アダプターにプロトコル オフロードを追加できます。 要求されたオフロードされたプロトコルの数がネットワーク アダプターでサポートできる数よりも多い場合に、適切なプロトコル セットがネットワーク アダプターにオフロードされるようにするために、プロトコル ドライバーはオフロードされた各プロトコルに優先順位を割り当てます。 ネットワーク アダプターがリソース不足のため、NDIS が新しい優先度の高いプロトコルをオフロードできない場合、NDIS は優先度の低いオフロード プロトコルの 1 つ (ある場合) を削除し、優先度の高いプロトコルをもう一度オフロードしようとします。

: ミニポート ドライバーは、低出力プロトコル オフロードの追加要求に失敗すると、NDIS がプロトコル オフロードの優先順位を再び設定できるように、STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL 状態コードを返す必要があります。

優先度の高いプロトコルをオフロードした結果として、優先順位の低いオフロード されたプロトコルのいずれかが削除された場合、NDIS は、削除されたプロトコル オフロードを設定する上位ドライバーに通知するNDIS_STATUS_PM_OFFLOAD_REJECTED 状態の表示を送信します。 NDIS_STATUS_INDICATION 構造体の StatusBuffer メンバーには、拒否されたプロトコル オフロードのプロトコル オフロード識別子が含まれます。 NDIS は、NDIS_PM_PROTOCOL_OFFLOAD 構造の ProtocolOffloadId メンバーにプロトコル オフロード識別子を提供しました。