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

Confira também

MiniportCancelIdleNotification

NdisMIdleNotificationComplete