Registro de funciones de controlador de suspensión selectiva de NDIS

Si un controlador de minipuerto admite la suspensión selectiva de NDIS, NDIS notifica al controlador que el adaptador de red subyacente se ha vuelto inactivo. El controlador de minipuerto debe proporcionar las siguientes funciones para controlar estas notificaciones inactivas:

MiniportIdleNotification
NDIS llama a la función de controlador MiniportIdleNotification para notificar al controlador de miniporte que el adaptador de red se ha vuelto inactivo. El controlador de minipuerto controla la notificación inactiva al determinar 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 paquete de solicitud de E/S (IRP) para una solicitud de inactividad USB (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) al controlador de bus USB subyacente. A través del procesamiento de este IRP, se notifica al controlador de minipuerto que el adaptador está inactivo y se puede pasar a un estado de bajo consumo.

MiniportCancelIdleNotification
NDIS llama a la función de controlador MiniportCancelIdleNotification para cancelar la notificación inactiva pendiente. Cuando se llama a esta función, el controlador de minipuerto cancela los IRP específicos del bus que puedan haber emitido previamente para la notificación inactiva.

Por ejemplo, cuando se llama a MiniportCancelIdleNotification , el miniporte USB debe cancelar la solicitud de inactividad USB emitida anteriormente. Cuando se cancela el IRP, se notifica al controlador de minipuerto que el adaptador ahora puede pasar a un estado de alimentación completa.

Cuando se llama a la función DriverEntry del controlador de miniporte, el controlador registra sus funciones de controlador de suspensión selectiva NDIS siguiendo estos pasos:

  1. El controlador de minipuerto debe establecer el miembro SetOptionsHandler de la estructura NDIS_MINIPORT_DRIVER_CHARACTERISTICS en el punto de entrada de la función MiniportSetOptions del controlador. El controlador llama a NdisMRegisterMiniportDriver para registrar su estructura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS con NDIS.

  2. NDIS llama a la función MiniportSetOptions en el contexto de la llamada a NdisMRegisterMiniportDriver.

    Cuando se llama a MiniportSetOptions , el controlador de minipuerto inicializa una estructura de NDIS_MINIPORT_SS_CHARACTERISTICS con punteros a las funciones del controlador. A continuación, el controlador de miniporte llama a NdisSetOptionalHandlers y establece el parámetro OptionalHandlers en un puntero a la estructura NDIS_MINIPORT_SS_CHARACTERISTICS .

Para obtener más información sobre cómo controlar las notificaciones inactivas para la suspensión selectiva de NDIS, consulte Notificaciones de suspensión inactiva selectiva de NDIS.