estructura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES (ndis.h)
Un controlador de miniporte NDIS configura una estructura de NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES para definir atributos de registro asociados a un adaptador de minipuerto.
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;
Header
Tipo, revisión y tamaño de la estructura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Este miembro tiene el formato de una estructura NDIS_OBJECT_HEADER.
El controlador de miniport debe establecer el miembro Type de Encabezado 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 Revisión de de Encabezado en uno de los siguientes valores:
Se agregaron marcas AttributeFlags para NDIS 6.30.
Establezca el miembro Size en NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2.
Versión original de NDIS 6.0.
Establezca el miembro tamaño de en NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1.
MiniportAdapterContext
Identificador de un área de contexto que el controlador de miniporta asignó en su función MiniportInitializeEx. El controlador de miniporte usa este área de contexto para mantener la información de estado de un adaptador de miniporte.
AttributeFlags
Máscara de bits de marcas que se combinan con un OR bit a bit. Los controladores de miniport NDIS deben establecer una o varias de las marcas siguientes:
Establezca si el controlador de miniporte controla directamente un dispositivo físico. Al dispositivo físico se le asignan recursos de hardware como interrupciones, puertos de E/S, E/S asignados a memoria o canales DMA que el controlador de miniporte debe reclamar desde el función miniportInitializeEx.
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 miniporte 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.
Establezca si la NIC del autor de la llamada es un dispositivo DMA maestro de bus.
Establezca si NDIS no debe llamar a la función miniportador de un controlador de miniporte antes de que el sistema pase a un estado de baja potencia (en suspensión). Los controladores que dependen del estado mantenido por hardware no deben establecer esta marca.
Establezca si el controlador de miniporte 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.
Se establece mediante un controlador de minipuerto que puede admitir dispositivos sin conexión y orientados a conexiones para indicar que el dispositivo es un dispositivo sin conexión.
Establecido por un controlador de miniporte 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.
Se establece mediante un controlador de minipuerto que llama a la función NdisMNetPEvent 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.
A partir de NDIS 6.30, esta marca se establece si el controlador de miniporte puede pasar a un estado de baja potencia sin pausarse.
Para obtener más información sobre esta marca, vea la sección Comentarios.
A partir de NDIS 6.30, esta marca se establece si el controlador de miniporta controla los OID en puertos no predeterminados que normalmente son interceptados y administrados por NDIS en su nombre. Esto no cambia el comportamiento de los OID destinados al puerto predeterminado.
A partir de miniportes NDIS 6.30, NDIS no invocará el controlador MiniportShutdownEx de 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 al función MiniportCheckForHangEx. Si un controlador de miniport no ha respondido a una solicitud de OID o una solicitud de envío dentro de dos llamadas sucesivas a MiniportCheckForHangEx, NDIS puede llamar a la función miniportResetEx.
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 miniport. 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:
Especifica una interfaz interna específica del host.
Especifica la interfaz ISA.
Especifica la interfaz extendida de ISA (EISA). Este tipo de interfaz no se admite en NDIS 6.0 ni en versiones posteriores.
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.
Especifica la interfaz Turbo Channel.
Especifica la interfaz de interconexión de componente periférico (PCI).
Especifica la interfaz de la Asociación Internacional de tarjetas de memoria de equipo personal (PC Card).
Especifica el CBus.
Especifica el MPIBus.
Especifica mpSABus.
Especifica el bus interno del procesador.
Especifica el bus de energía interno.
Especifica el PNPISABus.
Especifica el PNPBus.
Este parámetro es irrelevante para los controladores intermedios, que deben especificar 0 para este miembro.
Un controlador de miniporte pasa un puntero a una estructura de NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES en el MiniportAttributes parámetro del función NdisMSetMiniportAttributes. Un controlador de miniport llama a NdisMSetMiniportAttributes desde su función MiniportInitializeEx durante la inicialización.
Los controladores de miniport deben establecer los atributos en NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES tan pronto como sea posible en MiniportInitializeEx. Establecer estos atributos es obligatorio.
NDIS emite una solicitud de OID de OID_PNP_SET_POWER al controlador de miniporte antes de que el adaptador de miniporte subyacente se cambie 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 menor potencia 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 OID de OID_PNP_SET_POWER al controlador de miniporte, NDIS llama a la función MiniportPause del controlador de miniporte, como se describe a continuación:
- Si no se establece la marca 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 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 miniporte controla la solicitud OID, no debe suponer que se había pausado previamente al preparar el adaptador de miniport para la transición a un estado de baja potencia.
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 conectado al adaptador de miniport. En este caso, NDIS llama a la función MiniportPause del controlador de miniporte, independientemente de si el controlador de miniporte establece la marca NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND.
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
encabezado de | ndis.h (incluya Ndis.h) |
de operaciones de comprobación de bloqueo y restablecimiento del adaptador de miniporte
miniportDevicePnPEventNotify