estrutura NDIS_PM_CAPABILITIES (ntddndis.h)

A estrutura NDIS_PM_CAPABILITIES especifica os recursos de gerenciamento de energia de um adaptador de rede.

Sintaxe

typedef struct _NDIS_PM_CAPABILITIES {
  NDIS_OBJECT_HEADER      Header;
  ULONG                   Flags;
  ULONG                   SupportedWoLPacketPatterns;
  ULONG                   NumTotalWoLPatterns;
  ULONG                   MaxWoLPatternSize;
  ULONG                   MaxWoLPatternOffset;
  ULONG                   MaxWoLPacketSaveBuffer;
  ULONG                   SupportedProtocolOffloads;
  ULONG                   NumArpOffloadIPv4Addresses;
  ULONG                   NumNSOffloadIPv6Addresses;
  NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
  NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
  NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
  ULONG                   SupportedWakeUpEvents;
  ULONG                   MediaSpecificWakeUpEvents;
} NDIS_PM_CAPABILITIES, *PNDIS_PM_CAPABILITIES;

Membros

Header

O tipo, a revisão e o tamanho da estrutura NDIS_PM_CAPABILITIES . Esse membro é formatado como uma estrutura NDIS_OBJECT_HEADER .

O driver de miniporte deve definir o membro Tipo de Cabeçalho como NDIS_OBJECT_TYPE_DEFAULT. Para especificar a versão da estrutura NDIS_PM_CAPABILITIES , o driver deve definir o membro Revision de Header como o seguinte valor:

NDIS_PM_CAPABILITIES_REVISION_2

Foram adicionadas várias alterações para o NDIS 6.30.

Defina o membro Size como NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2.

NDIS_PM_CAPABILITIES_REVISION_1

Versão original do NDIS 6.20.

Defina o membro Size como NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1.

Flags

Um valor ULONG que contém um OR bit a bit de sinalizadores. Para o NDIS 6.20, esse membro é reservado para NDIS.

A partir do NDIS 6.30, os seguintes sinalizadores são definidos:

NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede deverá ser capaz de salvar o pacote recebido que fez com que o adaptador gerasse um evento de ativação.

Se esse sinalizador estiver definido, o driver de miniporte deverá ser capaz de fazer o seguinte com esse pacote depois que o adaptador de rede fizer a transição para um estado de energia total:

Para obter mais informações sobre essa funcionalidade de gerenciamento de energia, consulte Indicações de status do motivo de ativação do NDIS.

NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED

Se esse sinalizador for definido, o driver de miniporto oferecerá suporte à suspensão seletiva do NDIS para adaptadores de rede.

Para obter mais informações sobre essa funcionalidade de gerenciamento de energia, consulte Suspensão seletiva do NDIS.

SupportedWoLPacketPatterns

Um valor ULONG que contém um OR bit a bit de sinalizadores que especificam os padrões WOL (wake-on-LAN) compatíveis com um adaptador de rede. Os drivers de miniporto usam esses sinalizadores para anunciar padrões WOL baseados em pacotes compatíveis com um adaptador de rede.

Para obter mais informações sobre esse membro, consulte a seção Comentários. Para obter mais informações sobre padrões WOL, consulte NDIS_PM_WOL_PATTERN.

NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED

O adaptador de rede pode gerar um evento de ativação quando recebe um pacote que corresponde a um padrão de bitmap configurado.

NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED

O adaptador de rede pode gerar um evento de ativação quando recebe um pacote mágico wol. Um pacote mágico contém dentro de sua carga uma cadeia de caracteres de seis bytes com um valor de 0xFF, seguido imediatamente por 16 cópias contíguas do endereço Ethernet do adaptador de rede receptor.

NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED

O adaptador de rede pode gerar um evento de ativação quando recebe um pacote SYN TCP IPv4. Hosts remotos enviam pacotes TCP SYN para iniciar uma conexão TCP com o computador local.

NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED

