Condividi tramite


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:

    1. 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.

    2. 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.