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.
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
MiniportDevicePnPEventNotify