O adaptador de rede pode gerar um evento de ativação quando recebe um pacote SYN TCP IPv6.

NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED

Se esse sinalizador for definido, o adaptador de rede oferecerá suporte como valores curinga quaisquer valores de preenchimento zero ou não especificados para endereços IPv4 e portas TCP/UDP em um padrão WOL. Dessa forma, o valor curinga corresponde a qualquer endereço IPv4 e qualquer valor de porta do pacote de entrada no local especificado pelo padrão WOL.

Quando um adaptador de rede dá suporte a um velório baseado em IPv4 no padrão de pacote LAN, como um padrão SYN TCP IPv4, ele deve dar suporte à geração de um evento de ativação se os endereços IPv4 e os valores de porta do pacote de entrada corresponderem aos especificados no padrão de ativação.

No entanto, se o sinalizador NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED estiver definido, o adaptador de rede também poderá gerar um evento de ativação se as seguintes condições de correspondência de padrão forem verdadeiras:

  • Qualquer valor do pacote de entrada no local especificado pelo padrão WOL será uma correspondência, se o padrão WOL para esse local contiver um valor curinga.
  • Um valor do pacote de entrada no local especificado pelo padrão WOL é uma correspondência se o padrão WOL para esse local contiver um valor diferente de zero que é igual ao valor do pacote.
O driver de miniporto deve restringir eventos de ativação aos endereços e portas IPv4 especificados, a menos que um driver sobreposto habilite essa funcionalidade.
Nota Os valores curinga habilitados por esse sinalizador podem incluir endereços de origem e destino IPv4 não especificados, bem como portas de origem e destino não especificadas.
 

NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED

Se esse sinalizador for definido, o adaptador de rede oferecerá suporte como valores curinga quaisquer valores de preenchimento zero ou não especificados para endereços IPv6 e portas TCP/UDP em um padrão WOL. Dessa forma, o valor curinga corresponde a qualquer endereço IPv6 e qualquer valor de porta do pacote de entrada no local especificado pelo padrão WOL.

Quando um adaptador de rede dá suporte a um velório baseado em IPv6 no padrão de pacote LAN, como um padrão SYN TCP IPv6, ele deve dar suporte à geração de um evento de ativação se os endereços IPv6 e os valores de porta do pacote de entrada corresponderem aos especificados no padrão de ativação.

No entanto, se o sinalizador NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED estiver definido, o adaptador de rede também poderá gerar um evento de ativação se as seguintes condições de correspondência de padrão forem verdadeiras:

  • Qualquer valor do pacote de entrada no local especificado pelo padrão WOL será uma correspondência, se o padrão WOL para esse local contiver um valor curinga.
  • Um valor do pacote de entrada no local especificado pelo padrão WOL é uma correspondência se o padrão WOL para esse local contiver um valor diferente de zero que é igual ao valor do pacote.
O driver de miniporto deve restringir eventos de ativação aos endereços e portas IPv6 especificados, a menos que um driver sobreposto habilite essa funcionalidade.
Nota Os valores curinga habilitados por esse sinalizador podem incluir endereços de origem e destino IPv6 não especificados, bem como portas de origem e destino não especificadas.
 

NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED

O adaptador de rede pode gerar um evento de ativação quando recebe uma mensagem de identificador de solicitação EAPOL.

NumTotalWoLPatterns

Um valor ULONG que contém o número total de padrões WOL compatíveis com um adaptador de rede. Essa é a soma de "número de padrões de protocolo WOL com suporte" e "número de padrões de bitmap WOL com suporte".

Por exemplo, se o driver der suporte a 8 padrões de bitmap flexíveis, IPv4 TCP SYN (por meio de filtro predefinido) e pacote mágico, você relatará 9 em NumTotalWoLPatterns. (8 bitmaps + 1 IPv4 TCP SYN = 9)

Nota O número total de padrões WOL não inclui o padrão de ativação de pacote mágico.
 
