Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
NDIS 6.0 i nowsze wersje NDIS zapewniają ustandaryzowane słowa kluczowe wyliczenia dla sterowników miniportu urządzeń sieciowych. Słowa kluczowe wyliczenia są skojarzone z wartościami, które są wyświetlane jako lista w menu.
W poniższym przykładzie przedstawiono definicję pliku INF dla słowa kluczowego wyliczenia.
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%"
Ogólne słowa kluczowe wyliczenia to:
*SpeedDuplex
Ustawienia szybkości i dupleksu obsługiwane przez urządzenie. Plik INF urządzenia powinien zawierać tylko ustawienia obsługiwane przez skojarzone urządzenie. Oznacza to, że w przypadku urządzenia Ethernet 10/100, które może obsługiwać tylko tryb pełnodupleksowy, ustawienia Gigabit lub wyższej szybkości lub półdupleksu nie powinny być wymienione w skojarzonym pliku INF.
Wartości prędkości, które nie zostały już zdefiniowane z wyliczonymi wartościami od 0 do 10, mogą być ustawiane jako liczba, która jest wartością bezpośrednio w Mb/s. Wartości bezpośrednie muszą mieć co najmniej 1000 Mb/s (1 Gb/s) lub więcej. Poniżej przedstawiono kilka przykładów dotyczących bezpośredniego określania szybkości:
| Wartość SpeedDuplex | Szybkość wynikowa |
|---|---|
| 1 000 | 1 Gbit/s |
| 10 000 | 10 Gb/s |
| 25,000 | 25 Gb/s |
| 50,000 | 50 Gbps |
| 100 000 | 100 Gbps |
*FlowControl
Możliwość włączenia lub wyłączenia sterowania przepływem na ścieżce wysyłania lub odbierania przez urządzenie.
Nuta Obecnie urządzenia Ethernet obsługują sterowanie przepływem, a sterowniki systemu Windows 8 dla sieci LAN mają domyślnie włączoną kontrolę przepływu. Gdy debuger jądra zostanie dołączony do jednej z tych kart sieci LAN, karta sieciowa zacznie wysyłać do sieci ramki pauzy kontroli przepływu. Większość przełączników sieciowych będzie reagować, tymczasowo usuwając sieć dla wszystkich innych komputerów podłączonych do tego samego koncentratora. Jest to typowy scenariusz programowania, a środowisko użytkownika końcowego jest niepożądane i trudne do zdiagnozowania.
Nuta Wartości domyślne klienta i serwera nie są takie same; zapoznaj się z poniższą tabelą wartości domyślnych.
Z tego powodu w systemie Windows 8 lub nowszym komponent NDIS automatycznie wyłączy sterowanie przepływem po włączeniu debugowania na komputerze (na przykład przez wpisanie bcdedit /set debug on w wierszu polecenia). Gdy debugowanie jądra jest włączone, a miniport wywołuje NdisReadConfiguration i przekazuje "*FlowControl" dla parametru Keyword, NDIS zastąpi skonfigurowaną wartość i zwróci zero.
Jeśli musisz włączyć kontrolę przepływu podczas debugowania, możesz to zrobić, korzystając z wartości rejestru AllowFlowControlUnderDebugger, którą udostępnia usługa NDIS. Wartość rejestru AllowFlowControlUnderDebugger uniemożliwia usłudze NDIS wyłączenie sterowania przepływem i umożliwia NIC zachowanie ich skonfigurowanego zachowania. Można go znaleźć w następującym kluczu rejestru:
\ HKEY_LOCAL_MACHINESystem\CurrentControlSet\Services\NDIS\Parameters
Ustaw tę wartość rejestru na 0x00000001.
Jeśli nie istnieje, możesz utworzyć wartość o nazwie AllowFlowControlUnderDebugger i typie REG_DWORD i ustawić ją na 0x00000001.
*PriorityVLANTag
Wartość wskazująca, czy urządzenie włączyło lub wyłączyło możliwość wstawiania tagów 802.1Q dla priorytetu pakietów i wirtualnych sieci LAN (VLAN). To słowo kluczowe nie wskazuje, czy urządzenie ma włączony lub wyłączony priorytet pakietu, czy tagi sieci VLAN. Zamiast tego opisuje następujące kwestie:
- Czy urządzenie wstawia tagi 802.1Q podczas operacji wysyłania
- Czy informacje o tagach 802.1Q są dostępne w informacjach poza pasmem (OOB) NET_BUFFER_LIST
- Czy urządzenie kopiuje tagi 802.1Q do obiektu OOB podczas operacji odbierania
Sterownik miniportu powinien usunąć nagłówek 802.1Q ze wszystkich pakietów odbieranych niezależnie od ustawienia *PriorityVLANTag . Jeśli nagłówek 802.1Q pozostanie w pakiecie, inne sterowniki mogą nie być w stanie poprawnie przeanalizować pakietu.
Jeśli flaga Rx jest włączona na ścieżce odbiorczej, sterownik miniportu powinien skopiować usunięty nagłówek 802.1Q do lokalizacji OOB.
W przeciwnym razie, jeśli flaga Rx jest wyłączona, sterownik miniportu nie powinien kopiować usuniętego nagłówka 802.1Q do OOB.
Jeśli flaga Tx jest włączona na ścieżce transmisji, sterownik miniportu powinien wykonać następujące czynności:
- Wstaw nagłówek 802.1Q do każdego pakietu wychodzącego i wypełnij go danymi z obiektu OOB (jeśli istnieją dane inne niż zero w obiekcie OOB).
- Reklamuj odpowiednie MacOptions w NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES (NDIS_MAC_OPTION_8021P_PRIORITY oraz NDIS_MAC_OPTION_8021Q_VLAN).
W przeciwnym razie, jeśli flaga Tx jest wyłączona, wówczas:
- Filtr miniportu nie powinien honorować informacji 802.1Q w OOB (i dlatego nie należy wstawiać żadnego tagu).
- Filtr miniportu nie powinien deklarować odpowiednich MacOptions w NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES.
Uwaga Jeśli sterownik miniportu obsługuje jakość usług NDIS (QoS), musi również odczytać wartość słowa kluczowego *QOS. Na podstawie wartości słowa kluczowego *QOS wartości słowa kluczowego *PriorityVLANTag są interpretowane inaczej. Aby uzyskać więcej informacji, zobacz Ustandaryzowane słowa kluczowe INF dla QoS NDIS.
*Moderacja przerwań
Wartość opisująca, czy moderowanie przerwań na urządzeniu jest włączone czy wyłączone. Algorytmy moderowania przerwań są zależne od urządzenia. Producent urządzenia może używać niestandardowych słów kluczowych do obsługi ustawień algorytmicznych. Aby uzyskać więcej informacji na temat moderowania przerwań, zobacz Moderowanie przerwań.
*RSS
Wartość opisująca, czy skalowanie po stronie odbiorczej (RSS) w urządzeniu jest włączone czy wyłączone. Aby uzyskać więcej informacji na temat funkcji RSS, zobacz Skalowanie po stronie odbierającej.
*HeaderDataSplit
Wartość, która opisuje, czy podział danych nagłówka w urządzeniu jest włączony czy wyłączony. Aby uzyskać więcej informacji na temat podziału danych nagłówka, zobacz Header-Data Podział.
Następujące słowa kluczowe są skojarzone z usługami odciążania połączeń:
*TCPConnectionOffloadIPv4
*TCPConnectionOffloadIPv6
Aby uzyskać więcej informacji na temat słów kluczowych odciążania połączenia, zobacz Używanie wartości rejestru do włączania i wyłączania odciążania połączenia.
Następujące słowa kluczowe są skojarzone z usługami odciążania zadań:
*IPChecksumOffloadIPv4
*TCPChecksumOffloadIPv4
*TCPChecksumOffloadIPv6
*UDPChecksumOffloadIPv4
*UDPChecksumOffloadIPv6
*LsoV1IPv4
*LsoV2IPv4
Uwaga W przypadku urządzeń obsługujących zarówno duże odciążanie wysyłania w wersji 1 (LSOv1), jak i LSOv2 przez IPv4, tylko słowo kluczowe *LsoV2IPv4 powinno być używane w pliku INF i wartościach rejestru. Jeśli na przykład słowo kluczowe *LsoV2IPv4 pojawia się w pliku INF, a słowo kluczowe *LsoV1IPv4 pojawia się w rejestrze (lub odwrotnie), słowo kluczowe *LsoV2IPv4 zawsze ma pierwszeństwo .
*LsoV2IPv6
*IPsecOffloadV1IPv4
*IPsecOffloadV2
*IPsecOffloadV2IPv4
*TCPUDPChecksumOffloadIPv4
*TCPUDPChecksumOffloadIPv6
Aby uzyskać więcej informacji na temat słów kluczowych odciążania TCP/IP, zobacz Using Registry Values to Enable and Disable Task Offloading (Używanie wartości rejestru do włączania i wyłączania odciążania zadań).
Kolumny w tabeli na końcu tego tematu opisują następujące atrybuty słów kluczowych wyliczenia:
Nazwa podklucza
Nazwa słowa kluczowego, które należy określić w pliku INF i która jest wyświetlana w rejestrze.
ParamDesc
Tekst wyświetlany skojarzony z SubkeyName.
Wartość
Wartość całkowita wyliczenia skojarzona z każdą opcją na liście. Ta wartość jest przechowywana w NDI\params\SubkeyName\Value.
OpisEnum
Tekst wyświetlany skojarzony z każdą wartością wyświetlaną w menu.
Wartość domyślna
Wartość domyślna menu.
W poniższej tabeli wymieniono wszystkie słowa kluczowe i opisano wartości, których sterownik musi użyć dla poprzednich atrybutów. Aby uzyskać więcej informacji na temat słowa kluczowego, wyszukaj słowo kluczowe w dokumentacji zestawu WDK.
| Nazwa podklucza | ParamDesc | Wartość | OpisEnum |
|---|---|---|---|
| *SpeedDuplex | Szybkość i dupleks | 0 (ustawienie domyślne) | Automatyczne negocjowanie |
| 1 | 10 Mbps w trybie półdupleksowym | ||
| 2 | Pełny dwudupleks 10 Mb/s | ||
| 3 | 100 Mb/s tryb półdupleksowy | ||
| 4 | 100 Mb/s Pełny Duplex | ||
| 5 | 1,0 Gb/s Półdupleks | ||
| 6 | Pełny dupleks 1.0 Gbps | ||
| 7 | 10 Gb/s pełny dupleks | ||
| 8 | Pełny dupleks 20 Gb/s | ||
| 9 | Pełny dupleks 40 Gb/s | ||
| 10 | 100 Gb/s Full Duplex | ||
| *FlowControl | Sterowanie przepływem | 0 (wartość domyślna serwera) | Tx i Rx wyłączone |
| 1 | Włączono tx | ||
| 2 | Włączono protokół Rx | ||
| 3 (Ustawienie domyślne klienta) | Włączono protokół Rx i Tx | ||
| 4 | Automatyczne negocjowanie | ||
| *PriorityVLANTag | Priorytet pakietów i VLAN | 0 | Priorytet pakietów i sieć VLAN są wyłączone |
| 1 | Włączony priorytet pakietu | ||
| 2 | Włączono sieć VLAN | ||
| 3 (ustawienie domyślne) | Priorytet pakietów i włączona sieć VLAN | ||
| *Moderacja przerwań | Moderowanie przerwań | 0 | Niepełnosprawny |
| 1 (ustawienie domyślne) | Włączone | ||
| *RSS | Skalowanie po stronie odbierającej | 0 | Niepełnosprawny |
| 1 (ustawienie domyślne) | Włączone | ||
| *HeaderDataSplit | Podział danych w nagłówku | 0 (ustawienie domyślne) | Niepełnosprawny |
| 1 | Włączone | ||
| *TCPConnectionOffloadIPv4 | Odciążanie połączenia TCP (IPv4) | 0 | Niepełnosprawny |
| 1 (ustawienie domyślne) | Włączone | ||
| *TCPConnectionOffloadIPv6 | Odciążanie połączenia TCP (IPv6) | 0 | Niepełnosprawny |
| 1 (ustawienie domyślne) | Włączone | ||
| *IPChecksumOffloadIPv4 | Odciążanie sumy kontrolnej IPv4 | 0 | Niepełnosprawny |
| 1 | Włączono Tx | ||
| 2 | Włączono protokół Rx | ||
| 3 (ustawienie domyślne) | Włączono protokół Rx i Tx | ||
| *TCPChecksumOffloadIPv4 | Odciążanie sumy kontrolnej TCP (IPv4) | 0 | Niepełnosprawny |
| 1 | Włączono TX | ||
| 2 | Włączono protokół Rx | ||
| 3 (ustawienie domyślne) | Włączono protokół Rx i Tx | ||
| *TCPChecksumOffloadIPv6 | Odciążanie sumy kontrolnej TCP (IPv6) | 0 | Niepełnosprawny |
| 1 | Włączono tx | ||
| 2 | Włączono protokół Rx | ||
| 3 (ustawienie domyślne) | Włączono protokół Rx i Tx | ||
| *UDPChecksumOffloadIPv4 | Odciążenie sumy kontrolnej UDP (IPv4) | 0 | Niepełnosprawny |
| 1 | Włączono tx | ||
| 2 | Włączono protokół Rx | ||
| 3 (ustawienie domyślne) | Włączono protokół Rx i Tx | ||
| *UDPChecksumOffloadIPv6 | Odciążanie sumy kontrolnej UDP (IPv6) | 0 | Niepełnosprawny |
| 1 | Włączono tx | ||
| 2 | Włączono protokół Rx | ||
| 3 (ustawienie domyślne) | Włączono protokół Rx i Tx | ||
| *LsoV1IPv4 | Odciążenie dużych wysyłek wersja 1 (IPv4) | 0 | Niepełnosprawny |
| 1 (ustawienie domyślne) | Włączone | ||
| *LsoV2IPv4 | Duże odciążanie wysyłania w wersji 2 (IPv4) | 0 | Niepełnosprawny |
| 1 (ustawienie domyślne) | Włączone | ||
| *LsoV2IPv6 | Large Send Offload w wersji 2 (IPv6) | 0 | Niepełnosprawny |
| 1 (ustawienie domyślne) | Włączone | ||
| *IPsecOffloadV1IPv4 | Odciążanie protokołu IPsec w wersji 1 (IPv4) | 0 | Niepełnosprawny |
| 1 | Włączono nagłówek uwierzytelniania | ||
| 2 | ESP Aktywne | ||
| 3 (ustawienie domyślne) | Nagłówek uwierzytelniania i włączono protokół ESP | ||
| *IPsecOffloadV2 | Odciążanie protokołu IPsec | 0 | Niepełnosprawny |
| 1 | Włączono nagłówek uwierzytelniania | ||
| 2 | ESP włączony | ||
| 3 (ustawienie domyślne) | Auth Header i ESP włączone | ||
| *IPsecOffloadV2IPv4 | Odciążanie protokołu IPsec (tylko protokół IPv4) | 0 | Niepełnosprawny |
| 1 | Włączono nagłówek uwierzytelniania | ||
| 2 | ESP włączony | ||
| 3 (ustawienie domyślne) | Auth Header i ESP włączone | ||
| *TCPUDPChecksumOffloadIPv4 | Odciążanie sumy kontrolnej TCP/UDP (IPv4) | 0 | Niepełnosprawny |
| 1 | Włączono tx | ||
| 2 | Włączono protokół Rx | ||
| 3 (ustawienie domyślne) | Tx i Rx włączone | ||
| *TCPUDPChecksumOffloadIPv6 | Odciążanie sumy kontrolnej TCP/UDP (IPv6) | 0 | Niepełnosprawny |
| 1 | Włączono tx | ||
| 2 | Włączono protokół Rx | ||
| 3 (ustawienie domyślne) | Tx i Rx włączone |