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 會傳回篩選堆疊中所有篩選模塊的資訊,從最上層篩選開始。 這個緩衝區包含一個 NDIS_ENUM_FILTERS 結構,後面接著零個或多個 NDIS_FILTER_INTERFACE 結構,一個用於堆疊中的每個篩選模組。
[in] InterfaceBufferLength
InterfaceBuffer 成員上呼叫端所提供記憶體區塊的長度,以位元組為單位。
[in, out] BytesNeeded
呼叫端提供的變數指標,其中 NDIS 會寫入 NDIS 成功傳回篩選堆疊中所有篩選條件的介面資訊所需的位元組總數。
[in, out] BytesWritten
呼叫端提供的變數指標,其中 NDIS 會寫入 NDIS 在 InterfaceBuffer 記憶體中寫入的總位元組數。
傳回值
NdisEnumerateFilterModules 會傳回下列其中一個狀態值:
傳回碼 | Description |
---|---|
|
作業已成功完成。 |
|
NdisEnumerateFilterModules 失敗,因為 NdisHandle 參數不是有效的 NDIS 迷你埠配接器、通訊協議系結或篩選模組句柄。 |
|
NdisEnumerateFilterModules 失敗,因為 在InterfaceBuffer 參數提供的緩衝區太短,NDIS 無法傳回所有資訊。 如果在 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 和更新版本支援。 |
目標平台 | 桌面 |
標頭 | ndis.h (包括 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | Irql_Filter_Driver_Function (ndis) |