共用方式為


判斷網路介面卡的 VMQ 功能

NDIS 提供介面來判斷網路介面卡的 VMQ 功能,例如:

  • 網路介面卡的一般篩選功能。

  • 支援的 VM 佇列功能。

  • Lookahead 支援,允許將網路資料記憶體分割成兩個不同的緩衝區。

    注意 從 NDIS 6.30 開始,不再支援將封包資料分割成個別的外觀緩衝區。

迷你埠驅動程式會在網路介面卡初始化期間提供下列資訊給 NDIS:

  • 網路介面卡可支援的 VMQ 硬體功能。

  • 目前已啟用的 VMQ 功能。

  • 在網路介面卡上啟用或停用的全域接收篩選功能。

過度配置驅動程式和應用程式可以使用下列 OID 查詢要求來取得網路介面卡功能。

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES

OID_RECEIVE_FILTER_CURRENT_CAPABILITIES

OID_RECEIVE_FILTER_GLOBAL_PARAMETERS

NDIS 會處理迷你埠驅動程式的這些 OID 查詢要求。 因此,不會要求迷你埠驅動程式的查詢。 NDIS 會在初始化期間報告目前啟用的網路介面卡接收 VMQ 功能。 因此,過度處理驅動程式不需要查詢這些 OID。

NDIS_RECEIVE_FILTER_CAPABILITIES結構會指定網路介面卡的篩選功能。 此結構會以下列方式使用:

NDIS_RECEIVE_FILTER_CAPABILITIES結構包含下列資訊:

EnabledFilterTypes
支援的接收篩選類型。 NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED旗標會指定已啟用虛擬機器佇列 (VMQ) 篩選。

EnabledQueueTypes
支援的接收佇列類型。 NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED旗標會指定已啟用虛擬機器 (VM) 佇列。

NumQueues
網路介面卡支援的接收佇列數目。 若要支援 VMQ,此數目必須等於或小於 NIC 支援的單播 MAC 位址數目。 此數位不得包含預設佇列。

注意 網路介面卡支援的單播 MAC 位址或 VM 佇列數目不包含相關聯 NIC 的 MAC 位址。

SupportedQueueProperties
網路介面卡支援的佇列屬性。 NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED旗標會指定網路介面卡提供支援 VMQ 篩選的最低需求。 具有 VMQ 功能的 NIC 必須為每個接收佇列提供 MSI-X 資料表專案。 因此,VMQ 迷你埠驅動程式必須設定NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED旗標。

SupportedFilterTests
迷你埠驅動程式支援的篩選測試作業。 例如,網路介面卡支援測試選取的標頭欄位,以判斷它是否等於指定的值。 VMQ 迷你埠驅動程式必須設定NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED旗標。

SupportedHeaders
迷你埠驅動程式可以檢查的網路封包標頭類型。 例如,網路介面卡可以檢查網路封包的 MAC 標頭。 MAC 標頭包含封包類型、目的地和來源 MAC 位址、VLAN 識別碼,以及優先順序標記欄位。 VMQ 迷你埠驅動程式必須設定NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED旗標。

SupportedMacHeaderFields
迷你埠驅動程式可以檢查的 MAC 標頭欄位類型。 VMQ 迷你埠驅動程式必須設定NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED旗標。

MaxMacHeaderFilters
迷你埠驅動程式支援的 MAC 標頭篩選數目上限。 應該至少有數目的標頭篩選準則,因為有 VM 佇列。

MaxQueueGroups
此成員會保留給 NDIS。

MaxQueuesPerQueueGroup
此成員會保留給 NDIS。

MinLoSplitSize
網路介面卡支援尋找封包區段的大小下限,以位元組為單位。

注意 從 NDIS 6.30 開始,不再支援將封包資料分割成個別的外觀緩衝區。 支援 NDIS 6.30 或更新版本的迷你埠驅動程式必須將這個成員設定為零。

MaxLoSplitSize
網路介面卡支援尋找封包區段的大小上限,以位元組為單位。

注意 從 NDIS 6.30 開始,不再支援將封包資料分割成個別的外觀緩衝區。 支援 NDIS 6.30 或更新版本的迷你埠驅動程式必須將這個成員設定為零。

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES OID 查詢成功傳回之後,NDIS_OID_REQUEST結構的InformationBuffer成員會包含NDIS_RECEIVE_FILTER_CAPABILITIES結構的指標。 這些功能可能包括 INF 檔案設定目前停用的 VMQ 硬體功能,或透過 [ 進階 屬性] 頁面停用。 如需 VMQ INF 檔案設定的詳細資訊,請參閱 VMQ Standard INF 專案

NDIS 迷你埠驅動程式會在NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES結構的HardwareReceiveFilterCapabilities成員中,提供接收篩選硬體功能。

OID_RECEIVE_FILTER_CURRENT_CAPABILITIES OID 查詢成功傳回之後,NDIS_OID_REQUEST結構的InformationBuffer成員會包含NDIS_RECEIVE_FILTER_CAPABILITIES結構的指標。 這些功能包括目前啟用的 VMQ 功能。

NDIS 迷你埠驅動程式會在NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES結構的CurrentReceiveFilterCapabilities成員中,提供目前啟用的接收篩選功能。

NDIS 會報告目前啟用的基礎網路介面卡接收篩選功能,以在系結作業期間,將NDIS_BIND_PARAMETERS結構的ReceiveFilterCapabilities成員中的通訊協定驅動程式過度配置。

NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS結構用於OID_RECEIVE_FILTER_GLOBAL_PARAMETERS查詢 OID,以取得目前的全域接收篩選設定。

NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS包含下列資訊:

EnabledFilterTypes
已啟用接收篩選的類型。 NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED旗標會指定已啟用虛擬機器佇列 (VMQ) 篩選。

EnabledQueueTypes
已啟用的接收佇列類型。 NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED旗標會指定已啟用虛擬機器 (VM) 佇列。

OID_RECEIVE_FILTER_GLOBAL_PARAMETERS OID 查詢成功傳回之後,NDIS_OID_REQUEST結構的InformationBuffer成員會包含NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS結構的指標。 NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS 結構會指定網路介面卡上啟用或停用的接收篩選功能。

NDIS 通訊協定驅動程式會使用OID_RECEIVE_FILTER_GLOBAL_PARAMETERS來查詢目前的通用群組態參數,以接收網路介面卡上的篩選。 例如,通訊協定驅動程式可以使用這個 OID 來判斷是否啟用或停用接收篩選或接收佇列的類型。