Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
NDIS 6.0 und höhere Versionen von NDIS stellen standardisierte Enumerationsstichwörter für Miniporttreiber von Netzwerkgeräten bereit. Enumerationsstichwörter sind Werten zugeordnet, die als Liste in einem Menü angezeigt werden.
Das folgende Beispiel zeigt eine INF-Dateidefinition für ein Enumerationsschlüsselwort.
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%"
Die allgemeinen Enumerationsstichwörter sind:
*SpeedDuplex
Geschwindigkeits- und Duplexeinstellungen, die ein Gerät unterstützt. Die INF-Datei des Geräts sollte nur die Einstellungen auflisten, die das zugeordnete Gerät unterstützt. Das heißt, für ein Ethernet 10/100-Gerät, das nur den Vollduplexmodus unterstützen kann, sollten Einstellungen für Gigabit oder höhere Geschwindigkeiten oder halbduplex nicht in der zugehörigen INF-Datei aufgeführt werden.
Geschwindigkeitswerte, die nicht explizit bereits mit aufgezählten Werten von 0 bis 10 definiert sind, können als Zahl festgelegt werden, die den Wert direkt in Mbps darstellt. Direkte Werte müssen mindestens 1.000 MBit/s (1 GBit/s) und höher sein. Hier sind einige Beispiele für die direkte Angabe der Geschwindigkeit:
| SpeedDuplex-Wert | Resultierende Geschwindigkeit |
|---|---|
| 1.000 | 1 GBit/s |
| 10.000 | 10 Gbit/s |
| 25,000 | 25GBit/s |
| 50.000 | 50 GBit/s |
| 100,000 | 100 Gbit/s |
*Flowcontrol
Die Möglichkeit für das Gerät, die Flusssteuerung im Sende- oder Empfangspfad zu aktivieren oder zu deaktivieren.
Anmerkung Ethernet-Geräte unterstützen heute die Flusssteuerung, und die Windows 8-In-Box-Treiber für LAN verfügen standardmäßig über eine Flusssteuerung. Wenn ein Kernel-Debugger an eine dieser LAN-Adapter angeschlossen wird, beginnt die Netzwerkkarte damit, Flusskontroll-Pausenrahmen in das Netzwerk zu senden. Die meisten Netzwerkswitches reagieren, indem sie vorübergehend das Netzwerk bei allen anderen Computern, die mit demselben Hub verbunden sind, abschalten. Dies ist ein gängiges Entwicklungsszenario, und die Endbenutzererfahrung ist sowohl unerwünschte als auch schwierig zu diagnostizieren.
Anmerkung Client- und Serverstandardwerte sind nicht identisch; siehe die nachstehende Tabelle der Standardwerte.
Aus diesem Grund deaktiviert NDIS in Windows 8 und höher die Ablaufsteuerung automatisch, wenn das Debuggen auf dem Computer aktiviert ist (z. B. durch Eingabe von bcdedit /set debug on in der Befehlszeile). Wenn das Kerneldebugging aktiviert ist und der Miniport NdisReadConfiguration aufruft und "*FlowControl" für den Schlüsselwortparameter übergibt, überschreibt NDIS den konfigurierten Wert und gibt Null zurück.
Wenn Sie die Ablaufsteuerung beim Debuggen aktivieren müssen, stellt NDIS den Registrierungswert AllowFlowControlUnderDebugger bereit, damit Sie dies tun können. Der Registrierungswert AllowFlowControlUnderDebugger verhindert, dass NDIS die Ablaufsteuerung deaktiviert, und NICs können ihr konfiguriertes Verhalten beibehalten. Er befindet sich unter dem folgenden Registrierungsschlüssel:
\ HKEY_LOCAL_MACHINESystem\CurrentControlSet\Dienste\NDIS\Parameter
Legen Sie diesen Registrierungswert auf 0x00000001 fest.
Wenn sie nicht vorhanden ist, können Sie einen Wert mit dem Namen AllowFlowControlUnderDebugger und dem Typ REG_DWORD erstellen und auf 0x00000001 festlegen.
*PriorityVLANTag
Ein Wert, der angibt, ob das Gerät die Möglichkeit zum Einfügen der 802.1Q-Tags für paketpriorität und virtuelle LANs (VLANs) aktiviert oder deaktiviert hat. Dieses Schlüsselwort gibt nicht an, ob das Gerät die Paketpriorität oder VLAN-Tags aktiviert oder deaktiviert hat. Stattdessen wird Folgendes beschrieben:
- Gibt an, ob das Gerät während eines Sendevorgangs 802.1Q-Tags einfügt.
- Gibt an, ob 802.1Q-Taginformationen in den NET_BUFFER_LIST Out-of-Band-Informationen (OOB) verfügbar sind.
- Gibt an, ob das Gerät während des Empfangsvorgangs 802.1Q-Tags in OOB kopiert.
Der Miniporttreiber sollte den 802.1Q-Header unabhängig von der Einstellung *PriorityVLANTag von allen Empfangenpaketen entfernen. Wenn der 802.1Q-Header in einem Paket verbleibt, können andere Treiber das Paket möglicherweise nicht richtig analysieren.
Wenn das Rx-Flag auf dem Empfangspfad aktiviert ist, sollte der Miniporttreiber den entfernten 802.1Q-Header in OOB kopieren.
Andernfalls sollte der Miniporttreiber den entfernten 802.1Q-Header nicht in OOB kopieren, wenn das Rx-Flag deaktiviert ist.
Wenn das Tx-Flag auf dem Übertragungspfad aktiviert ist, sollte der Miniporttreiber folgendes ausführen:
- Fügen Sie den 802.1Q-Header in jedes ausgehende Paket ein, und füllen Sie ihn mit den Daten aus OOB aus (wenn in OOB Daten nicht null vorhanden sind).
- Bewerben Sie entsprechende MacOptions in NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES (NDIS_MAC_OPTION_8021P_PRIORITY und NDIS_MAC_OPTION_8021Q_VLAN).
Andernfalls, wenn das Tx-Flag deaktiviert ist, dann:
- Der Miniportfilter sollte keine 802.1Q-Informationen in OOB berücksichtigen (und daher kein Tag einfügen).
- Der Miniportfilter sollte in NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES keine entsprechenden MacOptions ankündigen.
Anmerkung Wenn der Miniporttreiber NDIS-Dienstqualität (QoS) unterstützt, muss er auch den Schlüsselwortwert *QOS lesen. Basierend auf dem Schlüsselwortwert *QOS werden die Schlüsselwortwerte *PriorityVLANTag anders interpretiert. Weitere Informationen finden Sie unter Standardisierte INF-Schlüsselwörter für NDIS QoS.
*InterruptModeration
Ein Wert, der beschreibt, ob das Gerät die Interrupt-Modulation aktiviert oder deaktiviert. Interruptmoderationsalgorithmen sind geräteabhängig. Der Gerätehersteller kann nicht standardisierte Schlüsselwörter verwenden, um algorithmische Einstellungen zu unterstützen. Weitere Informationen zur Unterbrechungsmoderation finden Sie unter Interrupt Moderation.
*RSS
Ein Wert, der beschreibt, ob das Gerät die empfängerseitige Skalierung (RSS) aktiviert oder deaktiviert hat. Weitere Informationen zu RSS finden Sie unter Receive Side Scaling.
*HeaderDataSplit
Ein Wert, der beschreibt, ob das Gerät Die Kopfzeilendatenteilung aktiviert oder deaktiviert hat. Weitere Informationen zum Teilen von Kopfzeilendaten finden Sie unter Header-Data Split.
Die folgenden Schlüsselwörter sind mit Verbindungsoffloaddiensten verknüpft:
*TCPConnectionOffloadIPv4
*TCPConnectionOffloadIPv6
Weitere Informationen zu den Schlüsselwörtern für das Verbindungsabladen finden Sie unter Verwenden von Registrierungswerten zum Aktivieren und Deaktivieren des Verbindungsabladens.
Die folgenden Schlüsselwörter sind mit Aufgaben offload-Diensten verknüpft:
*IPChecksumOffloadIPv4
*TCPChecksumOffloadIPv4
*TCPChecksumOffloadIPv6
*UDPChecksumOffloadIPv4
*UDPChecksumOffloadIPv6
*LsoV1IPv4
*LsoV2IPv4
Anmerkung Für Geräte, die sowohl Large Send Offload Version 1 (LSOv1) als auch LSOv2 über IPv4 unterstützen, sollte nur das Schlüsselwort *LsoV2IPv4 in den INF-Datei- und Registrierungswerten verwendet werden. Wenn beispielsweise das Schlüsselwort *LsoV2IPv4 in der INF-Datei angezeigt wird und das Schlüsselwort *LsoV1IPv4 in der Registrierung (oder umgekehrt) angezeigt wird, hat das Schlüsselwort *LsoV2IPv4 immer Vorrang.
*LsoV2IPv6
*IPsecOffloadV1IPv4
*IPsecOffloadV2
*IPsecOffloadV2IPv4
*TCPUDPChecksumOffloadIPv4
*TCPUDPChecksumOffloadIPv6
Weitere Informationen zu den Schlüsselwörtern zum TCP/IP-Offload finden Sie unter Verwenden von Registrierungswerten zum Aktivieren und Deaktivieren des Entladens von Vorgängen.
Die Spalten in der Tabelle am Ende dieses Themas beschreiben die folgenden Attribute für Enumerationsstichwörter:
Unterschlüsselname
Der Name des Schlüsselworts, das Sie in der INF-Datei angeben müssen und die in der Registrierung angezeigt wird.
ParamDesc
Der Anzeigetext, der mit "SubkeyName" verknüpft ist.
Wert
Der ganzzahlige Enumerationswert, der jeder Option in der Liste zugeordnet ist. Dieser Wert wird in NDI\params\SubkeyName\Value gespeichert.
EnumDesc
Der Anzeigetext, der jedem Wert zugeordnet ist, der im Menü angezeigt wird.
Standard
Der Standardwert für das Menü.
Die folgende Tabelle enthält alle Schlüsselwörter und beschreibt die Werte, die ein Treiber für die vorherigen Attribute verwenden muss. Weitere Informationen zu einem Schlüsselwort erhalten Sie, indem Sie das Schlüsselwort in der WDK-Dokumentation suchen.
| Unterschlüsselname | ParamDesc | Wert | EnumDesc |
|---|---|---|---|
| *SpeedDuplex | Geschwindigkeit & Duplex | 0 (Standard) | Automatische Aushandlung |
| 1 | 10 MBit/s Halbduplex | ||
| 2 | 10 MBit/s Vollduplex | ||
| 3 | 100 Mbit/s Halbduplex | ||
| 4 | 100 MBit/s Vollduplex | ||
| 5 | 1,0 Gigabit pro Sekunde Halb-Duplex | ||
| 6 | 1,0 GBit/s Vollduplex | ||
| 7 | 10 Gbit/s Vollduplex | ||
| 8 | 20 Gbit/s Vollduplex | ||
| 9 | 40 GBit/s Vollduplex | ||
| 10 | 100 GBit/s Vollduplex | ||
| *Flowcontrol | Flusskontrolle | 0 (Serverstandard) | Tx & Rx Deaktiviert |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Client-Standard) | Rx & Tx aktiviert | ||
| 4 | Automatische Aushandlung | ||
| *PriorityVLANTag | Paketpriorität und VLAN | 0 | Paketpriorität und VLAN deaktiviert |
| 1 | Paketpriorität aktiviert | ||
| 2 | VLAN aktiviert | ||
| 3 (Standard) | Paketpriorität und VLAN aktiviert | ||
| *InterruptModeration | Interruptüberprüfung | 0 | Disabled |
| 1 (Standard) | Aktiviert | ||
| *RSS | Empfangsseitige Skalierung | 0 | Disabled |
| 1 (Standard) | Aktiviert | ||
| *HeaderDataSplit | Kopfzeilendaten teilen | 0 (Standard) | Disabled |
| 1 | Aktiviert | ||
| *TCPConnectionOffloadIPv4 | TCP-Verbindungs-Offload (IPv4) | 0 | Disabled |
| 1 (Standard) | Aktiviert | ||
| *TCPConnectionOffloadIPv6 | TCP-Verbindungsentlastung (IPv6) | 0 | Disabled |
| 1 (Standard) | Aktiviert | ||
| *IPChecksumOffloadIPv4 | IPv4-Prüfsummenauslagerung | 0 | Disabled |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Standard) | Rx & Tx aktiviert | ||
| *TCPChecksumOffloadIPv4 | TCP-Prüfsummenauslagerung (IPv4) | 0 | Disabled |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Standard) | Rx & Tx aktiviert | ||
| *TCPChecksumOffloadIPv6 | TCP-Prüfsummenauslagerung (IPv6) | 0 | Disabled |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Standard) | Rx & Tx aktiviert | ||
| *UDPChecksumOffloadIPv4 | UDP-Prüfsummenauslagerung (IPv4) | 0 | Disabled |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Standard) | Rx & Tx aktiviert | ||
| *UDPChecksumOffloadIPv6 | UDP-Prüfsummenauslagerung (IPv6) | 0 | Disabled |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Standard) | Rx & Tx aktiviert | ||
| *LsoV1IPv4 | Große Sendungsauslagerung Version 1 (IPv4) | 0 | Disabled |
| 1 (Standard) | Aktiviert | ||
| *LsoV2IPv4 | Large Send Offload Version 2 (IPv4) – Große Sendepaketübertragung Version 2 (IPv4) | 0 | Disabled |
| 1 (Standard) | Aktiviert | ||
| *LsoV2IPv6 | Large Send Offload Version 2 (IPv6) | 0 | Disabled |
| 1 (Standard) | Aktiviert | ||
| *IPsecOffloadV1IPv4 | IPsec Offload Version 1 (IPv4) | 0 | Disabled |
| 1 | Authentifizierungsheader aktiviert | ||
| 2 | ESP aktiviert | ||
| 3 (Standard) | Authentifizierungsheader und ESP aktiviert | ||
| *IPsecOffloadV2 | IPsec-Auslagerung | 0 | Disabled |
| 1 | Authentifizierungsheader aktiviert | ||
| 2 | ESP aktiviert | ||
| 3 (Standard) | Authentifizierungsheader und ESP aktiviert | ||
| *IPsecOffloadV2IPv4 | IPsec Offload (nur IPv4) | 0 | Disabled |
| 1 | Authentifizierungsheader aktiviert | ||
| 2 | ESP aktiviert | ||
| 3 (Standard) | Authentifizierungsheader und ESP aktiviert | ||
| *TCPUDPChecksumOffloadIPv4 | TCP/UDP Checksum Offload (IPv4) | 0 | Disabled |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Standard) | Tx und Rx aktiviert | ||
| *TCPUDPChecksumOffloadIPv6 | TCP/UDP Checksum Offload (IPv6) | 0 | Disabled |
| 1 | Tx aktiviert | ||
| 2 | Rx aktiviert | ||
| 3 (Standard) | Tx und Rx aktiviert |