過度配置驅動程式發出 OID 集合要求,OID_RECEIVE_FILTER_CLEAR_FILTER以清除網路適配器上的接收篩選。
NDIS_OID_REQUEST 結構 InformationBuffer 成員包含 NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 結構的指標。
言論
NDIS 接收篩選器用於下列 NDIS 介面:
NDIS 封包聯合。 如需如何在此介面中使用接收篩選器的詳細資訊,請參閱 管理封包聯合接收篩選。
單一根目錄 I/O 虛擬化 (SR-IOV)。 如需如何在此介面中使用接收篩選的詳細資訊,請參閱在虛擬埠上設定接收篩選器 。
虛擬機佇列 (VMQ)。 如需如何在此介面中使用接收篩選的詳細資訊,請參閱 設定和清除 VMQ 篩選。
OID_RECEIVE_FILTER_CLEAR_FILTER的 OID 集合要求對於支援 NDIS 封包聯合、SR-IOV 或 VMQ 介面的迷你埠驅動程式而言是必要的。
過度配置驅動程式,例如 NDIS 通訊協定或篩選驅動程式,會使用OID_RECEIVE_FILTER_CLEAR_FILTER集要求來清除先前設定的篩選。 只有設定接收篩選條件的驅動程式可以清除它。
過度配置驅動程式會藉由將 NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 結構 成員的 FilterId 設定為篩選的標識碼,以清除接收篩選。 驅動程式從先前的 OID 方法要求取得篩選識別碼,OID_RECEIVE_FILTER_SET_FILTER。
NDIS 封包聯合的其他指示
下列點適用於支援 NDIS 封包聯合的迷你埠和過度驅動程式:
- 過度部署的驅動程式必須先清除它在迷你埠驅動程式上設定的所有接收篩選器,然後才解除系結或中斷鏈接驅動程式。
SR-IOV 介面的其他指導方針
下列幾點適用於支援 SR-IOV 介面的迷你埠和過度驅動程式:
過度部署的驅動程序必須先清除它在 SR-IOV VPort 上設定的所有篩選,才能釋放 VPort。 過度配置驅動程式也必須清除它在預設 VPort 上設定的所有篩選,然後才將其系結關閉至網路適配器。
如果迷你埠驅動程式已完成 OID_RECEIVE_FILTER_CLEAR_FILTER 的 OID 要求,則不得指出非預設 VPort 上的封包,以清除 VPort 上的最後一個篩選。
注意 迷你埠驅動程式也不得指出非預設 VPort 上的封包,如果它已完成 OID_NIC_SWITCH_DELETE_VPORT 的 OID 要求以釋放 VPort。
VMQ 介面的其他指導方針
下列幾點適用於支援 VMQ 介面的迷你連接埠和過度驅動程式:
過度配置驅動程式必須先清除 VMQ 接收佇列上設定的所有篩選,才能釋放佇列。 過度配置驅動程式也必須清除它在預設或卸除佇列上設定的所有篩選,然後才將其系結關閉至網路適配器。
如果迷你埠驅動程式已完成 OID_RECEIVE_FILTER_CLEAR_FILTER的 OID 要求,則不能指出接收佇列上的封包,以清除接收佇列上的最後一個篩選。
注意 迷你埠驅動程式也不得指出接收佇列上的封包,如果它已完成 OID_RECEIVE_FILTER_FREE_QUEUE 的 OID 要求以釋放接收佇列。
傳回狀態代碼
迷你埠驅動程式的 MiniportOidRequest 函式會針對此要求傳回下列其中一個值:
| 術語 | 描述 |
|---|---|
NDIS_STATUS_SUCCESS |
迷你埠驅動程式已成功完成要求。 |
NDIS_STATUS_PENDING |
迷你埠驅動程式會以異步方式完成要求。 迷你埠驅動程式完成所有處理之後,它必須藉由呼叫 NdisMOidRequestComplete 函式來成功要求,傳遞 Status 參數的 NDIS_STATUS_SUCCESS。 |
NDIS_STATUS_NOT_ACCEPTED |
迷你埠配接器已意外移除。 |
NDIS 會針對此要求傳回下列其中一個狀態代碼:
NDIS_STATUS_SUCCESS
已成功清除指定的篩選。
NDIS_STATUS_PENDING
要求擱置完成。 NDIS 會在要求完成之後,將最終狀態代碼和結果傳遞至呼叫端的 OID 要求完成處理程式。
NDIS_STATUS_FILE_NOT_FOUND
篩選標識碼無效。
NDIS_STATUS_INVALID_LENGTH
信息緩衝區太小。 NDIS 會設定 DATA。SET_INFORMATION。BytesNeededNDIS_OID_REQUEST 結構中的成員,以所需的緩衝區大小下限。
要求
版本 |
NDIS 6.20 和更新版本支援。 |
頁眉 |
Ntddndis.h (包括 Ndis.h) |