OID_PM_ADD_WOL_PATTERN
NDIS プロトコル ドライバーは、セットとして、OID_PM_ADD_WOL_PATTERN OID を使用して、ネットワーク アダプターに電源管理 wake-on-LAN パターンを追加します。 NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_PM_WOL_PATTERN 構造体へのポインターが含まれています。
解説
NDIS 6.20 以降のプロトコル ドライバーは、OID_PM_ADD_WOL_PATTERN を使用して、ネットワーク アダプターに Wake on LAN (WOL) パターンを追加します。 OID 要求には、ネットワーク アダプターが低電力状態のときに受信パケットと比較する必要がある条件が含まれています。 ネットワーク アダプターは、パターン条件に一致するパケットを受信したときにウェイク アップ イベントを生成する必要があります。
プロトコル ドライバーは、基になるネットワーク アダプターへのバインドに成功した後、および必要なデータ (インターフェイスの IP アドレスなど) を取得して WOL パターンを設定するとすぐに、WOL パターンを追加できます。 プロトコル ドライバーは、以前に追加された WOL パターンやオフロードされたプロトコルの拒否など、他の電源管理イベント通知に応答して WOL パターンを追加する場合もあります。
NDIS と同じミニポート アダプターにバインドされている他のプロトコル ドライバーの競合状態を回避するため、NDIS は、ネットワーク アダプターを低電力状態に設定し始めた後、そのネットワーク アダプターに新しいウェイクアップ パターンを追加しようとして失敗します。 たとえば、NDIS プロトコル ドライバーがそのネットワーク アダプターの NetEventSetPower イベント通知を処理するコンテキストで新しい WOL パターンを追加しようとすると、NDIS では要求が失敗します。
NDIS は、上部の NDIS ドライバーにこの OID 要求を送信するか、上部のドライバーへの要求を完了する前に、NDIS_PM_WOL_PATTERN 構造体の ULONG PatternId メンバーを一意の値に設定します。 プロトコル ドライバーと NDIS は、OID_PM_REMOVE_WOL_PATTERN OID 要求でこのパターン識別子を使用して、基になるネットワーク アダプターから WOL パターンを削除します。
注 パターン識別子は、ネットワーク アダプターに設定されているパターンごとに一意の値です。 ただし、パターン識別子は、すべてのミニポート アダプターでグローバルに一意ではありません。
NDIS または基になるネットワーク アダプターが、WOL パターンを削除すると、NDIS_STATUS_PM_WOL_PATTERN_REJECTED 状態表示が生成されます。 NDIS_STATUS_INDICATION 構造体の StatusBuffer メンバーには、拒否された WOL パターンの ULONG WOL パターン識別子が含まれています。
ミニポート ドライバーは、次の要求の状態コードのいずれかを返します。
NDIS_STATUS_SUCCESS
要求されたパターンが正常に追加されました。 NDIS_PM_WOL_PATTERN 構造体の PatternId メンバーには、パターン識別子が含まれています。
NDIS_STATUS_PENDING
要求の完了が保留中です。 NDIS は、要求が完了した後、呼び出し元の OID 要求完了ハンドラーに最終的な状態コードと結果を渡すことになります。
NDIS_STATUS_PM_WOL_PATTERN_LIST_FULL
パターン リストがいっぱいで、ネットワーク アダプターが別のパターンを追加できないため、要求が失敗しました。
NDIS_STATUS_RESOURCES
NDIS または基になるネットワーク アダプターは、リソースが不足しているため、新しいパターンを追加できませんでした。
NDIS_STATUS_INVALID_PARAMETER
NDIS_PM_WOL_PATTERN 構造体の 1 つ以上のパラメーターが無効でした。
NDIS_STATUS_BUFFER_TOO_SHORT
情報バッファーが短すぎました。 NDIS は、NDIS_OID_REQUEST 構造体の DATA.SET_INFORMATION.BytesNeeded メンバーを必要な最小バッファー サイズに設定します。
NDIS_STATUS_NOT_SUPPORTED
ネットワーク アダプターは、要求された WOL パターンをサポートしていません。
NDIS_STATUS_FAILURE
上記の理由以外の理由で要求が失敗しました。
要件
バージョン |
NDIS 6.20 以降でサポートされています。 ミニポート ドライバーには必須です。 |
ヘッダー |
Ntddndis.h (Ndis.h を含む) |