Para obter mais informações sobre padrões de protocolo WOL, consulte NDIS_PM_WOL_PATTERN.

MaxWoLPatternSize

Um valor ULONG que contém o número máximo de bytes que podem ser comparados com um padrão.

MaxWoLPatternOffset

Um valor ULONG que contém o número de bytes em um pacote que pode ser examinado, começando no início do cabeçalho MAC.

MaxWoLPacketSaveBuffer

Um valor ULONG que contém o número de bytes de um pacote WOL que um driver de miniporto pode salvar em um buffer e indicar a pilha do driver. Esse valor deve ser menor ou igual ao tamanho, em bytes, da MTU (unidade de transmissão máxima) para a mídia de rede. O driver relata o tamanho da MTU por meio de solicitações de consulta OID de OID_GEN_MAXIMUM_FRAME_SIZE.

Nota Esse membro é ignorado no NDIS 6.20 e versões anteriores do NDIS. A partir do NDIS 6.30, esse membro deverá conter um valor diferente de zero se o sinalizador NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED estiver definido no membro Flags .
 

SupportedProtocolOffloads

Um valor ULONG que contém um OR bit a bit de sinalizadores que especificam os recursos de descarregamento de protocolo compatíveis com um adaptador de rede. Os drivers de miniporto usam esses sinalizadores para relatar os recursos de descarregamento de protocolo de baixa potência de um adaptador de rede.

NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED

Se esse bit estiver definido, o adaptador de rede poderá responder a pacotes ARP IPv4 enquanto estiver em um estado de baixa potência

Para obter mais informações sobre o protocolo ARP, consulte RFC 826.

NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED

Se esse bit estiver definido, o adaptador de rede poderá responder a pacotes de NS (Solicitação de Vizinho) IPv6 enquanto estiver em um estado de baixa potência.

Para obter mais informações sobre mensagens NS IPv6, consulte RFC 4861.

NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED

O adaptador de rede pode responder às solicitações de nova chave RSN (Rede de Segurança Robusta) do IEEE 802.11i enquanto estiver em um estado de baixa potência.

NumArpOffloadIPv4Addresses

Um valor ULONG que contém o número de endereços IPv4 compatíveis com o adaptador para descarregamento ARP.

NumNSOffloadIPv6Addresses

Um valor ULONG que contém o número de solicitações de descarregamento IPv6 NS compatíveis com o adaptador. Isso deve ser pelo menos 2.

Nota Apesar do nome, o NumNSOffloadIPv6Addresses contém o número de solicitações com suporte, não endereços.
 

MinMagicPacketWakeUp

Especifica o estado de energia do dispositivo mais baixo do qual um adaptador de rede pode sinalizar um evento de ativação ao receber um pacote mágico. Um pacote mágico contém dentro de sua carga uma cadeia de caracteres de seis bytes com um valor de 0xFF, seguido imediatamente por 16 cópias contíguas do endereço MAC do adaptador de rede receptor.

Nota Os estados de energia do dispositivo são especificados por um valor de Dx, em que D0 é o estado de energia do dispositivo mais alto e D3 é o estado de energia do dispositivo mais baixo.
 
O estado de energia do dispositivo é especificado como um dos seguintes valores de NDIS_DEVICE_POWER_STATE :

NdisDeviceStateUnspecified

O adaptador de rede não dá suporte a ativações de pacotes mágicos.

Nota Se o membro MinMagicPacketWakeUp estiver definido como esse valor, o sinalizador NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED não deverá ser definido no membro SupportedWoLPacketPatterns .
 

NdisDeviceStateD0

O adaptador de rede pode sinalizar uma ativação de pacote mágico do estado de energia do dispositivo D0. Como D0 é o estado totalmente alimentado, isso não causa uma ativação, mas pode ser usado como um evento em tempo de execução.

Nota A partir do NDIS 6.20, não há mais suporte para a sinalização de um pacote mágico de NdisDeviceStateD0.
 

NdisDeviceStateD1

