省電力プロトコル オフロードの追加と削除
低電力プロトコル オフロードを追加する場合、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 |
共用体内の IPv4ARPParameters、 IPv6NSParameters、または Dot11RSNRekeyParameters 構造体のいずれかを含みます。
|
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 メンバーにプロトコル オフロード識別子を提供しました。