Baixa Energia em Desconexão de Mídia
O recurso de desconectamento de mídia baixa (D3 ao desconectar) economiza energia colocando um adaptador de rede em um estado de baixa potência (D3) quando a mídia é desconectada. Quando a mídia é reconectada, o adaptador de rede é trazido de volta para o estado de energia total (D0).
O NDIS usa o recurso D3 ao desconectar nestas condições:
O hardware do adaptador de rede deve ser capaz de gerar um evento de ativação na conexão de mídia.
O driver de miniporte deve relatar a capacidade de evento de ativação do adaptador de rede no membro MinLinkChangeWakeUp da estrutura NDIS_PM_CAPABILITIES .
O valor de MinLinkChangeWakeUp deve corresponder ao valor do membro DeviceWake da estrutura DEVICE_CAPABILITIES relatada pelo IRP IRP_MN_QUERY_CAPABILITIES .
O driver de miniporte deve se registrar como um driver NDIS 6.20 ou versão posterior.
O adaptador de rede deve ser um adaptador PCI Ethernet.
A funcionalidade de evento wake deve ser habilitada pelo arquivo INF padrão *DeviceSleepOnDisconnect palavra-chave.
O chipset do computador deve ser capaz de propagar corretamente o evento de ativação enquanto o computador está totalmente ligado. O NDIS valida isso consultando a propriedade PCI DEVPKEY_PciDevice_S0WakeupSupported.
Observe que d3 na desconexão só está disponível enquanto o computador está totalmente ligado no estado de trabalho (S0). Esse recurso é cancelado quando o computador entra em um estado de suspensão para evitar acordar o computador quando o estado do link é ciclo externo; ou seja, quando uma opção é desativada e ativada. Para obter mais informações sobre a configuração do estado de baixa potência quando um computador entra em um estado de suspensão, consulte Baixa potência para ativar na LAN.
Um driver de miniporte relata d3 sobre os recursos de desconexão durante a inicialização. Para obter mais informações sobre como relatar o D3 sobre recursos de desconexão, consulte Recursos de Gerenciamento de Energia de Relatórios.
O arquivo INF padrão *DeviceSleepOnDisconnect palavra-chave especifica se o dispositivo habilitou ou desabilitou o suporte para D3 ao desconectar. Para obter mais informações sobre esse palavra-chave INF, consulte Palavras-chave INF padronizadas para Gerenciamento de Energia.
Durante a inicialização, um miniportor que dá suporte a D3 na desconexão deve relatar o nível de energia mais baixo em que pode dar suporte à capacidade de notificar o sistema operacional do evento de conexão de mídia. O driver de miniporte relata o nível de energia no membro MinLinkChangeWakeUp da estrutura NDIS_PM_CAPABILITIES . Por exemplo, o driver de miniport pode relatar NdisDeviceStateD3.
A figura a seguir ilustra a sequência de eventos para definir um adaptador de rede como um estado de baixa potência após um evento de desconexão de mídia.
Quando o adaptador detecta uma desconexão de mídia, a seguinte sequência ocorre:
O hardware do adaptador de rede detecta um evento de desconexão de mídia e passa as informações para o driver de miniport.
O driver de miniporte notifica o NDIS de um evento de desconexão de mídia usando a indicação de status NDIS_STATUS_LINK_STATE. O membro StatusBuffer da estrutura NDIS_STATUS_INDICATION contém uma estrutura NDIS_LINK_STATE . O valor MediaConnectStateDisconnected é definido no membro MediaConnectState da estrutura NDIS_LINK_STATE .
O NDIS usa OID_PM_PARAMETERS para desabilitar o Wake-on-LAN e habilitar o wake on media connect (NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED é definido no membro WakeUpFlags ).
O NDIS usa o OID OID_PNP_SET_POWER para notificar o driver de miniporto do novo estado de energia (D3).
O NDIS envia ao barramento PCIe um IRP_MN_WAIT_WAKE IRP para aguardar um evento de reconexão.
O NDIS define o barramento PCIe para o estado D3 com o IRP IRP_MN_SET_POWER .
A figura a seguir ilustra a sequência de eventos para restaurar a energia total para um adaptador de rede após um evento de conexão de mídia.
Quando a mídia é reconectada, a seguinte sequência ocorre:
O adaptador de rede ativa o sistema afirmando WAKE# no barramento PCIe ou PME# no barramento PCI.
O barramento conclui o IRP IRP_MN_WAIT_WAKE pendente. O IRP está pendente de conclusão da última etapa na sequência de desconexão.
O NDIS define o barramento como de energia total (D0) com o IRP IRP_MN_SET_POWER .
O NDIS notifica o driver de miniporto de que o adaptador de rede está no estado de energia total (D0) com a solicitação de conjunto de OID de OID_PNP_SET_POWER.
O adaptador de rede notifica o NDIS de um evento de conexão de mídia com a indicação de status NDIS_STATUS_LINK_STATE. O valor MediaConnectStateConnected é definido no membro MediaConnectState da estrutura NDIS_LINK_STATE .
A partir do NDIS 6.30, se o driver de miniporto der suporte a NDIS_STATUS_PM_WAKE_REASON status indicações, ele deverá emitir essa notificação de status se o adaptador de rede ativar o sistema. O driver emite essa notificação status enquanto está tratando a solicitação de conjunto de OID de OID_PNP_SET_POWER para a transição para um estado de energia total (D0).
Para obter mais informações, confira Indicações de status do motivo do NDIS Wake.
Nota Se o driver de miniporto emitir uma indicação de NDIS_STATUS_PM_WAKE_REASON status, ele deverá fazer isso antes de emitir a indicação de status NDIS_STATUS_LINK_STATE.