Wake On LAN パターンの追加と削除
WAKE-on-LAN (WOL) パターンを追加するには、NDIS プロトコル ドライバーは、OID_PM_ADD_WOL_PATTERN の OID セット要求を発行します。 NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_PM_WOL_PATTERN 構造体へのポインターが含まれています。 プロトコル ドライバーは、その WOL パケットがネットワーク アダプターでサポートされている場合、WOL パケットを指定する必要があります。 ネットワーク アダプターが WOL パケットをサポートしていない場合、プロトコル ドライバーは、WOL ビットマップ ウェイク メソッドを使用する必要があります。
NDIS_PM_WOL_PATTERN には、次の情報が含まれます。
優先順位
WOL パターンの優先順位が含まれます。 上位ドライバーが、より多くの WOL パターンに使用できるリソースがない場合に、優先順位の高い WOL パターンを追加する場合、NDIS はリソースを解放するために優先順位の低い WOL パターンを削除することがあります。 ミニポート ドライバーは、このメンバーを無視する必要があります。 プロトコル ドライバーは、NDIS_PM_WOL_PRIORITY_LOWEST to NDIS_PM_WOL_PRIORITY_HIGHEST から定義済みの範囲内にある任意の優先順位を指定できます。
WoLPacketType
WOL パケットの種類を 指定する NDIS_PM_WOL_PACKET 列挙値を含みます。
FriendlyName
ユーザーが 読み取り可能な WOL パケットの説明を含む NDIS_PM_COUNTED_STRING 構造体が含まれています。
PatternId
WOL パターンを識別する NDIS 提供の値を含みます。 NDIS が、基になる NDIS ドライバーに OID_PM_ADD_WOL_PATTERN OID 要求を送信するか、または上位ドライバーへの要求を完了する前に、NDIS は PatternId をネットワーク アダプター上の WOL パターン間で一意の値に設定します。
NextWoLPatternOffset
1 つのNDIS_PM_WOL_PATTERN 構造体のオフセット (OID 要求 InformationBuffer の先頭から OID_PM_WOL_PATTERN_LIST OID の一覧内の次の NDIS_PM_WOL_PATTERN 構造体まで) を含めます。 OID_PM_WOL_PATTERN_LIST の詳細については、「WOL パターンの現在の設定の取得」を参照してください。
WoLPattern
共同体の IPv4TcpSynParameters、 IPv6TcpSynParameters、 EapolRequestIdMessageParameters、または WoLBitMapPattern 構造体のいずれかを含みます。
IPv4TcpSynParameters
IPv4 TCP 同期 (SYN) 情報が含まれています。
IPv6TcpSynParameters
IPv6 TCP SYN 情報が含まれています。
EapolRequestIdMessageParameters
802.1X EAP over LAN (EAPOL) 要求 ID メッセージ パラメーターが含まれます。
WoLBitMapPattern
WOL ビットマップ パターン仕様が含まれています。
NDIS は、すべての WOL パターンにネットワーク アダプターの一意の識別子を割り当てます。 パターン識別子は、ネットワーク アダプターに設定されているパターンごとに一意の値です。 ただし、パターン識別子は、すべてのネットワーク アダプターでグローバルに一意ではありません。 NDIS は、ミニポート ドライバーに OID_PM_ADD_WOL_PATTERN OID 要求を送信するときに、基になるネットワーク アダプターに識別子を渡します。 WOL パターンの追加が成功した場合、NDIS は、WOL パターンを追加した上位ドライバーに識別子を返します。 上位ドライバーは、識別子を使用して、以前追加された WOL パターンを削除します。 パターン識別子は、ネットワーク アダプターから WOL パターンが削除されたときに、上位ドライバーの状態表示にも使用されます。
プロトコル ドライバーは、そのネットワーク アダプターへのバインドを閉じる前に、ネットワーク アダプターに追加されたすべてのパターンを削除する OID_PM_REMOVE_WOL_PATTERN の OID セット要求を発行する必要があります。 NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、パターン識別子へのポインターが含まれています。
ユーザー モード アプリケーションでは、GUID_PM_REMOVE_WOL_PATTERN WMI GUID を使用して、ネットワーク アダプターから以前に追加された WOL パターンを削除します。 NDIS は、ネットワーク アダプターの OID_PM_REMOVE_WOL_PATTERN の OID セット要求にこの WMI 要求を変換します。 NDIS は、アプリケーションがネットワーク アダプターを停止する前にネットワーク アダプターから追加したすべての WOL パターンを削除します。
NDIS を使用すると、複数の NDIS プロトコル ドライバーが同じネットワーク アダプターに WOL パターンを追加できます。 要求された WOL パターンの数がネットワーク アダプターでサポートできる数より多い場合に、適切な一連の WOL パターンが設定されていることを確認するために、プロトコル ドライバーは、NDIS_PM_WOL_PATTERN 構造体の Priority メンバーで要求された各 WOL パターンに優先順位 を割り当てます。 ネットワーク アダプターのリソース不足のために NDIS が新しい優先度の高い WOL パターンを追加できない場合、NDIS は優先順位の低いパターンの 1 つ (ある場合) を削除し、優先度の高いパターンを再度追加しようとします。
注: ミニポート ドライバーは、パターンの追加要求に失敗し、NDIS がパターンの優先順位を再び設定できるように、STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL 状態コードを返す必要があります。
NDIS は、優先順位の低いパターンのいずれかを削除する場合は、NDIS_STATUS_PM_WOL_PATTERN_REJECTED 状態表示で、削除されるパターンを設定した上位ドライバーに通知します。 NDIS_STATUS_INDICATION 構造体の StatusBuffer メンバーには、拒否された WOL パターンの WOL パターン識別子の ULONG が含まれています。 NDIS は、NDIS_PM_WOL_PATTERN 構造の PatternId メンバーに WOL パターン識別子を提供しました。
インフラストラクチャ要素を使用してインフラストラクチャ全体をローミングするパターンをオフロードするワイヤレス ネットワーク アダプターの場合、新しいインフラストラクチャ要素は同じ機能をサポートしていない可能性があり、ミニポート ドライバーは適切な状態コードを使って NDIS_STATUS_PM_WOL_PATTERN_REJECTED 状態表示を送信できます。