O adaptador de rede pode sinalizar uma ativação de pacote mágico de um estado de energia do dispositivo D1.

NdisDeviceStateD2

O adaptador de rede pode sinalizar uma ativação de pacote mágico de um estado de dispositivo D2.

NdisDeviceStateD3

O adaptador de rede pode sinalizar uma ativação de pacote mágico de um estado de energia do dispositivo D3.

MinPatternWakeUp

Especifica o estado de energia do dispositivo mais baixo do qual um adaptador de rede pode sinalizar um evento de ativação ao receber um quadro de rede que contém um padrão especificado pelo driver de protocolo. O estado de energia é especificado como um dos seguintes valores de NDIS_DEVICE_POWER_STATE :

NdisDeviceStateUnspecified

O adaptador de rede não dá suporte a ativações de correspondência de padrões.

Nota Se o membro MinPatternWakeUp estiver definido como esse valor, somente o sinalizador NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED poderá ser definido no membro SupportedWoLPacketPatterns .
 

NdisDeviceStateD0

O adaptador de rede pode sinalizar uma ativação de correspondência de padrão do estado de energia do dispositivo D0. Como D0 é o estado totalmente alimentado, isso não causa uma ativação, mas pode ser usado como um evento em tempo de execução.

Nota A partir do NDIS 6.20, não há mais suporte para a sinalização de uma ativação de correspondência de padrão de NdisDeviceStateD0.
 

NdisDeviceStateD1

O adaptador de rede pode sinalizar uma ativação de correspondência de padrão de um estado de energia do dispositivo D1.

NdisDeviceStateD2

O adaptador de rede pode sinalizar uma ativação de correspondência de padrão de um estado de energia do dispositivo D2.

NdisDeviceStateD3

O adaptador de rede pode sinalizar uma ativação de correspondência de padrão de um estado de energia do dispositivo D3.

MinLinkChangeWakeUp

A partir do NDIS 6.20, esse membro especifica o estado de energia do dispositivo mais baixo do qual um adaptador de rede pode sinalizar um evento de ativação quando o estado do link muda da mídia desconectada para a mídia conectada.

A partir do NDIS 6.30, esse membro especifica o estado de energia do dispositivo mais baixo do qual um adaptador de rede pode sinalizar eventos de ativação. Esses eventos são especificados no membro SupportedWakeUpEvents .

O estado de energia é especificado como um dos seguintes valores de NDIS_DEVICE_POWER_STATE :

NdisDeviceStateUnspecified

O adaptador de rede não dá suporte a ativações de alteração de link.

Nota Se o membro MinLinkChangeWakeUp estiver definido como esse valor, o membroSupportedWakeUpEvents deverá ser definido como zero.
 

NdisDeviceStateD0

O adaptador de rede pode sinalizar uma ativação de alteração de link do estado de energia do dispositivo D0. Como D0 é o estado totalmente alimentado, isso não causa uma ativação, mas pode ser usado como um evento em tempo de execução.

Nota A partir do NDIS 6.20, não há mais suporte para a sinalização de uma alteração de link de NdisDeviceStateD0.
 

NdisDeviceStateD1

O adaptador de rede pode sinalizar uma ativação de alteração de link de um estado de energia do dispositivo D1.

NdisDeviceStateD2

O adaptador de rede pode sinalizar uma ativação de alteração de link de um estado de energia do dispositivo D2.

NdisDeviceStateD3

O adaptador de rede pode sinalizar uma ativação de alteração de link de um estado de energia do dispositivo D3.

SupportedWakeUpEvents

Um valor ULONG que contém um OR bit a bit de sinalizadores. Esses sinalizadores especificam os eventos de ativação independentes de mídia compatíveis com um adaptador de rede. Esses eventos não são específicos para o tipo de mídia.

A partir do NDIS 6.30, os seguintes sinalizadores são definidos:

NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede poderá gerar um evento de ativação quando ele se conectar ao adaptador de rede.

NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede poderá gerar um evento de ativação quando ele for desconectado para o adaptador de rede.

MediaSpecificWakeUpEvents

Um valor ULONG que contém um OR bit a bit de sinalizadores. Esses sinalizadores especificam os eventos de ativação específicos da mídia aos quais um adaptador de rede dá suporte.

A partir do NDIS 6.30, os seguintes sinalizadores são definidos:

NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede 802.11 poderá gerar um evento de ativação se detectar um SSID (identificador de conjunto de serviços) especificado por meio de um NLO (descarregamento de lista de rede).

Para obter mais informações sobre o NLO, consulte Descarregamento de lista de rede do Wi-Fi.

NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede 802.11 poderá gerar um evento de ativação se ele desassociar com o ponto de acesso (AP).

NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede 802.11 poderá gerar um evento de ativação se encontrar um erro durante o handshake gtk (chave transitória) do grupo RSN do IEEE 802.11i com a AP.

NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede 802.11 poderá gerar um evento de ativação se receber o primeiro quadro do handshake de 4 vias do IEEE 802.11i RSN com a AP. Esse handshake é executado quando o adaptador é autenticado com a AP.

NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED

Se esse sinalizador for definido, o adaptador de rede de banda larga móvel (MB) poderá gerar um evento de ativação se seu estado de registro para o Serviço MB tiver sido alterado.

NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede MB poderá gerar um evento de ativação se o Serviço MB precisar ser notificado sobre o recebimento de uma mensagem sms (Serviço de Mensagem Curta). O adaptador gera esse evento de ativação após a conclusão de uma solicitação de consulta OID_WWAN_SMS_READ emitida anteriormente ou a chegada de uma nova mensagem de classe 0 (flash/alerta) do provedor de rede como uma notificação de evento.

NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED

Se esse sinalizador estiver definido, o adaptador de rede MB poderá gerar um evento de ativação se receber uma mensagem USSD (Dados de Serviço Suplementar Não Estruturado).

Comentários

A estrutura NDIS_PM_CAPABILITIES é usada no membro PowerManagementCapabilitiesEx do estruturas NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES e NDIS_BIND_PARAMETERS e no NDIS_STATUS_PM_CAPABILITIES_CHANGE indicação status.

Durante a inicialização do miniporto, o driver de miniporto inicializa uma estrutura NDIS_PM_CAPABILITIES com os recursos de gerenciamento de energia do hardware do adaptador de rede. Em seguida, o driver de miniporto define o membro PowerManagementCapabilitiesEx da estrutura NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES para apontar para a estrutura de NDIS_PM_CAPABILITIES inicializada.

Um driver sobressoante não deve tentar habilitar recursos que um adaptador de rede não dá suporte. Para permitir que um driver sobressalente determine quais recursos um adaptador de rede fornece, o NDIS fornece os recursos no membro PowerManagementCapabilitiesEx da estrutura NDIS_BIND_PARAMETERS.

Nota Os drivers NDIS 6.20 devem usar o membro PowerManagementCapabilitiesEx em vez do membro PowerManagementCapabilities .
 
O membro SupportedProtocolOffloads contém sinalizadores que especificam os recursos de descarregamento de protocolo compatíveis com um adaptador de rede. O adaptador de rede manipula esses protocolos em um estado de baixa potência. Por exemplo, se o hardware do adaptador de rede puder manipular pacotes ARP IPv4 para a pilha do driver enquanto ele estiver em um estado de baixa potência, o driver de miniporte definirá o NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED bit em SupportedProtocolOffloads.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.20 e posterior.
Cabeçalho ntddndis.h (include Ntddndis.h)

Confira também

NDIS_BIND_PARAMETERS

NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_PM_WOL_PATTERN

NDIS_STATUS_PM_CAPABILITIES_CHANGE

NDIS_STATUS_PM_WAKE_REASON

NdisMIndicateReceiveNetBufferLists

NdisMIndicateStatusEx