基になるドライバーは、ネットワーク アダプターの受信フィルターをクリアするOID_RECEIVE_FILTER_CLEAR_FILTERの OID セット要求を発行します。
NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 構造体へのポインターが含まれています。
備考
NDIS 受信フィルターは、次の NDIS インターフェイスで使用されます。
NDIS パケット結合。 このインターフェイスで受信フィルターを使用する方法の詳細については、「パケット結合受信フィルターの管理を参照してください。
シングル ルート I/O 仮想化 (SR-IOV)。 このインターフェイスで受信フィルターを使用する方法の詳細については、「仮想ポート で受信フィルターを設定するを参照してください。
仮想マシン キュー (VMQ) をします。 このインターフェイスで受信フィルターを使用する方法の詳細については、「VMQ フィルターの設定とクリア」を参照してください。
NDIS パケット結合、SR-IOV、または VMQ インターフェイスをサポートするミニポート ドライバーには、OID_RECEIVE_FILTER_CLEAR_FILTERの OID セット要求が必須です。
上にあるドライバー (NDIS プロトコルやフィルター ドライバーなど) は、OID_RECEIVE_FILTER_CLEAR_FILTERセット要求を使用して、以前に設定されたフィルターをクリアします。 受信フィルターを設定したドライバーのみがクリアできます。
上にあるドライバーは、NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 構造体の FilterId メンバーをフィルターの識別子に設定することで、受信フィルターをクリアします。 ドライバーは、OID_RECEIVE_FILTER_SET_FILTERの以前の OID メソッド要求からフィルター識別子を取得しました。
NDIS パケット結合の追加手順
次のポイントは、NDIS パケットの結合をサポートするミニポートおよび上にあるドライバーに適用されます。
- 基になるドライバーは、ドライバーのバインドを解除またはデタッチする前に、ミニポート ドライバーに設定されているすべての受信フィルターをクリアする必要があります。
SR-IOV インターフェイスの追加ガイドライン
次の点は、SR-IOV インターフェイスをサポートするミニポート ドライバーと基になるドライバーに適用されます。
上にあるドライバーは、VPort を解放する前に、SR-IOV VPort に設定されているすべてのフィルターをクリアする必要があります。 また、上にあるドライバーは、ネットワーク アダプターへのバインドを閉じる前に、既定の VPort に設定されているすべてのフィルターをクリアする必要があります。
ミニポート ドライバーは、VPort の最後のフィルターをクリアするOID_RECEIVE_FILTER_CLEAR_FILTERの OID 要求を完了している場合は、既定以外の VPort 上のパケットを示す必要があります。
注 ミニポート ドライバーは、VPort を解放する OID_NIC_SWITCH_DELETE_VPORT の OID 要求を完了した場合、既定以外の VPort 上のパケットも示す必要があります。
VMQ インターフェイスの追加ガイドライン
次の点は、VMQ インターフェイスをサポートするミニポート ドライバーと基になるドライバーに適用されます。
上にあるドライバーは、VMQ 受信キューに設定されているすべてのフィルターをクリアしてから、キューを解放する必要があります。 また、上にあるドライバーは、ネットワーク アダプターへのバインドを閉じる前に、既定またはドロップ キューに設定されているすべてのフィルターをクリアする必要があります。
ミニポート ドライバーは、受信キューの最後のフィルターをクリアするOID_RECEIVE_FILTER_CLEAR_FILTERの OID 要求を完了している場合は、受信キューのパケットを示す必要があります。
注 ミニポート ドライバーは、受信キューを解放する OID_RECEIVE_FILTER_FREE_QUEUE の OID 要求を完了した場合、受信キューのパケットも示す必要があります。
戻り値の状態コード
ミニポート ドライバーの ミニポートOidRequest 関数は、この要求に対して次のいずれかの値を返します。
| 用語 | 形容 |
|---|---|
NDIS_STATUS_SUCCESS |
ミニポート ドライバーが要求を正常に完了しました。 |
NDIS_STATUS_PENDING |
ミニポート ドライバーは、非同期的に要求を完了します。 ミニポート ドライバーは、すべての処理を完了した後、NdisMOidRequestComplete 関数を呼び出して要求を成功させる必要があります、状態 パラメーターの NDIS_STATUS_SUCCESS を渡します。 |
NDIS_STATUS_NOT_ACCEPTED |
ミニポート アダプターが突然削除されました。 |
NDIS は、この要求の次のいずれかの状態コードを返します。
NDIS_STATUS_SUCCESS
指定したフィルターが正常にクリアされました。
NDIS_STATUS_PENDING
要求の完了が保留中です。 NDIS は、要求が完了した後、呼び出し元の OID 要求完了ハンドラーに最終的な状態コードと結果を渡します。
NDIS_STATUS_FILE_NOT_FOUND
フィルター識別子が無効です。
NDIS_STATUS_INVALID_LENGTH
情報バッファーが小さすぎます。 NDIS は、データを設定します。SET_INFORMATION。BytesNeededNDIS_OID_REQUEST 構造体のメンバーを、必要な最小バッファー サイズに設定します。
必要条件
バージョン |
NDIS 6.20 以降でサポートされています。 |
ヘッダ |
Ntddndis.h (Ndis.h を含む) |