Como o NDIS detecta adaptadores de rede ociosos
Depois que o driver de miniporto habilitar a suspensão seletiva do NDIS e registrar suas funções de manipulador, o NDIS monitorará a atividade de E/S do adaptador de rede da seguinte maneira:
O NDIS monitora as chamadas para as funções de manipulador de E/S que o driver de miniporto registra por meio das estruturas NDIS_MINIPORT_DRIVER_CHARACTERISTICS e NDIS_MINIPORT_PNP_CHARACTERISTICS . Por exemplo, o NDIS monitora chamadas para MiniportSendNetBufferLists ou MiniportReturnNetBufferLists do driver de miniport para determinar se o driver está envolvido em qualquer atividade de E/S de pacote.
O NDIS também monitora as chamadas de NdisOidRequest e NdisDirectOidRequest feitas por drivers de protocolo excessivamente.
Nota O NDIS monitora apenas essas solicitações de OID (identificador de objeto) para o driver de miniporto subjacente que não são tratados diretamente pelo NDIS.
O NDIS determina que o adaptador de rede está ocioso se não detectar nenhuma atividade no adaptador por um período de tempo limite ocioso. A duração desse período de tempo limite é especificada pelo valor da palavra-chave INF padronizada *SSIdleTimeout. Para obter mais informações sobre esse palavra-chave, consulte Palavras-chave INF padronizadas para suspensão seletiva do NDIS.
Depois que o adaptador de rede ficar ocioso, o NDIS iniciará a operação de suspensão seletiva. Por meio dessa operação, o adaptador de rede é suspenso fazendo a transição para um estado de baixa potência.
O NDIS inicia essa operação de suspensão seletiva emitindo uma notificação ociosa para o driver de miniporto. O NDIS faz isso chamando a função do manipulador MiniportIdleNotification do driver. Para obter mais informações sobre como o driver de miniporto lida com essa notificação, consulte Manipulando a notificação ociosa de suspensão seletiva do NDIS.
Se o NDIS detectar que as solicitações de E/S para o adaptador de rede são emitidas de drivers de sobreposição ou se o adaptador sinalizar um evento de ativação, o NDIS cancelará a notificação ociosa. O NDIS faz isso chamando a função do manipulador MiniportCancelIdleNotification do driver de miniport.
Para obter mais informações sobre como o NDIS cancela a notificação ociosa, consulte Cancelando a notificação ociosa de suspensão seletiva do NDIS.
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.