NDIS_FILTER_INTERFACE 構造体 (ndis.h)

NDIS_FILTER_INTERFACE構造体は、NDIS フィルターの属性を定義します。

構文

typedef struct _NDIS_FILTER_INTERFACE {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  ULONG              FilterType;
  ULONG              FilterRunType;
  NET_IFINDEX        IfIndex;
  NET_LUID           NetLuid;
  NDIS_STRING        FilterClass;
  NDIS_STRING        FilterInstanceName;
} NDIS_FILTER_INTERFACE, *PNDIS_FILTER_INTERFACE;

メンバー

Header

フィルター インターフェイス構造体の NDIS_OBJECT_HEADER 構造体。

NDIS は、ヘッダーがNDIS_OBJECT_TYPE_DEFAULTに指定する構造体の Type メンバーを設定します。

NdisEnumerateFilterModules に渡されるハンドルが NDIS 6.30 以降のオブジェクトに属している場合、NDIS は Revision を NDIS_FILTER_INTERFACE_REVISION_2 に、Size を NDIS_SIZEOF_FILTER_INTERFACE_REVISION_2 に設定します。

NdisEnumerateFilterModules に渡されるハンドルが NDIS 6.20 以前のオブジェクトに属している場合、NDIS はリビジョンを NDIS_FILTER_INTERFACE_REVISION_1 に、サイズを NDIS_SIZEOF_FILTER_INTERFACE_REVISION_1 に設定します。

Flags

フィルターを実装する NDIS ドライバーの種類を定義するビット フィールド。 このメンバーは、次のいずれかのドライバーの種類に設定する必要があります。

NDIS_FILTER_INTERFACE_IM_FILTER

フィルターは、NDIS 5.1 以前のフィルター中間ドライバーに実装されています。

NDIS_FILTER_INTERFACE_LW_FILTER

フィルターは、NDIS 6.0 以降のフィルター ドライバーに実装されます。

NDIS_FILTER_INTERFACE_SEND_BYPASS

現在、フィルターは送信パスにアタッチされていません。 このフラグは、 Header.Revision が NDIS_FILTER_INTERFACE_REVISION_2 以上の場合にのみ設定されます。

NDIS_FILTER_INTERFACE_RECEIVE_BYPASS

現在、フィルターは受信パスにアタッチされていません。 このフラグは、 Header.Revision が NDIS_FILTER_INTERFACE_REVISION_2 以上の場合にのみ設定されます。

FilterType

フィルターの動作の種類。 この型は、次のいずれかの値である必要があります。

NdisFilterTypeMonitoring = 1

監視フィルター。

NdisFilterTypeModifying = 2

変更フィルター。

FilterRunType

フィルターのランタイム添付ファイルの優先度の種類。 この型は、次のいずれかの値である必要があります。

NdisFilterRunTypeMandatory = 1

必須のフィルター。 フィルターがドライバー スタックに接続されていない場合、NDIS はスタックの残りの部分を破棄します。

NdisFilterRunTypeOptional = 2

省略可能なフィルター。 フィルターがドライバー スタックに接続されていない場合、NDIS はスタックの残りの部分を破棄しません。

IfIndex

フィルター モジュールの NDIS インターフェイス インデックス。

NetLuid

フィルター モジュールに割り当てられる NET_LUID 値。 NET_LUIDはインターフェイス名 (RFC 2863 の ifName) と同じです。

FilterClass

フィルター クラスを指定する UNICODE 文字列。 この文字列は、 FilterClass INF ファイル エントリと同じです。

FilterInstanceName

フィルター インスタンス名。

注釈

次に、 NdisEnumerateFilterModules 関数は、 ドライバー スタック内のフィルターごとに 1 つのNDIS_FILTER_INTERFACE構造体を返します。 Flags メンバーは、NDIS 5.1 以前のフィルター中間ドライバーまたは NDIS 6.0 以降の NDIS フィルター モジュールとしてフィルターを識別します。

軽量フィルターは、NdisFRestartFilter を呼び出し、NdisSetOptionalHandlersNDIS_FILTER_PARTIAL_CHARACTERISTICS構造体を提供することで、送信パスまたは受信パスに動的に挿入または削除できます。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
Header ndis.h (Ndis.h を含む)

こちらもご覧ください

NDIS_OBJECT_HEADER

NET_LUID

NdisEnumerateFilterModules