Palabras clave de enumeración
NDIS 6.0 y versiones posteriores de NDIS proporcionan palabras clave de enumeración estandarizadas para los controladores de miniporte de los dispositivos de red. Las palabras clave de enumeración están asociadas a valores que aparecen como una lista en un menú.
En el ejemplo siguiente se muestra una definición de archivo INF para una palabra clave de enumeración.
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%"
Las palabras clave de enumeración generales son:
*SpeedDuplex
Configuración rápida y dúplex que admite un dispositivo. El archivo INF del dispositivo debe enumerar solo la configuración que admite el dispositivo asociado. Es decir, para un dispositivo Ethernet 10/100 que solo admite el modo dúplex completo, la configuración de gigabit o velocidades superiores o dúplex medio no debe aparecer en el archivo INF asociado.
Los valores de velocidad que no están definidos específicamente ya con valores enumerados de 0 a 10 se pueden establecer como un número que es el valor directamente en Mbps. Los valores directos deben ser de al menos 1000 Mbps (1 Gbps) y superiores. Estos son algunos ejemplos para especificar la velocidad directamente:
Valor speedDuplex | Velocidad resultante |
---|---|
1,000 | 1 Gbps |
10 000 | 10 Gbps |
25 000 | 25 Gbps |
50.000 | 50 Gbps |
100 000 | 100 Gbps |
*FlowControl
La capacidad para que el dispositivo habilite o deshabilite el control de flujo en la ruta de acceso de envío o recepción.
Nota Los dispositivos Ethernet admiten hoy en día el control de flujo y los controladores de Windows 8 in-box para LAN tienen habilitado el control de flujo de forma predeterminada. Cuando un depurador de kernel se conecta a uno de estos adaptadores LAN, la NIC comenzará a insertar fotogramas de pausa de control de flujo en la red. La mayoría de los conmutadores de red reaccionarán al quitar temporalmente la red para todos los demás equipos conectados al mismo concentrador. Se trata de un escenario de desarrollo común y la experiencia del usuario final no es deseable y difícil de diagnosticar.
Nota Los valores predeterminados de cliente y servidor no son los mismos; consulte la tabla de valores predeterminados a continuación.
Por este motivo, en Windows 8 y versiones posteriores, NDIS deshabilitará el control de flujo automáticamente cuando la depuración esté habilitada en el equipo (por ejemplo, escribiendo bcdedit /set debug en en la línea de comandos). Cuando la depuración del kernel está habilitada y la miniporta llama a NdisReadConfiguration y pasa "*FlowControl" para el parámetro Keyword , NDIS invalidará el valor configurado y devolverá cero.
Si necesita habilitar el control de flujo durante la depuración, NDIS proporciona el valor del Registro AllowFlowControlUnderDebugger para permitirle hacerlo. El valor del Registro AllowFlowControlUnderDebugger impide que NDIS deshabilite el control de flujo y permite a las NIC mantener su comportamiento configurado. Se puede encontrar en la siguiente clave del Registro:
HKEY_LOCAL_MACHINE\Sistema\Currentcontrolset\Servicios\NDIS\Parámetros
Establezca este valor del Registro en 0x00000001.
Si no existe, puede crear un valor con el nombre AllowFlowControlUnderDebugger y el tipo REG_DWORD y establecerlo en 0x00000001.
*PriorityVLANTag
Valor que indica si el dispositivo ha habilitado o deshabilitado la capacidad de insertar las etiquetas 802.1Q para la prioridad de paquetes y las REDES virtuales (VLAN). Esta palabra clave no indica si el dispositivo está habilitado o deshabilitado las etiquetas de prioridad de paquete o VLAN. En su lugar, describe lo siguiente:
- Si el dispositivo inserta etiquetas 802.1Q durante una operación de envío
- Si la información de etiquetas 802.1Q está disponible en la información de NET_BUFFER_LIST fuera de banda (OOB)
- Si el dispositivo copia 802.1Q etiquetas en OOB durante las operaciones de recepción
El controlador de minipuerto debe quitar el encabezado 802.1Q de todos los paquetes de recepción, independientemente de la configuración *PriorityVLANTag . Si el encabezado 802.1Q se deja en un paquete, es posible que otros controladores no puedan analizar el paquete correctamente.
Si la marca Rx está habilitada en la ruta de acceso de recepción, el controlador de minipuerto debe copiar el encabezado 802.1Q quitado en OOB.
De lo contrario, si la marca Rx está deshabilitada, el controlador de minipuerto no debe copiar el encabezado 802.1Q quitado en OOB.
Si la marca Tx está habilitada en la ruta de transmisión, el controlador de minipuerto debe hacer lo siguiente:
- Inserte el encabezado 802.1Q en cada paquete saliente y llene con los datos de OOB (si existe algún dato distinto de cero en OOB).
- Anuncie los MacOptions adecuados en NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES (NDIS_MAC_OPTION_8021P_PRIORITY y NDIS_MAC_OPTION_8021Q_VLAN).
De lo contrario, si la marca Tx está deshabilitada, entonces:
- El filtro de minipuerto no debe respetar la información 802.1Q en OOB (y, por lo tanto, no insertar ninguna etiqueta).
- El filtro de minipuerto no debe anunciar las MacOptions adecuadas en NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES.
Nota Si el controlador de minipuerto admite la calidad del servicio NDIS (QoS), también debe leer el valor de la palabra clave *QOS . Según el valor de palabra clave *QOS , los valores de palabra clave *PriorityVLANTag se interpretan de forma diferente. Para obtener más información, vea Palabras clave INF estandarizadas para QoS de NDIS.
*InterruptModeration
Valor que describe si el dispositivo está habilitado o deshabilitado para la moderación de interrupciones. Los algoritmos de moderación de interrupciones dependen del dispositivo. El fabricante del dispositivo puede usar palabras clave no estandarizadas para admitir la configuración algorítmica. Para obtener más información sobre la moderación de interrupciones, consulte Moderación de interrupciones.
*RSS
Valor que describe si el dispositivo está habilitado o deshabilitado para el escalado lateral de recepción (RSS). Para obtener más información sobre RSS, vea Escalado lateral de recepción.
*HeaderDataSplit
Valor que describe si el dispositivo se ha habilitado o deshabilitado la división de datos de encabezado. Para obtener más información sobre la división de datos de encabezado, vea Header-Data Split.
Las siguientes palabras clave están asociadas a los servicios de descarga de conexión:
*TCPConnectionOffloadIPv4
*TCPConnectionOffloadIPv6
Para obtener más información sobre las palabras clave de descarga de conexión, vea Usar valores del Registro para habilitar y deshabilitar la descarga de conexión.
Las siguientes palabras clave están asociadas a los servicios de descarga de tareas:
*IPChecksumOffloadIPv4
*TCPChecksumOffloadIPv4
*TCPChecksumOffloadIPv6
*UDPChecksumOffloadIPv4
*UDPChecksumOffloadIPv6
*LsoV1IPv4
*LsoV2IPv4
Nota En el caso de los dispositivos que admiten la descarga de envío grande versión 1 (LSOv1) y LSOv2 a través de IPv4, solo se debe usar la palabra clave *LsoV2IPv4 en los valores del registro y el archivo INF. Si, por ejemplo, la palabra clave *LsoV2IPv4 aparece en el archivo INF y la palabra clave *LsoV1IPv4 aparece en el Registro (o viceversa), la palabra clave *LsoV2IPv4 siempre tiene prioridad.
*LsoV2IPv6
*IPsecOffloadV1IPv4
*IPsecOffloadV2
*IPsecOffloadV2IPv4
*TCPUDPChecksumOffloadIPv4
*TCPUDPChecksumOffloadIPv6
Para obtener más información sobre las palabras clave de descarga tcp/IP, vea Usar valores del Registro para habilitar y deshabilitar la descarga de tareas.
Las columnas de la tabla al final de este tema describen los siguientes atributos para las palabras clave de enumeración:
SubkeyName
Nombre de la palabra clave que debe especificar en el archivo INF y que aparece en el Registro.
ParamDesc
Texto para mostrar asociado a SubkeyName.
Valor
Valor entero de enumeración asociado a cada opción de la lista. Este valor se almacena en NDI\params\SubkeyName\Value.
EnumDesc
Texto para mostrar asociado a cada valor que aparece en el menú.
Default
Valor predeterminado del menú.
En la tabla siguiente se enumeran todas las palabras clave y se describen los valores que un controlador debe usar para los atributos anteriores. Para obtener más información sobre una palabra clave, busque la palabra clave en la documentación de WDK.
SubkeyName | ParamDesc | Valor | EnumDesc |
---|---|---|---|
*SpeedDuplex | Velocidad & dúplex | 0 (predeterminado) | Negociación automática |
1 | Dúplex medio de 10 Mbps | ||
2 | Dúplex completo de 10 Mbps | ||
3 | Dúplex medio de 100 Mbps | ||
4 | Dúplex completo de 100 Mbps | ||
5 | Dúplex medio de 1,0 Gbps | ||
6 | Dúplex completo de 1,0 Gbps | ||
7 | Dúplex completo de 10 Gbps | ||
8 | Dúplex completo de 20 Gbps | ||
9 | Dúplex completo de 40 Gbps | ||
10 | Dúplex completo de 100 Gbps | ||
*FlowControl | Control de flujo | 0 (valor predeterminado del servidor) | Tx & Rx Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado del cliente) | Rx & Tx Enabled | ||
4 | Negociación automática | ||
*PriorityVLANTag | VLAN de prioridad de paquete & | 0 | Prioridad de paquete & VLAN deshabilitado |
1 | Prioridad de paquete habilitada | ||
2 | VLAN habilitada | ||
3 (valor predeterminado) | Prioridad de paquete & VLAN habilitado | ||
*InterruptModeration | Moderación de interrupciones | 0 | Disabled |
1 (valor predeterminado) | habilitado | ||
*RSS | Escalado del lado de recepción | 0 | Disabled |
1 (valor predeterminado) | habilitado | ||
*HeaderDataSplit | División de datos de encabezado | 0 (predeterminado) | Disabled |
1 | habilitado | ||
*TCPConnectionOffloadIPv4 | Descarga de conexión TCP (IPv4) | 0 | Disabled |
1 (valor predeterminado) | habilitado | ||
*TCPConnectionOffloadIPv6 | Descarga de conexión TCP (IPv6) | 0 | Disabled |
1 (valor predeterminado) | habilitado | ||
*IPChecksumOffloadIPv4 | Descarga de suma de comprobación IPv4 | 0 | Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado) | Rx & Tx Enabled | ||
*TCPChecksumOffloadIPv4 | Descarga de suma de comprobación TCP (IPv4) | 0 | Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado) | Rx & Tx Enabled | ||
*TCPChecksumOffloadIPv6 | Descarga de suma de comprobación TCP (IPv6) | 0 | Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado) | Rx & Tx Enabled | ||
*UDPChecksumOffloadIPv4 | Descarga de suma de comprobación UDP (IPv4) | 0 | Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado) | Rx & Tx Enabled | ||
*UDPChecksumOffloadIPv6 | Descarga de suma de comprobación UDP (IPv6) | 0 | Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado) | Rx & Tx Enabled | ||
*LsoV1IPv4 | Descarga de envío grande versión 1 (IPv4) | 0 | Disabled |
1 (valor predeterminado) | habilitado | ||
*LsoV2IPv4 | Descarga de envío grande versión 2 (IPv4) | 0 | Disabled |
1 (valor predeterminado) | habilitado | ||
*LsoV2IPv6 | Descarga de envío grande versión 2 (IPv6) | 0 | Disabled |
1 (valor predeterminado) | habilitado | ||
*IPsecOffloadV1IPv4 | Descarga de IPsec versión 1 (IPv4) | 0 | Disabled |
1 | Encabezado de autenticación habilitado | ||
2 | ESP habilitado | ||
3 (valor predeterminado) | Encabezado de autenticación & ESP habilitado | ||
*IPsecOffloadV2 | Descarga de IPsec | 0 | Disabled |
1 | Encabezado de autenticación habilitado | ||
2 | ESP habilitado | ||
3 (valor predeterminado) | Encabezado de autenticación & ESP habilitado | ||
*IPsecOffloadV2IPv4 | Descarga de IPsec (solo IPv4) | 0 | Disabled |
1 | Encabezado de autenticación habilitado | ||
2 | ESP habilitado | ||
3 (valor predeterminado) | Encabezado de autenticación & ESP habilitado | ||
*TCPUDPChecksumOffloadIPv4 | Descarga de suma de comprobación de TCP/UDP (IPv4) | 0 | Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado) | Tx y Rx habilitado | ||
*TCPUDPChecksumOffloadIPv6 | Descarga de suma de comprobación de TCP/UDP (IPv6) | 0 | Disabled |
1 | Tx Enabled | ||
2 | Rx Enabled | ||
3 (valor predeterminado) | Tx y Rx habilitado |