列舉關鍵詞
NDIS 6.0 和更新版本的 NDIS 為網路裝置的迷你埠驅動程式提供標準化列舉關鍵詞。 列舉關鍵詞會與功能表中顯示為清單的值相關聯。
下列範例顯示列舉關鍵詞的 INF 檔案定義。
HKR, Ndi\params\<SubkeyName>, ParamDesc, 0, "%<SubkeyName>%"
HKR, Ndi\params\<SubkeyName>, Type, 0, "enum"
HKR, Ndi\params\<SubkeyName>, Default, 0, "3"
HKR, Ndi\params\<SubkeyName>, Optional, 0, "0"
HKR, Ndi\params\<SubkeyName>\enum, "0", 0, "%Disabled%"
HKR, Ndi\params\<SubkeyName>\enum, "1", 0, "%Tx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "2", 0, "%Rx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "3", 0, "%Rx & Tx Enabled%"
一般列舉關鍵詞為:
*SpeedDuplex
裝置支援的速度和雙工設定。 裝置 INF 檔案應該只列出相關聯裝置支持的設定。 也就是說,對於只能支援全雙工模式的乙太網路 10/100 裝置,不應在相關聯的 INF 檔案中列出 Gigabit 或更高速度或半雙工的設定。
未明確定義且列舉值為 0 到 10 的速度值,可能會設定為直接以 Mbps 為單位的數位。 直接值至少必須是 1,000 Mbps (1 Gbps) 和更新版本。 以下是一些直接指定速度的範例:
SpeedDuplex 值 | 產生的速度 |
---|---|
1,000 | 1 Gbps |
10,000 | 10 Gbps |
25,000 | 25 Gbps |
50,000 | 50 Gbps |
100,000 | 100 Gbps |
*FlowControl
裝置在傳送或接收路徑中啟用或停用流程控制的能力。
注意乙太網路裝置目前支援流量控制,而 LAN 的 Windows 8 內建驅動程式預設會啟用流量控制。 當核心調試程序連結至其中一個 LAN 適配卡時,NIC 會開始將流程控制暫停畫面推送至網路。 大部分的網路交換器會暫時關閉連線到相同中樞之所有其他計算機的網路來做出回應。 這是常見的開發案例,而用戶體驗既不想要又難以診斷。
注意 用戶端和伺服器預設值不相同;請參閱下面的預設值數據表。
因此,在 Windows 8 和更新版本中,NDIS 會在計算機上啟用偵錯時自動停用流程控制 (,例如,在命令行) 輸入 bcdedit /set 偵錯。 啟用核心偵錯且迷你埠會呼叫 NdisReadConfiguration 並 傳遞 關鍵詞 參數的 “*FlowControl” 時,NDIS 會覆寫設定的值並傳回零。
如果您需要在偵錯時啟用流量控制,NDIS 會提供 AllowFlowControlUnderDebugger 登錄值,讓您執行此動作。 AllowFlowControlUnderDebugger 登錄值可防止 NDIS 停用流程控制,並允許 NIC 保留其設定的行為。 您可以在下列登入機碼下找到:
\ HKEY_LOCAL_MACHINE系統\CurrentControlSet\服務\Ndis\參數
將此登錄值設定為 0x00000001。
如果不存在,您可以使用 AllowFlowControlUnderDebugger 名稱建立值, 並將它設定 為 REG_DWORD類型,並將其設定為 0x00000001。
*PriorityVLANTag
值,指出裝置是否已啟用或停用 802.1Q 標籤來插入封包優先順序和虛擬 VLAN (VLAN) 的能力。 此關鍵詞不會指出裝置已啟用或停用封包優先順序或 VLAN 標籤。 相反地,它會描述下列各項:
迷你埠驅動程序應該從所有接收封包中移除 802.1Q 標頭,而不論 *PriorityVLANTag 設定為何。 如果 802.1Q 標頭保留在封包中,其他驅動程式可能無法正確剖析封包。
如果在接收路徑上啟用 Rx 旗標,迷你埠驅動程式應該將移除的 802.1Q 標頭複製到 OOB。
否則,如果停用 Rx 旗標,迷你埠驅動程式就不應該將移除的 802.1Q 標頭複製到 OOB。
如果在傳輸路徑上啟用 Tx 旗標,迷你連接埠驅動程式應該執行下列動作:
- 將 802.1Q 標頭插入每個傳出封包,並在 OOB) 中存在任何非零數據時,填入 OOB (的數據。
- 在 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES (NDIS_MAC_OPTION_8021P_PRIORITY 和 NDIS_MAC_OPTION_8021Q_VLAN) 中公告適當的 MacOptions。
否則,如果 Tx 旗標已停用,則:
- 迷你埠篩選不應接受 OOB (中的 802.1Q 資訊,因此不會插入任何標記) 。
- 迷你埠篩選不應在 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES中公告適當的MacOptions。
注意 如果迷你埠驅動程序支援 NDIS 服務品質 (QoS) ,則也必須讀取 *QOS 關鍵詞值。 根據 *QOS 關鍵詞值, *PriorityVLANTag 關鍵詞值會以不同的方式解譯。 如需詳細資訊,請參閱 NDIS QoS 的標準化 INF 關鍵詞。
*InterruptModeration
值,描述裝置已啟用或停用中斷仲裁。 中斷仲裁演算法與裝置相關。 裝置製造商可以使用非標準化關鍵詞來支援演算法設定。 如需中斷仲裁的詳細資訊,請參閱 中斷仲裁。
*Rss
值,描述啟用或停用裝置的接收端調整 (RSS) 。 如需 RSS 的詳細資訊,請參閱 接收端調整。
*HeaderDataSplit
值,描述裝置已啟用或停用標頭數據分割。 如需標頭數據分割的詳細資訊,請參閱 標頭數據分割。
下列關鍵詞與連線卸除服務相關聯:
*TCPConnectionOffloadIPv4
*TCPConnectionOffloadIPv6
如需連接卸除關鍵詞的詳細資訊,請參閱 使用登錄值啟用和停用連接卸除。
下列關鍵詞與工作卸除服務相關聯:
*IPChecksumOffloadIPv4
*TCPChecksumOffloadIPv4
*TCPChecksumOffloadIPv6
*UDPChecksumOffloadIPv4
*UDPChecksumOffloadIPv6
*LsoV1IPv4
*LsoV2IPv4
注意 對於同時支援大型傳送卸除第 1 版 (LSOv1) 和透過 IPv4 的 LSOv2 的裝置,只有 *LsoV2IPv4 關鍵詞應該用於 INF 檔案和登錄值。 例如,如果 *LsoV2IPv4 關鍵詞出現在 INF 檔案中,而 *LsoV1IPv4 關鍵詞會出現在登錄 (,反之亦然) , 則 *LsoV2IPv4 關鍵詞一律優先。
*LsoV2IPv6
*IPsecOffloadV1IPv4
*IPsecOffloadV2
*IPsecOffloadV2IPv4
*TCPUDPChecksumOffloadIPv4
*TCPUDPChecksumOffloadIPv6
如需 TCP/IP 卸除關鍵詞的詳細資訊,請參閱 使用登錄值啟用和停用工作卸除。
本主題結尾之數據表中的數據行描述列舉關鍵詞的下列屬性:
SubkeyName
您必須在 INF 檔案中指定且出現在登錄中的關鍵字名稱。
ParamDesc
與 SubkeyName 相關聯的顯示文字。
值
與清單中每個選項相關聯的列舉整數值。 此值會儲存在 NDI\params\SubkeyName\值中。
EnumDesc
與功能表中顯示的每個值相關聯的顯示文字。
Default
功能表的預設值。
下表列出所有關鍵詞,並描述驅動程式必須用於上述屬性的值。 如需關鍵詞的詳細資訊,請在WDK檔中搜尋 關鍵詞。
SubkeyName | ParamDesc | 值 | EnumDesc |
---|---|---|---|
*SpeedDuplex | 雙工 & 速度 | 0 (預設) | 自動交涉 |
1 | 10 Mbps 半雙工 | ||
2 | 10 Mbps 全雙工 | ||
3 | 100 Mbps 半雙工 | ||
4 | 100 Mbps 全雙工 | ||
5 | 1.0 Gbps 半雙工 | ||
6 | 1.0 Gbps 全雙工 | ||
7 | 10 Gbps 全雙工 | ||
8 | 20 Gbps 全雙工 | ||
9 | 40 Gbps 全雙工 | ||
10 | 100 Gbps 全雙工 | ||
*FlowControl | 流量控制 | 0 (伺服器預設) | Tx & Rx Disabled |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (客戶端預設) | 已啟用 Rx & Tx | ||
4 | 自動交涉 | ||
*PriorityVLANTag | 封包優先順序 & VLAN | 0 | 已停用封包優先順序 & VLAN |
1 | 已啟用封包優先順序 | ||
2 | VLAN 已啟用 | ||
3 (預設) | 已啟用封包優先順序 & VLAN | ||
*InterruptModeration | 中斷仲裁 | 0 | 已停用 |
1 (預設) | 啟用 | ||
*Rss | 接收端調整 | 0 | 已停用 |
1 (預設) | 啟用 | ||
*HeaderDataSplit | 標頭數據分割 | 0 (預設) | 已停用 |
1 | 啟用 | ||
*TCPConnectionOffloadIPv4 | TCP 連線卸除 (IPv4) | 0 | 已停用 |
1 (預設) | 啟用 | ||
*TCPConnectionOffloadIPv6 | TCP 連線卸除 (IPv6) | 0 | 已停用 |
1 (預設) | 啟用 | ||
*IPChecksumOffloadIPv4 | IPv4 總和檢查碼卸除 | 0 | 已停用 |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (預設) | 已啟用 Rx & Tx | ||
*TCPChecksumOffloadIPv4 | TCP 總和檢查碼卸除 (IPv4) | 0 | 已停用 |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (預設) | 已啟用 Rx & Tx | ||
*TCPChecksumOffloadIPv6 | TCP 總和檢查碼卸除 (IPv6) | 0 | 已停用 |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (預設) | 已啟用 Rx & Tx | ||
*UDPChecksumOffloadIPv4 | UDP 總和檢查碼卸除 (IPv4) | 0 | 已停用 |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (預設) | 已啟用 Rx & Tx | ||
*UDPChecksumOffloadIPv6 | UDP 總和檢查碼卸除 (IPv6) | 0 | 已停用 |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (預設) | 已啟用 Rx & Tx | ||
*LsoV1IPv4 | 大型傳送卸除第 1 版 (IPv4) | 0 | 已停用 |
1 (預設) | 啟用 | ||
*LsoV2IPv4 | 大型傳送卸除第 2 版 (IPv4) | 0 | 已停用 |
1 (預設) | 啟用 | ||
*LsoV2IPv6 | 大型傳送卸除第 2 版 (IPv6) | 0 | 已停用 |
1 (預設) | 啟用 | ||
*IPsecOffloadV1IPv4 | IPsec 卸除第 1 版 (IPv4) | 0 | 已停用 |
1 | 已啟用驗證標頭 | ||
2 | 已啟用 ESP | ||
3 (預設) | 已啟用 ESP 的驗證標頭 & | ||
*IPsecOffloadV2 | IPsec 卸除 | 0 | 已停用 |
1 | 已啟用驗證標頭 | ||
2 | 已啟用 ESP | ||
3 (預設) | 已啟用 ESP 的驗證標頭 & | ||
*IPsecOffloadV2IPv4 | 僅限 IPsec 卸除 (IPv4) | 0 | 已停用 |
1 | 已啟用驗證標頭 | ||
2 | 已啟用 ESP | ||
3 (預設) | 已啟用 ESP 的驗證標頭 & | ||
*TCPUDPChecksumOffloadIPv4 | TCP/UDP 總和檢查碼卸除 (IPv4) | 0 | 已停用 |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (預設) | 已啟用 Tx 和 Rx | ||
*TCPUDPChecksumOffloadIPv6 | TCP/UDP 總和檢查碼卸除 (IPv6) | 0 | 已停用 |
1 | 已啟用 Tx | ||
2 | 已啟用 Rx | ||
3 (預設) | 已啟用 Tx 和 Rx |