OID_GEN_CURRENT_PACKET_FILTER
查詢時,OID_GEN_CURRENT_PACKET_FILTER OID 會報告從迷你埠驅動程式接收指示中的網路封包類型。
設定時,OID_GEN_CURRENT_PACKET_FILTER OID 會指定通訊協定從迷你埠驅動程式接收指示的 net 封包類型。
版本資訊
Windows Vista 和更新版本的 Windows
支援。
NDIS 6.0 和更新版本的迷你埠驅動程式
Mandatory。 (請參閱一節)
備註
若為 NDIS 6.0 和更新版本的迷你埠驅動程式,則不會要求查詢,而且集合是必要專案。 NDIS 會處理迷你埠驅動程式的查詢。 迷你埠驅動程式會在初始化期間報告封包篩選資訊。
迷你埠驅動程式會將其中型類型報告為系統提供篩選程式庫的一種類型。 封包篩選會使用 OR 作業來包含下列類型:
NDIS_PACKET_TYPE_DIRECTED
導向封包。 導向封包包含等於 NIC 月臺位址的目的地位址。
NDIS_PACKET_TYPE_MULTICAST
多播位址封包傳送至多播地址清單中的位址。
通訊協定驅動程式可以藉由指定多播或功能位址封包類型來接收乙太網路 (802.3) 多播封包。 設定多播通訊清單或功能位址會決定 NIC 驅動程式啟用的多播位址群組。
NDIS_PACKET_TYPE_ALL_MULTICAST
所有多播位址封包,而不只是多播通訊清單中列舉的封包。
NDIS_PACKET_TYPE_BROADCAST
廣播封包。
NDIS_PACKET_TYPE_PROMISCUOUS
指定所有封包,不論是否啟用 VLAN 篩選,以及 VLAN 識別碼是否相符。
NDIS_PACKET_TYPE_ALL_FUNCTIONAL
所有功能位址封包,而不只是目前功能位址中的封包。
NDIS_PACKET_TYPE_ALL_LOCAL
所有由已安裝通訊協定傳送的封包,以及由指定 NdisBindingHandle 所識別的 NIC 所指示的所有封包。
NDIS_PACKET_TYPE_FUNCTIONAL
傳送至目前功能位址中包含之位址的功能位址封包。
NDIS_PACKET_TYPE_GROUP
傳送至目前群組位址的封包。
NDIS_PACKET_TYPE_MAC_FRAME
權杖通道 NIC 收到的 NIC 驅動程式框架。
NDIS_PACKET_TYPE_SMT
FDDI NIC 收到的 SMT 封包。
NDIS_PACKET_TYPE_SOURCE_ROUTING
所有來源路由封包。 如果通訊協定驅動程式設定此位,NDIS 程式庫會嘗試作為來源路由橋接器。
對於媒體類型 為NdisMedium802_3 或 NdisMedium802_5的迷你埠介面卡,NDIS 會在 呼叫 NdisOpenAdapterEx 函式期間停用封包接收,以及多播和功能位址。
對於具有所有其他媒體類型的迷你埠介面卡,通訊協定驅動程式可以在 NdisOpenAdapterEx 呼叫期間隨時開始接收封包。 請注意,通訊協定甚至可以在 NdisOpenAdapterEx 傳回之前接收封包。 一般而言,封包篩選是最佳做法,而且通訊協定驅動程式必須準備好處理接收指示,即使封包篩選器為零也一般。
針對查詢,NDIS 會傳回使用 OR 運算子合併的系結篩選。
針對集合,指定的封包篩選會取代系結的先前封包篩選。 如果迷你埠驅動程式先前已啟用封包類型,但通訊協定驅動程式未在新篩選中指定該類型,通訊協定驅動程式將不會接收此類型的封包。
對於媒體類型 為NdisMedium802_3 或 NdisMedium802_5的迷你埠介面卡,如果迷你埠驅動程式未設定特定封包類型的位以回應此查詢,通訊協定驅動程式將不會接收該類型的封包。 因此,通訊協定驅動程式可以使用零的篩選準則呼叫 NdisOidRequest 或 NdisCoOidRequest 函式來停用封包接收。
對於具有所有其他媒體類型的迷你埠介面卡,NDIS 不會檢查封包類型。 針對這些媒體類型,通訊協定驅動程式無法藉由指定零的篩選來停用封包接收。
呼叫迷你埠驅動程式的 MiniportInitializeEx 函式時,迷你埠驅動程式的封包篩選器應該設定為零。 當封包篩選準則為零時,會停用接收指示。 在迷你埠驅動程式的 MiniportInitializeEx 函式傳回之後,通訊協定驅動程式可以將OID_GEN_CURRENT_PACKET_FILTER設定為非零值,藉此讓迷你埠驅動程式指出該通訊協定收到的封包。
如果以 NDIS_PACKET_TYPE_PROMISCUOUS 位啟用不交集模式,通訊協定驅動程式仍會繼續接收封包,即使傳送的網路節點未將其導向至該節點也一樣。 接著,NDIS 會傳送通訊協定驅動程式所有 NIC 接收的封包。
設定特定封包篩選器並不會變更系結至相同 NIC (或更新) 版本之其他通訊協定驅動程式的封包篩選器。 例如,如果其中一個系結通訊協定啟用不對稱模式,其他系結通訊協定驅動程式就不會收到它們未使用自己的封包篩選器特別要求的封包。
原生 802.11 封包篩選器
Native 802.11 迷你埠驅動程式只能支援下列標準封包篩選類型:
NDIS_PACKET_TYPE_DIRECTED
NDIS_PACKET_TYPE_MULTICAST
NDIS_PACKET_TYPE_BROADCAST
NDIS_PACKET_TYPE_PROMISCUOUS
啟用時,這些標準封包篩選僅適用于 802.11 資料封包。
此外,Native 802.11 迷你埠驅動程式必須支援下列封包篩選類型,這些類型專屬於 Native 802.11 媒體:
NDIS_PACKET_TYPE_802_11_RAW_DATA
802.11 媒體存取控制 (MAC) 通訊協定資料單位 (MPDU) 框架,其中包含 802.11 站所接收格式的所有資料。 設定此篩選器時,驅動程式必須先指出每個未修改的 MPDU 片段,才能指出從 MPDU 片段重新組譯的 MSDU (MSDU) 封包。
如果 MPDU 片段已加密,則它不得在指出之前解密片段。 不過,迷你埠驅動程式必須先解密每個 MPDU 片段,才能重新組譯並指出 MSDU 封包。
如果啟用,此篩選類型只會影響其他標準封包篩選器,例如NDIS_PACKET_TYPE_DIRECTED或NDIS_PACKET_TYPE_BROADCAST。
如需指示原始 802.11 資料封包之方法的詳細資訊,請參閱 指出原始 802.11 封包。
NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT
導向 802.11 管理封包。 導向封包包含等於 NIC 月臺位址的目的地位址。
NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT
多播 802.11 管理封包傳送至多播地址清單中的位址。
NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT
802.11 月臺接收的所有多播 802.11 管理封包,不論 802.11 MAC 標頭中的目的地位址是否在多播通訊清單中。
NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT
廣播 802.11 月臺收到的 802.11 管理封包。
NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT
802.11 月臺收到的所有 802.11 管理封包。
NDIS_PACKET_TYPE_802_11_RAW_MGMT
802.11 MPDU 管理框架,其中包含 802.11 月臺所接收格式的所有資料。 設定此篩選器時,驅動程式必須先指出每個未修改的 MPDU 片段,才能指出 MAC 管理通訊協定資料單位 (MMPDU) 從 MPDU 片段重新組譯的封包。
如果啟用,此篩選類型只會影響其他 802.11 管理封包篩選器,例如NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT或NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT。
如需指示原始 802.11 管理封包之方法的詳細資訊,請參閱 指出原始 802.11 封包。
NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL
導向 802.11 控制封包。 導向封包包含等於 NIC 月臺位址的目的地位址。
NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL
802.11 月臺收到的廣播 802.11 控制封包。
NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL
802.11 月臺收到的所有 802.11 控制封包。
如果迷你埠驅動程式在 Native 802.11 網路監視器中運作, (NetMon) 或可延伸存取點 (AP) 模式,則驅動程式必須透過一組OID_GEN_CURRENT_PACKET_FILTER要求啟用下列封包篩選。
NDIS_PACKET_TYPE_PROMISCUOUS
NDIS_PACKET_TYPE_802_11_RAW_DATA
NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT
NDIS_PACKET_TYPE_802_11_RAW_MGMT
NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL
除了 NetMon 以外,其他原生 802.11 模式中執行的迷你埠驅動程式不得啟用這些封包篩選設定,但NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL除外。 在 NetMon 模式中未運作的迷你埠驅動程式,可以選擇性地透過一組OID_GEN_CURRENT_PACKET_FILTER要求來啟用NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL。
注意 當迷你埠驅動程式處於 NetMon 以外的 Native 802.11 模式,而且已設定OID_GEN_CURRENT_PACKET_FILTER時,如果 OID 資料中已啟用任何不寬鬆或原始篩選設定,驅動程式就不能失敗設定要求。
如需 NetMon 和 ExtAP 作業模式的詳細資訊,請參閱下列主題:
規格需求
標頭 |
Ntddndis.h (包括 Ndis.h) |