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