次の方法で共有


仮想ポートでの受信フィルターの列挙

ネットワーク アダプターの NIC スイッチに仮想ポート (VPort) が作成された後、基になるドライバーとユーザー アプリケーションで次の操作を行うことが可能です。

VPort を作成する方法の詳細については、「仮想ポートの作成」を参照してください

受信フィルターの列挙

NIC スイッチの仮想ポート (VPort) に設定されているすべての受信フィルターの一覧を取得するには、上のドライバーとアプリケーションは、OID_RECEIVE_FILTER_ENUM_FILTERSのオブジェクト識別子 (OID) メソッドリクエストを発行できます。

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

基になるドライバーまたはユーザー アプリケーションがこの OID メソッドリクエストを発行する前に、NDIS_RECEIVE_FILTER_INFO_ARRAY構造体を初期化し、次の方法でこの構造体のメンバーを設定してください。

  • QueueId メンバーは、NDIS_DEFAULT_RECEIVE_QUEUE_ID に設定してください。

  • VPortId メンバーは、VPort に関連付けられている識別子に設定してください。 上位ドライバーは、次のいずれかの方法で VPort 識別子を取得します:

    : このメンバーは、ドライバーまたはアプリケーションがフラグメンバーにNDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIEDフラグを設定する場合のみ有効です。 このフラグが設定されていない場合は、NIC スイッチのVPortすべてで設定した受信フィルターが返されます。

OID_RECEIVE_FILTER_ENUM_FILTERSの OID メソッドリクエストから正常に戻った後、NDIS_OID_REQUEST構造体の InformationBuffer メンバーには、更新されたNDIS_RECEIVE_FILTER_INFO_ARRAY構造体へのポインターを格納し、その後に 1 つ以上のNDIS_RECEIVE_FILTER_INFO構造体が続きます。 各 NDIS_RECEIVE_FILTER_INFO 構造体は、指定された VPort で設定している受信フィルターの一意識別子を指定します。

特定の受信フィルターのクエリを実行する

基になるドライバーまたはアプリケーションは、OID_RECEIVE_FILTER_PARAMETERSの OID メソッドリクエストを発行して、VPort 上の特定のフィルターのパラメーターを取得することができます。

この NDIS_OID_REQUEST 構造の InformationBuffer メンバーは、最初に NDIS_RECEIVE_FILTER_PARAMETERS 構造へのポインターを含んでいます。

基になるドライバーまたはユーザー アプリケーションがこの OID メソッドリクエストを発行する前に、NDIS_RECEIVE_FILTER_PARAMETERS構造体を初期化し、この構造体のメンバーを次の方法で設定してください。

  • FilterId メンバーは、パラメーターを返すフィルターの 0 以外の識別子値に設定してください。

    : 上のドライバーは、OID_RECEIVE_FILTER_Standard Edition T_FILTERまたはOID_RECEIVE_FILTER_ENUM_FILTERSの以前の OID メソッドリクエストからフィルター 認識子を取得しました。 アプリケーションは、OID_RECEIVE_FILTER_ENUM_FILTERSの以前の OID メソッドリクエストからのみフィルター 認識子を取得できます。

  • QueueId メンバーは、NDIS_DEFAULT_RECEIVE_QUEUE_ID に設定してください。

  • VPortId メンバーは、VPort に関連付けられている識別子に設定してください。 上位ドライバーは、次のいずれかの方法で VPort 識別子を取得します:

NDIS は、ミニポート ドライバーの OID_RECEIVE_FILTER_ENUM_FILTERS および OID_RECEIVE_FILTER_PARAMETERS メソッド OID リクエストを処理します。 NDIS は、OID_RECEIVE_FILTER_Standard Edition T_FILTER OID リクエストから受信したデータの内部キャッシュから情報を取得しました。