estructura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES (ndis.h)

Un controlador de minipuerto NDIS configura una estructura de NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES para definir los atributos de registro asociados a un adaptador de minipuerto.

Sintaxis

typedef struct _NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_HANDLE         MiniportAdapterContext;
  ULONG               AttributeFlags;
  UINT                CheckForHangTimeInSeconds;
  NDIS_INTERFACE_TYPE InterfaceType;
} NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES, *PNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES;

Miembros

Header

Tipo, revisión y tamaño de la estructura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Este miembro tiene el formato de estructura NDIS_OBJECT_HEADER .

El controlador de minipuerto debe establecer el miembro Type de Header en NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Para especificar la versión de la estructura de NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES , el controlador debe establecer el miembro Revision de Header en uno de los siguientes valores:

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2

Se han agregado marcas AttributeFlags para NDIS 6.30.

Establezca el miembro Size en NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2.

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1

Versión original de NDIS 6.0.

Establezca el miembro Size en NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1.

MiniportAdapterContext

Identificador de un área de contexto que el controlador de minipuerto asignó en su función MiniportInitializeEx . El controlador de minipuerto usa este área de contexto para mantener la información de estado de un adaptador de minipuerto.

AttributeFlags

Máscara de bits de marcas que se combinan con un OR bit a bit. Los controladores de minipuerto NDIS deben establecer una o varias de las marcas siguientes:

NDIS_MINIPORT_ATTRIBUTES_HARDWARE_DEVICE

Establezca si el controlador de minipuerto controla directamente un dispositivo físico. El dispositivo físico se asigna a recursos de hardware, como interrupciones, puertos de E/S, E/S asignadas a memoria o canales DMA que el controlador de miniporte debe reclamar de la Función MiniportInitializeEx .

NDIS_MINIPORT_ATTRIBUTES_NDIS_WDM

Establezca si la interfaz de nivel inferior del adaptador de minipuerto es un controlador de bus WDM, como USB o IEEE 1394. En este caso, el controlador de minipuerto no asigna recursos de hardware como puertos de E/S, interrupciones, E/S asignadas a memoria o canales DMA. En su lugar, el controlador se comunica con el dispositivo a través de la interfaz WDM del controlador de bus subyacente.

NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER

Establezca si la NIC del autor de la llamada es un dispositivo DMA maestro de bus.

NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND

Establezca si NDIS no debe llamar a la función MiniportHaltEx del controlador de miniporte antes de que el sistema pase a un estado de bajo consumo (en suspensión). Los controladores que dependen del estado mantenido por hardware no deben establecer esta marca.

NDIS_MINIPORT_ATTRIBUTES_SURPRISE_REMOVE_OK

Establezca si el controlador de minipuerto puede controlar la eliminación de su NIC sin notificación de usuario. Los controladores NDIS reciben notificaciones de eliminación sorpresa en el Función MiniportDevicePnPEventNotify .

NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS

Se establece mediante un controlador de minipuerto que puede admitir dispositivos sin conexión y orientados a la conexión para indicar que el dispositivo es un dispositivo sin conexión.

NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO

Establecido por un controlador de minipuerto de CoNDIS que no proporciona servicios TAPI. Establecer NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO impide que NDIS enlace el controlador de miniporte al controlador proxy NDIS TAPI (NDPROXY). De forma predeterminada, NDIS enlaza NDPROXY a todos los controladores de miniporte de CoNDIS.

NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT

Se establece mediante un controlador de minipuerto que llama a la función NdisMNetPnPEvent para activar su puerto predeterminado. Si no se establece NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT, el puerto predeterminado está activo. NDIS no enlaza controladores de protocolo ni adjunta módulos de filtro a un adaptador de miniporte si su puerto predeterminado no está activo.

NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND

A partir de NDIS 6.30, esta marca se establece si el controlador de miniporte puede pasar a un estado de bajo consumo sin pausarse.

Para obtener más información sobre esta marca, vea la sección Comentarios.

NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK

A partir de miniportes NDIS 6.30, NDIS no invocará el controlador MiniportShutdownEx del miniporte durante un BugCheck a menos que se establezca esta marca. La mayoría de los miniportes no deben establecer esta marca.

CheckForHangTimeInSeconds

Intervalo de tiempo de espera, en segundos, en el que NDIS debe llamar a Función MiniportCheckForHangEx . Si un controlador de minipuerto no ha respondido a una solicitud de OID o a una solicitud de envío dentro de dos llamadas sucesivas a MiniportCheckForHangEx, NDIS puede llamar a la función MiniportResetEx del controlador de miniport.

