Compartir a través de


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:

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

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