NdisEnumerateFilterModules 関数 (ndis.h)

NdisEnumerateFilterModules 関数は、フィルター スタック内のすべてのフィルター モジュールとフィルター中間ドライバー インスタンスを列挙します。

構文

NDIS_STATUS NdisEnumerateFilterModules(
  [in]      NDIS_HANDLE NdisHandle,
  [in]      PVOID       InterfaceBuffer,
  [in]      ULONG       InterfaceBufferLength,
  [in, out] PULONG      BytesNeeded,
  [in, out] PULONG      BytesWritten
);

パラメーター

[in] NdisHandle

呼び出し元の初期化中に取得された NDIS ハンドル。 このハンドルの詳細については、「 プール ハンドルの取得」を参照してください。

ハンドルが NDIS ミニポート アダプター ハンドルの場合、NDIS は、ミニポート アダプターに現在接続されているすべてのインターフェイス モジュールに関する情報を返します。最上位のフィルター モジュールから始まります。

ハンドルが NDIS バインディング ハンドルの場合、NDIS は、基になるミニポート アダプターに現在接続されているすべてのフィルター モジュールに関する情報を返します。最上位のフィルター モジュールから始まります。

ハンドルが NDIS フィルター モジュール ハンドルの場合、NDIS は、指定されたフィルター モジュールがアタッチされている基になるミニポート アダプターに現在接続されているすべてのフィルター モジュールに関する情報を返します。これは、最上位のフィルター モジュールから始まります。

[in] InterfaceBuffer

呼び出し元によって割り当てられたメモリ ブロックへのポインター。NDIS は、フィルター スタック内のすべてのフィルター モジュールの情報を返し、最上位のフィルターから始まります。 このバッファーには 、スタック 内のフィルター モジュールごとに 1 つずつ、0 個以上 のNDIS_FILTER_INTERFACE 構造体が続くNDIS_ENUM_FILTERS構造体が含まれています。

[in] InterfaceBufferLength

InterfaceBuffer メンバーの呼び出し元が指定したメモリ ブロックの長さ (バイト単位)。

[in, out] BytesNeeded

呼び出し元が指定した変数へのポインター。NDIS は、フィルター スタック内のすべてのフィルターのインターフェイス情報を正常に返すために NDIS が必要とするバイトの合計数を書き込みます。

[in, out] BytesWritten

呼び出し元が指定した変数へのポインター。NDIS は InterfaceBuffer でメモリに書き込んだ合計バイト数を書き込みます。

戻り値

NdisEnumerateFilterModules は、 次のいずれかの状態値を返します。

リターン コード 説明
NDIS_STATUS_SUCCESS
操作は正常に完了しました。
NDIS_STATUS_INVALID_PARAMETER
NdisHandle パラメーターが有効な NDIS ミニポート アダプター、プロトコル バインド、またはフィルター モジュール ハンドルでなかったため、NdisEnumerateFilterModules が失敗しました。
NDIS_STATUS_BUFFER_TOO_SHORT
InterfaceBuffer パラメーターで指定されたバッファーが短すぎて NDIS がすべての情報を返すことができなかったため、NdisEnumerateFilterModules が失敗しました。 InterfaceBuffer で部分的な結果が書き込まれた場合、BytesWritten パラメーターの値には部分的な結果の長さが含まれます。

注釈

NDIS ミニポート ドライバー、プロトコル ドライバー、またはフィルター ドライバーは、フィルター スタック内のすべてのフィルターを列挙する NdisEnumerateFilterModules 関数を呼び出すことができます。

NdisEnumerateFilterModules は、フィルター モジュールの一覧を返し、ドライバー スタックの上部から下部に中間ドライバーをフィルター処理します。 たとえば、フィルター モジュール (F1 と F2) がミニポート アダプター (M1) に接続され、F2 が F1 より上の場合、 NdisEnumerateFilterModules は F2、F1 の順序で一覧を返します。 M1 にバインドされているフィルター中間ドライバー (M2) も存在し、M2 が F2 より上にあり、別のフィルター (F3) が M2 にアタッチされている場合、 NdisEnumerateFilterModules は次の順序でフィルター リストを返します: F3、M2、F2、F1。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム デスクトップ
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 Irql_Filter_Driver_Function(ndis)

こちらもご覧ください

NDIS_ENUM_FILTERS

NDIS_FILTER_INTERFACE