El intervalo que usa NDIS al llamar a MiniportCheckForHangEx siempre es un múltiplo de 2 segundos. Por ejemplo, si especifica 5 segundos, el intervalo será de aproximadamente 4 segundos.

Si este miembro es 0, el intervalo de tiempo de espera predeterminado es de 2 segundos.

Nota El intervalo de tiempo de espera debe ser mayor que el tiempo de inicialización del controlador de miniporte. Para obtener más información, vea Miniport Adapter Check-for-Hang and Reset Operations.
 

InterfaceType

El tipo de interfaz de bus de E/S del adaptador de minipuerto. Este suele ser el tipo de bus de E/S en el que está conectado el adaptador de miniporte. Los valores siguientes se admiten en NDIS 6.0:

NdisInterfaceInternal

Especifica una interfaz interna específica del host.

NdisInterfaceIsa

Especifica la interfaz ISA.

NdisInterfaceEisa

Especifica la interfaz de ISA extendida (EISA). Este tipo de interfaz no se admite en NDIS 6.0 ni en versiones posteriores.

NdisInterfaceMca

Hace referencia al bus MCA, que ya no se admite. Este tipo de interfaz no se admite en NDIS 6.0 ni en versiones posteriores.

NdisInterfaceTurboChannel

Especifica la interfaz Turbo Channel.

NdisInterfacePci

Especifica la interfaz de interconexión de componentes periféricos (PCI).

NdisInterfacePcMcia

Especifica la interfaz de la Asociación Internacional de tarjeta de memoria de equipo personal (PC Card).

NdisInterfaceCBus

Especifica el CBus.

NdisInterfaceMPIBus

Especifica el MPIBus.

NdisInterfaceMPSABus

Especifica el MPSABus.

NdisInterfaceProcessorInternal

Especifica el bus interno del procesador.

NdisInterfaceInternalPowerBus

Especifica el bus de alimentación interno.

NdisInterfacePNPISABus

Especifica el PNPISABus.

NdisInterfacePNPBus

Especifica el PNPBus.

Este parámetro es irrelevante para los controladores intermedios, que deben especificar 0 para este miembro.

Comentarios

Un controlador de minipuerto pasa un puntero a una estructura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES en el parámetro MiniportAttributes del Función NdisMSetMiniportAttributes . Un controlador de minipuerto llama a NdisMSetMiniportAttributes desde su función MiniportInitializeEx durante la inicialización.

Los controladores de minipuerto deben establecer los atributos en NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES tan pronto como sea posible en MiniportInitializeEx. Establecer estos atributos es obligatorio.

marca de NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND

NDIS emite una solicitud de OID de OID_PNP_SET_POWER al controlador de minipuerto antes de que el adaptador de miniporte subyacente pase a un estado de baja potencia de D1, D2 o D3. Cuando el controlador controla este OID, debe preparar el adaptador de minipuerto para la transición al estado de energía inferior y no debe esperar a que se completen las indicaciones de paquetes de recepción pendientes.

En algunos casos, antes de que NDIS emite la solicitud de OID de OID_PNP_SET_POWER al controlador de minipuerto, NDIS llama a la función MiniportPause del controlador de minipuerto , como se describe a continuación:

  • Si no se establece la marca de NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND , NDIS llama a la función MiniportPause del controlador de miniporte antes de que se emita la solicitud OID de OID_PNP_SET_POWER al controlador. En el contexto de la llamada a MiniportPause , el controlador debe esperar a que se completen las indicaciones de paquetes de recepción pendientes.
  • Si se establece la marca NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND , NDIS no llama a la función MiniportPause del controlador de miniporte antes de que se emita la solicitud OID de OID_PNP_SET_POWER al controlador. Cuando el controlador de minipuerto controla la solicitud de OID, no debe suponer que se había pausado previamente al preparar el adaptador de minipuerto para la transición a un estado de bajo consumo.
    Nota La excepción a esto se produce cuando un protocolo o controlador de filtro que admite NDIS 6.20 o versiones anteriores de NDIS está enlazado o asociado al adaptador de miniport. En este caso, NDIS llama a la función MiniportPause del controlador de miniporte, independientemente de si el controlador de minipuerto establece la marca NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND .
     

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en NDIS 6.0 y versiones posteriores.
Encabezado ndis.h (incluya Ndis.h)

Consulte también

Operaciones de comprobación de bloqueo y restablecimiento del adaptador de miniporte

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportPause

MiniportResetEx

NDIS_OBJECT_HEADER

NdisMNetPnPEvent

NdisMSetMiniportAttributes

OID_PNP_SET_POWER