Compartir a través de


Información general sobre la suspensión selectiva de NDIS

A partir de NDIS 6.30, la interfaz de suspensión selectiva NDIS permite a NDIS suspender un adaptador de red inactivo pasando el adaptador a un estado de baja potencia. Esto permite al sistema reducir la sobrecarga de CPU y energía del adaptador.

La suspensión selectiva de NDIS es especialmente útil para los adaptadores de red basados en la interfaz USB v1.1 y v2.0. Estos adaptadores sondean continuamente los paquetes recibidos independientemente de si están activos o inactivos. Al suspender adaptadores USB inactivos, la sobrecarga de CPU se puede reducir hasta un 10 %.

La suspensión selectiva NDIS se basa en la tecnología de suspensión selectiva USB . Sin embargo, la suspensión selectiva de NDIS está diseñada para ser independiente del bus. De este modo, NDIS emite paquetes de solicitud de E/S independientes de bus para la suspensión selectiva. Esto hace que el controlador de minipuerto sea responsable de emitir las IRP necesarias para la suspensión selectiva en un autobús específico. Por ejemplo, los controladores de minipuerto para adaptadores de red USB emiten el IRP (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) de solicitud de inactividad USB específico del bus USB durante una operación de suspensión selectiva.

NDIS y el controlador de minipuerto participan en la suspensión selectiva NDIS de la siguiente manera:

  1. Si un controlador de minipuerto ha registrado su compatibilidad con la suspensión selectiva de NDIS, NDIS supervisa la actividad de E/S del adaptador de red. La actividad de E/S incluye indicaciones de paquetes de recepción, finalización de paquetes de envío y solicitudes de OID que administra el controlador de miniport.

  2. NDIS considera que el adaptador de red está inactivo si ha estado inactivo durante más tiempo que un período de tiempo de espera de inactividad especificado. Cuando esto sucede, NDIS inicia una operación de suspensión selectiva mediante la emisión de una notificación inactiva al controlador de miniporte para realizar la transición del adaptador de red a un estado de baja potencia.

    Nota

    La longitud del período de tiempo de espera de inactividad se especifica mediante el valor de la palabra clave INF estandarizada *SSIdleTimeout . Para obtener más información sobre esta palabra clave, vea Palabras clave INF estandarizadas para suspensión selectiva de NDIS.  

    Para obtener más información sobre cómo NDIS determina que un adaptador de red está inactivo, consulte Cómo NDIS detecta adaptadores de red inactivos.

  3. NDIS emite la notificación inactiva al controlador de minipuerto llamando a la función de controlador MiniportIdleNotification del controlador. Cuando se llama a esta función, el controlador de minipuerto determina si el adaptador de red puede pasar a un estado de bajo consumo. El conductor de minipuerto realiza esta determinación de una manera específica del autobús.

    Por ejemplo, un controlador de minipuerto USB determina si el adaptador de red puede pasar a un estado de bajo consumo mediante la emisión de un IRP de solicitud inactiva USB (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) al controlador de bus USB subyacente. Esto informa al controlador de bus de que el adaptador de red está inactivo y confirma si el adaptador se puede pasar a un estado de bajo consumo.

    Nota

    El controlador de minipuerto debe especificar una rutina de devolución de llamada y finalización para el IRP de solicitud inactiva USB.

    Para obtener más información sobre cómo un controlador de minipuerto controla una notificación inactiva, consulte Control de la notificación de suspensión inactiva selectiva de NDIS.

  4. Una vez que el controlador de miniporte confirma que el adaptador de red puede pasar a un estado de bajo consumo, llama a NdisMIdleNotificationConfirm. En esta llamada, el controlador de minipuerto especifica el estado de energía más bajo al que el adaptador de red puede realizar la transición.

  5. Cuando se llama a NdisMIdleNotificationConfirm , NDIS emite solicitudes de OID al controlador de miniporte para preparar el adaptador para la transición a un estado de bajo consumo. NDIS también emite IRP al controlador de bus subyacente para establecer el adaptador en un estado de bajo consumo.

  6. Una vez suspendido el adaptador de red, permanece en un estado de bajo consumo hasta que se cancela la notificación de inactividad pendiente.

    NDIS cancela la notificación inactiva pendiente llamando a la función de controlador MiniportCancelIdleNotification del controlador de miniporte. NDIS llama a esta función de controlador si se cumplen una o varias de las condiciones siguientes:

    • NDIS detecta el envío de solicitudes de paquetes o solicitudes de OID que se emiten al controlador de miniporte desde el protocolo o los controladores de filtro excesivos.

    • El adaptador de red señala un evento de reactivación. Esto puede ocurrir cuando el adaptador recibe un paquete o detecta un cambio en su estado de conexión multimedia.

    Una vez suspendido el adaptador de red, el controlador de minipuerto también puede completar la notificación inactiva para reanudar el adaptador a un estado de alimentación completa. Las razones para hacerlo son específicas del diseño y los requisitos del controlador y el adaptador.

    Para obtener más información sobre cómo NDIS cancela la notificación de inactividad, vea Cancelar la notificación de suspensión inactiva selectiva de NDIS.

    Para obtener más información sobre cómo el controlador de minipuerto completa la notificación de inactividad, consulte Finalización de la notificación de suspensión selectiva de suspensión inactiva de NDIS.

  7. Cuando se llama a la función de controlador MiniportCancelIdleNotification , el controlador de miniporte determina si el adaptador de red puede reanudarse a un estado de energía completa. El controlador también cancela los IRP específicos del bus que se hayan emitido anteriormente para la notificación inactiva.

    La determinación de que el adaptador de red puede pasar a un estado de potencia completa es específico del bus. Por ejemplo, cuando se llama a MiniportCancelIdleNotification , el miniporte USB debe cancelar la solicitud de inactividad USB emitida anteriormente IRP. En cuanto el controlador USB canceló el IRP, llama a la rutina de finalización del IRP para confirmar que el IRP se cancela y el adaptador de red puede reanudarse a un estado de energía completa. En el contexto de la rutina de finalización, el controlador de minipuerto llama a NdisMIdleNotificationComplete.

    Cuando la minipuerta determina que el adaptador de red puede reanudarse en un estado de energía completa, llama a NdisMIdleNotificationCompleTe. Esta llamada notifica al NDIS que se ha completado la notificación inactiva. DESPUÉS, NDIS continúa con la finalización de la operación de suspensión selectiva mediante la transición del adaptador de red a un estado de alimentación completa.

  8. Cuando se llama a NdisMIdleNotificationComplete , NDIS emite solicitudes de OID al controlador de miniporte para preparar el adaptador para la transición a un estado de energía completa. NDIS también emite IRP al controlador de bus subyacente para establecer el adaptador en un estado de alimentación completa.

  9. Cuando el adaptador de red se reanuda a un estado de energía completa, se completa la operación de suspensión selectiva. NDIS reanuda la supervisión de la actividad de E/S del adaptador de red. Si el adaptador deja de estar inactivo después de otro período de tiempo de espera de inactividad, NDIS emite una notificación inactiva al controlador de miniporte para suspender el adaptador de red.