Compartir a través de


Bajo consumo en medios desconectados

La característica de desconexión de medios (D3 en desconexión) ahorra energía colocando un adaptador de red en un estado de bajo consumo (D3) cuando el medio está desconectado. Cuando se vuelve a conectar el medio, el adaptador de red se vuelve a conectar al estado de alimentación completa (D0).

NDIS usa la característica D3 en la desconexión en estas condiciones:

  • El hardware del adaptador de red debe poder generar un evento de reactivación en la conexión multimedia.

  • El controlador de minipuerto debe notificar la funcionalidad del evento de reactivación del adaptador de red en el miembro MinLinkChangeWakeUp de la estructura NDIS_PM_CAPABILITIES .

  • El valor de MinLinkChangeWakeUp debe corresponder al valor del miembro DeviceWake de la estructura DEVICE_CAPABILITIES notificada por el IRP de IRP_MN_QUERY_CAPABILITIES .

  • El controlador miniport debe registrarse como controlador NDIS 6.20 o una versión posterior.

  • El adaptador de red debe ser un adaptador PCI Ethernet.

  • La funcionalidad del evento de reactivación debe estar habilitada por la palabra clave del archivo INF estándar *DeviceSleepOnDisconnect .

  • El conjunto de chips del equipo debe ser capaz de propagar correctamente el evento de reactivación mientras el equipo está totalmente encendido. NDIS lo valida consultando la propiedad PCI de DEVPKEY_PciDevice_S0WakeupSupported.

Tenga en cuenta que D3 en la desconexión solo está disponible mientras el equipo está totalmente encendido en estado de trabajo (S0). Esta característica se cancela cuando el equipo entra en un estado de suspensión para evitar la reactivación del equipo cuando el estado del vínculo se recorre externamente; es decir, cuando se apaga y se activa un interruptor. Para obtener más información sobre la configuración del estado de baja energía cuando un equipo entra en un estado de suspensión, consulte Baja potencia para Reactivación en LAN.

Un controlador de miniporte informa D3 sobre las funcionalidades de desconexión durante la inicialización. Para obtener más información sobre la generación de informes D3 sobre las funcionalidades de desconexión, consulte Reporting Power Management Capabilities.

La palabra clave del archivo INF estándar *DeviceSleepOnDisconnect especifica si el dispositivo ha habilitado o deshabilitado la compatibilidad con D3 en la desconexión. Para obtener más información sobre esta palabra clave INF, vea Palabras clave INF estandarizadas para la administración de energía.

Durante la inicialización, los controladores de minipuerto que admiten D3 en la desconexión deben notificar el nivel de energía más bajo, donde puede admitir la capacidad de notificar al sistema operativo del evento de conexión multimedia. El controlador de minipuerto informa del nivel de potencia en el miembro MinLinkChangeWakeUp de la estructura NDIS_PM_CAPABILITIES . Por ejemplo, el controlador de minipuerto puede notificar NdisDeviceStateD3.

En la ilustración siguiente se muestra la secuencia de eventos para establecer un adaptador de red en un estado de bajo consumo después de un evento de desconexión multimedia.

Diagrama que ilustra la secuencia de eventos para establecer un adaptador de red en un estado de bajo consumo después de un evento de desconexión multimedia.

Cuando el adaptador detecta una desconexión multimedia, se produce la siguiente secuencia:

  1. El hardware del adaptador de red detecta un evento de desconexión multimedia y pasa la información al controlador de miniporte.

  2. El controlador de minipuerto notifica al NDIS de un evento de desconexión multimedia mediante la indicación de estado NDIS_STATUS_LINK_STATE . El miembro StatusBuffer de la estructura NDIS_STATUS_INDICATION contiene una estructura de NDIS_LINK_STATE . El valor MediaConnectStateDisconnected se establece en el miembro MediaConnectState de la estructura NDIS_LINK_STATE .

  3. NDIS usa OID_PM_PARAMETERS para deshabilitar Wake-on-LAN y para habilitar la reactivación en la conexión multimedia (NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED se establece en el miembro WakeUpFlags ).

  4. NDIS usa el OID de OID_PNP_SET_POWER para notificar al controlador de minipuerto el nuevo estado de alimentación (D3).

  5. NDIS envía el bus PCIe a un IRP_MN_WAIT_WAKE IRP para esperar a un evento de reconexión.

  6. NDIS establece el bus PCIe en el estado D3 con el irP de IRP_MN_SET_POWER .

En la ilustración siguiente se muestra la secuencia de eventos para restaurar la energía completa en un adaptador de red después de un evento de conexión multimedia.

Diagrama que ilustra la secuencia de eventos para restaurar la potencia completa en una nic después de un evento de conexión multimedia.

Cuando se vuelve a conectar el medio, se produce la siguiente secuencia:

  1. El adaptador de red reactiva el sistema mediante la aserción de WAKE# en el bus PCIe o PME# en el bus PCI.

  2. El bus completa el IRP IRP_MN_WAIT_WAKE pendiente. IrP está pendiente de finalización desde el último paso de la secuencia de desconexión.

  3. NDIS establece el bus en potencia completa (D0) con el IRP de IRP_MN_SET_POWER .

  4. NDIS notifica al controlador de minipuerto que el adaptador de red está en estado de potencia completa (D0) con la solicitud de conjunto de OID de OID_PNP_SET_POWER.

  5. El adaptador de red notifica a NDIS de un evento de conexión multimedia con la indicación de estado NDIS_STATUS_LINK_STATE . El valor MediaConnectStateConnected se establece en el miembro MediaConnectState de la estructura NDIS_LINK_STATE .

A partir de NDIS 6.30, si el controlador de miniporte admite NDIS_STATUS_PM_WAKE_REASON indicaciones de estado, debe emitir esta notificación de estado si el adaptador de red activa el sistema. El controlador emite esta notificación de estado mientras controla la solicitud de conjunto de OID de OID_PNP_SET_POWER para la transición a un estado de energía completa (D0).

Para obtener más información, consulte Indicaciones de estado del motivo de reactivación de NDIS.

Nota Si el controlador de minipuerto emite una indicación de estado de NDIS_STATUS_PM_WAKE_REASON , debe hacerlo antes de emitir la indicación de estado NDIS_STATUS_LINK_STATE .