MINIPORT_IDLE_NOTIFICATION función de devolución de llamada (ndis.h)

NDIS llama a la función de controlador MiniportIdleNotification para iniciar la operación de suspensión selectiva de NDIS en un adaptador de red inactivo. A través de esta operación, el adaptador de red se suspende y pasa a un estado de bajo consumo.

Sintaxis

MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;

NDIS_STATUS MiniportIdleNotification(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] BOOLEAN ForceIdle
)
{...}

Parámetros

[in] MiniportAdapterContext

Identificador de un área de contexto que el controlador de minipuerto asignó en su función MiniportInitializeEx . El controlador de minipuerto usa este área de contexto para mantener la información de estado de un adaptador de red.

[in] ForceIdle

Valor BOOLEAN que, cuando se establece en TRUE, especifica que el controlador de miniporte no debe vetar la notificación inactiva y debe continuar con la transición de estado de baja potencia.

Para obtener más información sobre el parámetro ForceIdle , vea la sección Comentarios.

Valor devuelto

MiniportIdleNotification devuelve uno de los siguientes valores de estado:

Código devuelto Descripción
NDIS_STATUS_PENDING El controlador de minipuerto controló correctamente la notificación inactiva. La notificación se deja en un estado pendiente hasta que el controlador de miniporte llama a NdisMIdleNotificationComple. Nota: El controlador de minipuerto no debe devolver NDIS_STATUS_SUCCESS desde MiniportIdleNotification.
NDIS_STATUS_BUSY El controlador de minipuerto ha vetado la notificación inactiva porque el adaptador de red todavía se está usando. Nota:MiniportIdleNotification no debe devolver este código de estado si el parámetro ForceIdle está establecido en TRUE.
NDIS_STATUS_FAILURE El controlador de minipuerto no pudo emitir un IRP específico del bus correctamente.

Comentarios

La función de controlador MiniportIdleNotification es necesaria para los controladores de minipuerto que admiten la interfaz de suspensión selectiva NDIS. Para obtener más información sobre cómo el controlador registra sus funciones de controlador de suspensión selectiva, consulte Registro de funciones de controlador de suspensión selectiva de NDIS.

NDIS establece el parámetro ForceIdle en FALSE cuando el adaptador de red ha estado inactivo durante más tiempo que el período de tiempo de espera de inactividad. Por lo tanto, NDIS suspende selectivamente solo el adaptador de red.

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

Nota

NDIS establece el parámetro ForceIdle en TRUE solo cuando un sistema compatible con la tecnología always connected (AOAC) de Always On está realizando la transición a un estado de espera conectado.

Si el controlador de minipuerto determina que se está usando el adaptador de red, puede vetar la solicitud de notificación inactiva devolviendo NDIS_STATUS_BUSY. Esto hace que NDIS reinicie el monitor de actividad en el adaptador de red.

Si el adaptador vuelve a estar inactivo dentro del período de tiempo de espera de inactividad, NDIS llama a MiniportIdleNotification.

Nota

El controlador de minipuerto no debe devolver NDIS_STATUS_BUSY si el parámetro ForceIdle está establecido en TRUE.

Una vez emitida la notificación inactiva, se puede cancelar y completar de la siguiente manera:

  • NDIS puede cancelar la notificación de inactividad pendiente si se cumplen las condiciones siguientes:

    • Un protocolo o controlador de filtro excesivo emite una solicitud de paquete de envío o una solicitud de OID al controlador de minipuerto.
    • El adaptador subyacente señala un evento de reactivación, como recibir un paquete que coincida con un patrón wake-on-LAN (WOL) o detectar un cambio en su estado de conexión multimedia.

    NDIS cancela la notificación inactiva llamando a MiniportCancelIdleNotification. Cuando se llama a esta función de controlador, el controlador de minipuerto cancela los IRP específicos del bus que se hayan emitido previamente para la notificación inactiva. Por último, el controlador de minipuerto llama a NdisMIdleNotificationComple para completar la notificación inactiva.

  • Una vez que el adaptador de red está en un estado de bajo consumo, el controlador de minipuerto puede completar la notificación inactiva en sí para reanudar el adaptador a un estado de energía completa. Las razones para hacerlo son específicas del diseño y los requisitos del controlador y el adaptador.

    El controlador de minipuerto completa la notificación inactiva llamando a NdisMIdleNotificationComple. 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.

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

Para obtener instrucciones sobre cómo implementar la función de controlador MiniportIdleNotification , consulte Implementación de una función de controlador MiniportIdleNotification.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.30 y versiones posteriores.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL PASSIVE_LEVEL

Consulte también

MiniportCancelIdleNotification

NdisMIdleNotificationCompleComplete