Inicializando drivers intermediários para lidar com eventos de gerenciamento de energia e PnP

Para lidar com Plug and Play (PnP) e eventos de gerenciamento de energia, os drivers intermediários do NDIS devem fazer o seguinte:

  • Quando o NDIS chama a função ProtocolBindAdapterEx do driver intermediário, o parâmetro BindParameters aponta para uma estrutura NDIS_PM_CAPABILITIES que contém os recursos do adaptador de miniporto subjacente. Os recursos de gerenciamento de energia são relatados em um dos seguintes membros:

    • PowerManagementCapabilities

      Para drivers intermediários NDIS 6.0 e NDIS 6.1, esse membro contém os recursos de gerenciamento de energia em uma estrutura NDIS_PNP_CAPABILITIES. Para obter mais informações sobre essa estrutura, consulte OID_PNP_CAPABILITIES.

      Nota Para drivers intermediários NDIS 6.20 e posteriores, o membro PowerManagementCapabilities é definido como NULL e os recursos de gerenciamento de energia são relatados no membro PowerManagementCapabilitiesEx .

    • PowerManagementCapabilitiesEx

      Para drivers intermediários NDIS 6.20 e posteriores, esse membro contém os recursos de gerenciamento de energia em uma estrutura NDIS_PM_CAPABILITIES .

      Nota Para drivers intermediários NDIS 6.0 e NDIS 6.1, o membro PowerManagementCapabilitiesEx é definido como NULL e os recursos de gerenciamento de energia são relatados no membro PowerManagementCapabilities .

Nota Se o adaptador de miniporta subjacente não der suporte a eventos de gerenciamento de energia, os membros PowerManagementCapabilities e PowerManagementCapabilitiesEx serão definidos como NULL.

  • Quando o NDIS chama MiniportInitializeEx para cada miniporto virtual compatível com o driver intermediário do NDIS, o driver relata seus recursos de gerenciamento de energia chamando NdisMSetMiniportAttributes das seguintes maneiras:

    1. Dependendo da versão do driver intermediário do NDIS, os recursos de gerenciamento de energia são relatados no membro PowerManagementCapabilities (para drivers intermediários NDIS 6.0 e NDIS 6.1) ou no membro PowerManagementCapabilitiesEx (para drivers intermediários NDIS 6.20 e posteriores) de NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES. Se o membro PowerManagementCapabilities ou PowerManagementCapabilitiesEx da estrutura NDIS_BIND_PARAMETERS não for NULL, o driver intermediário deverá fazer o seguinte:

      • Salve os valores originais dos membros MinMagicPacketWakeUp, MinPatternWakeUp e MinLinkChangeWakeUp dos membros PowerManagementCapabilities(NDIS 6.0 e NDIS 6.1) ou PowerManagementCapabilitiesEx(NDIS 6.20 e posterior).

      • Desabilite a funcionalidade de gerenciamento de energia definindo os membros MinMagicPacketWakeUp, MinPatternWakeUp e MinLinkChangeWakeUp como NdisDeviceStateUnspecified.

      • Passe o endereço da estrutura de NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES modificada como o parâmetro MiniportAttributes na chamada para NdisMSetMiniportAttributes.

    2. Um driver intermediário deve definir o sinalizador NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND no membro AttributeFlags da estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . O driver deve passar o endereço dessa estrutura como o parâmetro MiniportAttributes na chamada para NdisMSetMiniportAttributes.

    Para obter mais informações sobre os requisitos de inicialização de drivers intermediários do NDIS, consulte Inicializando miniportos virtuais.