Inicialización de controladores intermedios para controlar eventos de administración de energía y PnP
Para controlar Plug and Play (PnP) y eventos de administración de energía, los controladores intermedios NDIS deben hacer lo siguiente:
Cuando NDIS llama a la función ProtocolBindAdapterEx del controlador intermedio, el parámetro BindParameters apunta a una estructura de NDIS_PM_CAPABILITIES que contiene las funciones del adaptador de miniport subyacente. Las funcionalidades de administración de energía se notifican en uno de los siguientes miembros:
PowerManagementCapabilities
Para los controladores intermedios 6.0 y NDIS 6.1 de NDIS 6.1, este miembro contiene las funcionalidades de administración de energía dentro de una estructura de NDIS_PNP_CAPABILITIES. Para obtener más información sobre esta estructura, consulte OID_PNP_CAPABILITIES.
Nota En el caso de los controladores intermedios 6.20 y versiones posteriores de NDIS, el miembro PowerManagementCapabilities se establece en NULL y las funcionalidades de administración de energía se notifican en el miembro PowerManagementCapabilitiesEx .
PowerManagementCapabilitiesEx
En el caso de los controladores intermedios 6.20 y versiones posteriores de NDIS, este miembro contiene las funcionalidades de administración de energía dentro de una estructura de NDIS_PM_CAPABILITIES .
Nota En el caso de los controladores intermedios 6.0 y NDIS 6.1 de NDIS 6.1, el miembro PowerManagementCapabilitiesEx se establece en NULL y las funcionalidades de administración de energía se notifican en el miembro PowerManagementCapabilities .
Nota Si el adaptador de minipuerto subyacente no admite eventos de administración de energía, los miembros PowerManagementCapabilities y PowerManagementCapabilitiesEx se establecen en NULL.
Cuando NDIS llama a MiniportInitializeEx para cada miniport virtual compatible con el controlador intermedio NDIS, el controlador notifica sus funcionalidades de administración de energía llamando a NdisMSetMiniportAttributes de las siguientes maneras:
Según la versión del controlador intermedio NDIS, las funcionalidades de administración de energía se notifican en el miembro PowerManagementCapabilities (para controladores intermedios NDIS 6.0 y NDIS 6.1) o en el miembro PowerManagementCapabilitiesEx (para controladores intermedios NDIS 6.20 y versiones posteriores) de NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES. Si el miembro PowerManagementCapabilities o PowerManagementCapabilitiesEx de la estructura NDIS_BIND_PARAMETERS no es NULL, el controlador intermedio debe hacer lo siguiente:
Guarde los valores originales de los miembros MinMagicPacketWakeUp, MinPatternWakeUp y MinLinkChangeWakeUp de los miembros de PowerManagementCapabilities(NDIS 6.0 y NDIS 6.1) o PowerManagementCapabilitiesEx(NDIS 6.20 y versiones posteriores).
Deshabilite la funcionalidad de administración de energía estableciendo los miembros MinMagicPacketWakeUp, MinPatternWakeUp y MinLinkChangeWakeUp en NdisDeviceStateUnspecified.
Pase la dirección de la estructura de NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES modificada como parámetro MiniportAttributes en la llamada a NdisMSetMiniportAttributes.
Un controlador intermedio debe establecer la marca NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND en el miembro AttributeFlags de la estructura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . El controlador debe pasar la dirección de esta estructura como el parámetro MiniportAttributes en la llamada a NdisMSetMiniportAttributes.
Para obtener más información sobre los requisitos de inicialización de los controladores intermedios de NDIS, consulte Inicialización de miniportes virtuales.