Inizializzare i driver intermedi per gestire gli eventi PnP e di gestione energetica
Per gestire gli eventi plug and play (PnP) e risparmio energia, i driver intermedi NDIS devono eseguire le operazioni seguenti:
Quando NDIS chiama la funzione ProtocolBindAdapterEx del driver intermedio, il parametro BindParameters punta a una struttura NDIS_PM_CAPABILITIES che contiene le funzionalità dell'adattatore miniport sottostante. Le funzionalità di risparmio energia vengono segnalate in uno dei membri seguenti:
PowerManagementCapabilities
Per i driver intermedi NDIS 6.0 e NDIS 6.1, questo membro contiene le funzionalità di risparmio energia all'interno di una struttura NDIS_PNP_CAPABILITIES. Per altre informazioni su questa struttura, vedere OID_PNP_CAPABILITIES.
Nota Per i driver intermediari NDIS 6.20 e versioni successive, il membro PowerManagementCapabilities è impostato su NULL e le funzionalità di gestione energetica vengono segnalate nel membro PowerManagementCapabilitiesEx.
PowerManagementCapabilitiesEx
Per i driver intermedi NDIS 6.20 e versioni successive, questo membro contiene le funzionalità di risparmio energia all'interno di una struttura NDIS_PM_CAPABILITIES.
Nota Per i driver intermedi di NDIS 6.0 e NDIS 6.1, il membro PowerManagementCapabilitiesEx è impostato su NULL e le capacità di gestione dell'energia sono riportate nel membro PowerManagementCapabilities.
Nota Se la scheda miniport sottostante non supporta gli eventi di risparmio energia, i membri PowerManagementCapabilities e PowerManagementCapabilitiesEx vengono impostati su NULL.
Quando NDIS chiama MiniportInitializeEx per ogni miniport virtuale supportato dal driver intermedio NDIS, il driver segnala le funzionalità di risparmio energia chiamando NdisMSetMiniportAttributes nei modi seguenti:
A seconda della versione del driver intermedio NDIS, le funzionalità di risparmio energia vengono segnalate nel membro PowerManagementCapabilities (per i driver intermedi NDIS 6.0 e NDIS 6.1) o membro PowerManagementCapabilitiesEx (per i driver intermedi NDIS 6.20 e versioni successive) di NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES. Se l'PowerManagementCapabilities o membro PowerManagementCapabilitiesEx della struttura NDIS_BIND_PARAMETERS non è NULL, il driver intermedio deve eseguire le operazioni seguenti:
Salvare i valori originali dei membri MinMagicPacketWakeUp, MinPatternWakeUpe MinLinkChangeWakeUp del PowerManagementCapabilities(NDIS 6.0 e NDIS 6.1) o dei membri PowerManagementCapabilitiesEx(NDIS 6.20 e versioni successive).
Disabilitare la funzionalità di risparmio energia impostando i membri MinMagicPacketWakeUp, MinPatternWakeUpe MinLinkChangeWakeUp a NdisDeviceStateUnspecified.
Passare l'indirizzo della struttura NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES modificata come parametro MiniportAttributes nella chiamata a NdisMSetMiniportAttributes.
Un driver intermedio deve impostare il flag di NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND nel AttributeFlags membro della struttura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Il driver deve passare l'indirizzo di questa struttura come parametro MiniportAttributes nella chiamata a NdisMSetMiniportAttributes.
Per ulteriori informazioni sui requisiti di inizializzazione dei driver NDIS intermedi, vedere Inizializzazione di miniport virtuali.