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 |