MINIPORT_IDLE_NOTIFICATION função de retorno de chamada (ndis.h)
O NDIS chama a função de manipulador MiniportIdleNotification para iniciar a operação de suspensão seletiva do NDIS em um adaptador de rede ocioso. Por meio dessa operação, o adaptador de rede é suspenso e transferido para um estado de baixa potência.
Sintaxe
MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;
NDIS_STATUS MiniportIdleNotification(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] BOOLEAN ForceIdle
)
{...}
Parâmetros
[in] MiniportAdapterContext
Um identificador para uma área de contexto que o driver de miniporto alocou em sua função MiniportInitializeEx . O driver de miniporta usa essa área de contexto para manter informações de estado para um adaptador de rede.
[in] ForceIdle
Um valor BOOLEAN que, quando definido como TRUE, especifica que o driver de miniporto não deve vetar a notificação ociosa e deve continuar com a transição de estado de baixa potência.
Para obter mais informações sobre o parâmetro ForceIdle , consulte a seção Comentários.
Retornar valor
MiniportIdleNotification retorna um dos seguintes valores de status:
Código de retorno | Descrição |
---|---|
NDIS_STATUS_PENDING | O driver de miniporta lidou com êxito com a notificação ociosa. A notificação é deixada em um estado pendente até que o driver de miniporto chame NdisMIdleNotificationComplete. Nota: O driver de miniporto não deve retornar NDIS_STATUS_SUCCESS de MiniportIdleNotification. |
NDIS_STATUS_BUSY | O driver de miniporta vetou a notificação ociosa porque o adaptador de rede ainda está sendo usado. Observação:MiniportIdleNotification não deverá retornar esse código status se o parâmetro ForceIdle estiver definido como TRUE. |
NDIS_STATUS_FAILURE | O motorista do miniporto não pôde emitir um IRP específico do ônibus com êxito. |
Comentários
A função de manipulador MiniportIdleNotification é necessária para drivers de miniporta que dão suporte à interface de suspensão seletiva do NDIS. Para obter mais informações sobre como o driver registra suas funções de manipulador de suspensão seletiva, consulte Registrando funções de manipulador de suspensão seletiva do NDIS.
O NDIS define o parâmetro ForceIdle como FALSE quando o adaptador de rede está inativo há mais tempo do que o período de tempo limite ocioso. Portanto, o NDIS suspende seletivamente apenas o adaptador de rede.
A duração do período de tempo limite ocioso é especificada pelo valor do inf *SSIdleTimeout palavra-chave. Para obter mais informações sobre esse palavra-chave, consulte Palavras-chave INF padronizadas para suspensão seletiva do NDIS.
Observação
O NDIS define o parâmetro ForceIdle como TRUE somente quando um sistema compatível com a tecnologia AOAC (Always On Always Connected) está fazendo a transição para um estado de Espera Conectado.
Se o driver de miniporta determinar que o adaptador de rede está sendo usado, ele poderá vetar a solicitação de notificação ociosa retornando NDIS_STATUS_BUSY. Isso faz com que o NDIS reinicie o monitor da atividade no adaptador de rede.
Se o adaptador ficar inativo novamente dentro do período de tempo limite ocioso, o NDIS chamará MiniportIdleNotification.
Observação
O driver de miniporta não deverá retornar NDIS_STATUS_BUSY se o parâmetro ForceIdle estiver definido como TRUE.
Depois que a notificação ociosa for emitida, ela poderá ser cancelada e concluída da seguinte maneira:
O NDIS poderá cancelar a notificação ociosa pendente se as seguintes condições forem verdadeiras:
- Um protocolo ou driver de filtro em excesso emite uma solicitação de envio de pacote ou uma solicitação OID para o driver de miniport.
- O adaptador subjacente sinaliza um evento de ativação, como receber um pacote que corresponda a um padrão WOL (wake-on-LAN) ou detectar uma alteração em sua conexão de mídia status.
O NDIS cancela a notificação ociosa chamando MiniportCancelIdleNotification. Quando essa função de manipulador é chamada, o driver de miniporta cancela todos os IRPs específicos do barramento que ele pode ter emitido anteriormente para a notificação ociosa. Por fim, o driver de miniporto chama NdisMIdleNotificationComplete para concluir a notificação ociosa.
Depois que o adaptador de rede estiver em um estado de baixa potência, o driver de miniporta poderá concluir a notificação ociosa em si para retomar o adaptador para um estado de energia total. Os motivos para fazer isso são específicos para o design e os requisitos do driver e do adaptador.
O driver de miniporto conclui a notificação ociosa chamando NdisMIdleNotificationComplete. Para obter mais informações sobre como o driver de miniporto conclui a notificação ociosa, consulte Concluindo a notificação ociosa de suspensão seletiva do NDIS.
Para obter mais informações sobre como lidar com notificações ociosas para suspensão seletiva do NDIS, consulte Manipulando a notificação ociosa de suspensão seletiva do NDIS.
Para obter diretrizes sobre como implementar a função de manipulador MiniportIdleNotification , consulte Implementando uma função de manipulador MiniportIdleNotification.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.30 e posterior. |
Plataforma de Destino | Windows |
Cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | PASSIVE_LEVEL |