次の方法で共有


OID_RECEIVE_FILTER_CLEAR_FILTER

上部のドライバーは、OID_RECEIVE_FILTER_CLEAR_FILTER の OID セット要求を発行して、ネットワーク アダプターの受信フィルターをクリアします。

NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 構造体へのポインターが含まれています。

解説

NDIS 受信フィルターは、次の NDIS インターフェイスで使用されます。

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 に設定されているすべてのフィルターをクリアする必要があります。

  • ミニポート ドライバーは、OID_RECEIVE_FILTER_CLEAR_FILTER の OID 要求を完了し、VPort の最後のフィルターをクリアしている場合、既定以外の VPort 上のパケットを示すことはできません。

    ミニポート ドライバーは、OID_NIC_SWITCH_DELETE_VPORT の OID 要求を完了し、VPort を解放している場合も、既定以外の VPort 上のパケットを示すことはできません。

VMQ インターフェイスの追加ガイドライン

VMQ インターフェイスをサポートするミニポート ドライバーと上部のドライバーには、次の点が適用されます。

  • 上部のドライバーは、キューを解放する前に、VMQ 受信キューに設定されているすべてのフィルターをクリアする必要があります。 また、上部のドライバーは、ネットワーク アダプターへのバインディングを終了する前に、既定のキューまたはドロップ キューに設定されているすべてのフィルターをクリアする必要があります。

  • ミニポート ドライバーは、OID_RECEIVE_FILTER_CLEAR_FILTER の OID 要求を完了し、受信キューの最後のフィルターをクリアしている場合、受信キュー上のパケットを示すことはできません。

    ミニポート ドライバーは、OID_RECEIVE_FILTER_FREE_QUEUE の OID 要求を完了し、受信キューを解放した場合も、受信キュー上のパケットを示すことはできません。

状態コードを返す

ミニポート ドライバーの MiniportOidRequest 関数は、この要求に対して次のいずれかの値を返します。

用語 説明

NDIS_STATUS_SUCCESS

ミニポート ドライバーが要求を正常に完了しました。

NDIS_STATUS_PENDING

ミニポート ドライバーは、非同期的に要求を完了します。 ミニポート ドライバーは、すべての処理を完了した後、NdisMOidRequestComplete 関数を呼び出して要求を成功させ、Status パラメーターの 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 は、 NDIS_OID_REQUEST 構造体の DATA.SET_INFORMATION.BytesNeeded メンバーに必要最小限のバッファー サイズを設定します。

要件

バージョン

NDIS 6.20 以降でサポートされています。

ヘッダー

Ntddndis.h (Ndis.h を含む)

関連項目

NDIS_OID_REQUEST

NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS

OID_NIC_SWITCH_DELETE_VPORT

OID_RECEIVE_FILTER_FREE_QUEUE

OID_RECEIVE_FILTER_SET_FILTER