Condividi tramite


Basso consumo alla disconnessione dei supporti

La funzionalità di disconnessione multimediale (D3 su disconnessione) consente di risparmiare energia inserendo una scheda di rete in uno stato di bassa potenza (D3) quando il supporto viene disconnesso. Quando il supporto viene riconnesso, la scheda di rete viene restituita allo stato di alimentazione completa (D0).

NDIS usa la funzionalità D3 per disconnettersi in queste condizioni:

  • L'hardware della scheda di rete deve essere in grado di generare un evento di riattivazione nella connessione multimediale.

  • Il driver miniport deve segnalare la funzionalità di evento di riattivazione della scheda di rete nel membro MinLinkChangeWakeUpdella struttura NDIS_PM_CAPABILITIES.

  • Il valore di MinLinkChangeWakeUp deve corrispondere al valore del membro DeviceWake della struttura DEVICE_CAPABILITIES segnalata dall'IRP IRP_MN_QUERY_CAPABILITIES.

  • Il driver miniport deve registrarsi come driver NDIS 6.20 o versione successiva.

  • La scheda di rete deve essere una scheda PCI Ethernet.

  • La funzionalità dell'evento di riattivazione deve essere abilitata dalla parola chiave del file INF standard *DeviceSleepOnDisconnect.

  • Il chipset del computer deve essere in grado di propagare correttamente l'evento di riattivazione mentre il computer è completamente alimentato. NDIS convalida questa operazione eseguendo una query sulla proprietà PCI DEVPKEY_PciDevice_S0WakeupSupported.

Si noti che D3 sulla disconnessione è disponibile solo mentre il computer è completamente alimentato nello stato di lavoro (S0). Questa funzionalità viene annullata quando il computer entra in uno stato di sospensione per impedire la riattivazione del computer quando lo stato del collegamento viene ciclizzato esternamente; ovvero, quando un commutatore viene disattivato e attivato. Per altre informazioni sull'impostazione dello stato di bassa potenza quando un computer entra in uno stato di sospensione, vedere Bassa potenza per riattivazione LAN.

Un driver miniport segnala D3 sulle funzionalità di disconnessione durante l'inizializzazione. Per altre informazioni sulla creazione di report D3 sulle funzionalità di disconnessione, vedere Creazione di report sulle funzionalità di Power Management.

La parola chiave del file INF standard *DeviceSleepOnDisconnect specifica se il dispositivo ha abilitato o disabilitato il supporto per D3 sulla disconnessione. Per altre informazioni su questa parola chiave INF, vedere Parole chiave INF standardizzate per Power Management.

Durante l'inizializzazione, i driver miniport che supportano la disconnessione D3 devono segnalare il livello di potenza più basso in cui può supportare la possibilità di notificare al sistema operativo l'evento di connessione multimediale. Il driver miniport segnala il livello di potenza nel membro MinLinkChangeWakeUp della struttura NDIS_PM_CAPABILITIES . Ad esempio, il driver miniport può segnalare NdisDeviceStateD3.

La figura seguente illustra la sequenza di eventi per impostare una scheda di rete su uno stato di bassa potenza dopo un evento di disconnessione multimediale.

Diagramma che illustra la sequenza di eventi per impostare una scheda di rete su uno stato di bassa potenza dopo un evento di disconnessione multimediale.

Quando l'adattatore rileva una disconnessione multimediale, si verifica la sequenza seguente:

  1. L'hardware della scheda di rete rileva un evento di disconnessione multimediale e passa le informazioni al driver miniport.

  2. Il driver miniport notifica NDIS di un evento di disconnessione multimediale usando l'indicazione di stato NDIS_STATUS_LINK_STATE . Il membro StatusBuffer della struttura NDIS_STATUS_INDICATION contiene una struttura NDIS_LINK_STATE . Il valore MediaConnectStateDisconnected è impostato nel membro MediaConnectState della struttura NDIS_LINK_STATE .

  3. NDIS usa OID_PM_PARAMETERS per disabilitare Wake-on-LAN e per abilitare la connessione multimediale (NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED è impostato nel membro WakeUpFlags ).

  4. NDIS usa l'OID OID_PNP_SET_POWER per notificare al driver miniport lo stato di alimentazione (D3).

  5. NDIS invia il bus PCIe a un IRP_MN_WAIT_WAKE IRP per attendere un evento di riconnessione.

  6. NDIS imposta il bus PCIe sullo stato D3 con l'IRP_MN_SET_POWER IRP.

Nella figura seguente viene illustrata la sequenza di eventi per ripristinare la potenza completa a una scheda di rete dopo un evento di connessione multimediale.

Diagramma che illustra la sequenza di eventi per ripristinare la potenza completa in una scheda di interfaccia di rete dopo un evento di connessione multimediale.

Quando il supporto viene riconnesso, si verifica la sequenza seguente:

  1. La scheda di rete riattiva il sistema asserendo WAKE# sul bus PCIe o PME# sul bus PCI.

  2. Il bus completa l'IRP_MN_WAIT_WAKE IRP in sospeso. L'IRP è in attesa di completamento dall'ultimo passaggio della sequenza di disconnessione.

  3. NDIS imposta il bus su alimentazione completa (D0) con l'IRP_MN_SET_POWER IRP.

  4. NDIS notifica al driver miniport che la scheda di rete si trova nello stato di alimentazione completa (D0) con la richiesta del set OID di OID_PNP_SET_POWER.

  5. La scheda di rete notifica NDIS di un evento di connessione multimediale con l'indicazione di stato NDIS_STATUS_LINK_STATE . Il valore MediaConnectStateConnected è impostato nel membro MediaConnectState della struttura NDIS_LINK_STATE .

A partire da NDIS 6.30, se il driver miniport supporta NDIS_STATUS_PM_WAKE_REASON indicazioni sullo stato, deve inviare questa notifica di stato se la scheda di rete riattiva il sistema. Il driver rilascia questa notifica di stato mentre gestisce la richiesta del set OID di OID_PNP_SET_POWER per la transizione a uno stato completo (D0).

Per altre informazioni, vedere Indicazioni sullo stato del motivo di riattivazione di NDIS.

Nota Se il driver miniport genera un'indicazione di stato NDIS_STATUS_PM_WAKE_REASON, è necessario eseguire questa operazione prima di eseguire l'indicazione dello stato NDIS_STATUS_LINK_STATE .