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 は、フィルター スタック内のすべてのフィルターのインターフェイス情報を正常に返すために必要なバイトの合計数を書き込みます。
[in, out] BytesWritten
呼び出し元が指定した変数へのポインター。NDIS は、InterfaceBufferのメモリに書き込まれた合計バイト数を書き込みます。
戻り値
NdisEnumerateFilterModules は、次のいずれかの状態値を返します。
リターン コード | 形容 |
---|---|
|
操作が正常に完了しました。 |
|
NdisEnumerateFilterModules 失敗しました。これは、NdisHandle パラメーターが有効な NDIS ミニポート アダプター、プロトコル バインド、またはフィルター モジュール ハンドルではないためです。 |
|
NdisEnumerateFilterModules 失敗しました。これは、InterfaceBuffer パラメーターで指定されたバッファーが短すぎて NDIS ですべての情報を返さなかったためです。 部分的な結果が InterfaceBuffer 書き込まれた場合、BytesWritten パラメーターの値には部分結果の長さが含まれます。 |
備考
NDIS ミニポート ドライバー、プロトコル ドライバー、またはフィルター ドライバーは、フィルター スタック内のすべてのフィルターを列挙する NdisEnumerateFilterModules 関数を呼び出すことができます。
NdisEnumerateFilterModules は、フィルター モジュールの一覧を返し、ドライバー スタックの上部から下部に中間ドライバーをフィルター処理します。 たとえば、フィルター モジュール (F1 および F2) がミニポート アダプター (M1) に接続され、F2 が F1 より上にある場合、NdisEnumerateFilterModules は、次の順序で一覧を返します。 M1 にバインドされているフィルター中間ドライバー (M2) が存在する場合、M2 が F2 より上にあり、別のフィルター (F3) が M2 にアタッチされている場合は、NdisEnumerateFilterModules は、F3、M2、F2、F1 の順序でフィルター リストを返します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.0 以降でサポートされています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | ndis.h (Ndis.h を含む) |
ライブラリ | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | Irql_Filter_Driver_Function(ndis) |