附加篩選模組
若要起始將篩選模組插入驅動程式堆疊的程式,NDIS 會呼叫篩選驅動程式的 FilterAttach 函式。 在 FilterAttach 函式執行開始時,篩選模組會進入 附加 狀態。 如需將篩選模組附加至驅動程式堆疊的詳細資訊,請參閱 啟動驅動程式堆疊。
篩選驅動程式會使用控制碼,NDIS 會在所有參考此篩選模組的未來NdisXxx函式呼叫中,傳遞FilterAttach的NdisFilterHandle參數。 這類函式包括狀態指示、傳送要求、接收指示和 OID 要求。
當篩選模組處於 附加 狀態時,驅動程式:
建立篩選模組的內容區域,並配置緩衝集區和其他篩選模組特定資源。 如需緩衝集區的詳細資訊,請參閱 篩選驅動程式緩衝區管理。
使用 NDIS 傳遞至FilterAttach的NdisFilterHandle值,呼叫NdisFSetAttributes函式。 NdisFSetAttributes的FilterModuleCoNtext參數會指定此篩選模組的篩選驅動程式內容區域。 NDIS 會將此內容區域傳遞至篩選驅動程式的 FilterXxx 函式。
或者,從登錄讀取此篩選模組的組態參數。 如需詳細資訊,請參閱 存取篩選驅動程式的組態資訊。
如果上述作業成功完成,篩選模組會處於 [已暫停 ] 狀態。
如果上述作業失敗,篩選驅動程式必須釋放它在 FilterAttach 函式中配置的任何資源,並將篩選模組傳回至 [中斷連結 ] 狀態。
傳回NDIS_STATUS_SUCCESS或適當的失敗碼。 如果驅動程式傳回失敗碼,NDIS 會終止驅動程式堆疊。
注意 登錄可以包含旗標,指定篩選模組是選擇性的。 如果選擇性篩選模組未附加,NDIS 不會終止驅動程式堆疊的其餘部分。
篩選驅動程式無法發出傳送要求、指出已接收的資料、提出 OID 要求,或從 附加 狀態提出狀態指示。 執行中和暫停狀態支援傳送和接收作業。 暫停、重新開機、執行中和暫停狀態支援 OID 要求和狀態指示。
NDIS 會呼叫 FilterDetach 函式,卸離與 FilterAttach連結的 NDIS 篩選模組。 如需詳細資訊,請參閱 中斷連結篩選模組。