Adicionando e excluindo wake em padrões lan

Para adicionar um padrão WOL (wake-on-LAN), os drivers de protocolo NDIS emitem uma solicitação de conjunto OID de OID_PM_ADD_WOL_PATTERN. O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_PM_WOL_PATTERN . Os drivers de protocolo devem especificar um pacote WOL se esse pacote WOL tiver suporte de um adaptador de rede. Quando o adaptador de rede não dá suporte ao pacote WOL, o driver de protocolo deve usar o método de ativação de bitmap WOL.

NDIS_PM_WOL_PATTERN inclui as seguintes informações:

Prioridade
Contém a prioridade do padrão WOL. Se um driver subjacente adicionar um padrão WOL de prioridade mais alta quando não houver recursos disponíveis para mais padrões WOL, o NDIS poderá remover um padrão WOL de prioridade mais baixa para liberar recursos. Os drivers de miniporta devem ignorar esse membro. Um driver de protocolo pode especificar qualquer prioridade que esteja dentro do intervalo predefinido de NDIS_PM_WOL_PRIORITY_LOWEST a NDIS_PM_WOL_PRIORITY_HIGHEST.

WoLPacketType
Contém um valor de enumeração NDIS_PM_WOL_PACKET que especifica o tipo do pacote WOL.

Friendlyname
Contém uma estrutura NDIS_PM_COUNTED_STRING que contém a descrição legível pelo usuário do pacote WOL.

PatternId
Contém um valor fornecido pelo NDIS que identifica o padrão WOL. Antes que o NDIS envie a solicitação OID OID_PM_ADD_WOL_PATTERN para os drivers NDIS subjacentes ou conclua a solicitação para o driver subjacente, o NDIS define PatternId como um valor exclusivo entre os padrões WOL em um adaptador de rede.

NextWoLPatternOffset
Contém o deslocamento (do início da solicitação OID InformationBuffer) de uma estrutura NDIS_PM_WOL_PATTERN para a próxima estrutura NDIS_PM_WOL_PATTERN em uma lista para o OID do OID_PM_WOL_PATTERN_LIST . Para obter mais informações sobre OID_PM_WOL_PATTERN_LIST, consulte Obtendo as configurações atuais de padrões WOL.

WoLPattern
Contém uma das estruturas IPv4TcpSynParameters, IPv6TcpSynParameters, EapolRequestIdMessageParameters ou WoLBitMapPattern em uma união.

IPv4TcpSynParameters
Contém informações de SYN (sincronização TCP) IPv4.

IPv6TcpSynParameters
Contém informações do IPv6 TCP SYN.

EapolRequestIdMessageParameters
Contém parâmetros de mensagem de identidade de solicitação EAPOL (EAP over LAN) 802.1X.

WoLBitMapPattern
Contém uma especificação de padrão de bitmap WOL.

O NDIS atribui um identificador exclusivo para o adaptador de rede a cada padrão WOL. O identificador de padrão é um valor exclusivo para cada um dos padrões definidos em um adaptador de rede. No entanto, o identificador de padrão não é globalmente exclusivo em todos os adaptadores de rede. O NDIS passa o identificador para o adaptador de rede subjacente quando o NDIS envia o OID_PM_ADD_WOL_PATTERN solicitação OID para o driver de miniporta. Se a adição do padrão WOL for bem-sucedida, o NDIS retornará o identificador para o driver subjacente que adicionou o padrão WOL. O driver de sobreposição usa o identificador para remover um padrão WOL adicionado anteriormente. O identificador de padrão também é usado em status indicações para os drivers excessivamente quando um padrão WOL é removido de um adaptador de rede.

Os drivers de protocolo devem emitir a solicitação de conjunto OID de OID_PM_REMOVE_WOL_PATTERN para remover todos os padrões que eles adicionaram a um adaptador de rede antes de fecharem uma associação a esse adaptador de rede. O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para um identificador de padrão.

Os aplicativos de modo de usuário usam a GUID_PM_REMOVE_WOL_PATTERN GUID WMI para remover um padrão WOL adicionado anteriormente de um adaptador de rede. O NDIS converte essa solicitação WMI para a solicitação de conjunto OID de OID_PM_REMOVE_WOL_PATTERN para o adaptador de rede. O NDIS exclui todos os padrões WOL que um aplicativo adicionou do adaptador de rede antes de interromper o adaptador de rede.

O NDIS permite que vários drivers de protocolo NDIS adicionem padrões WOL ao mesmo adaptador de rede. Para garantir que o conjunto certo de padrões WOL tenha sido definido quando o número de padrões WOL solicitados for maior do que o que um adaptador de rede pode dar suporte, os drivers de protocolo atribuem uma prioridade a cada padrão WOL solicitado no membro Priority da estrutura NDIS_PM_WOL_PATTERN. Quando o NDIS não pode adicionar um novo padrão WOL de alta prioridade porque o adaptador de rede está sem recursos, o NDIS exclui um dos padrões de prioridade mais baixa (se houver) e tenta adicionar o padrão de alta prioridade novamente.

Nota Um driver de miniporta deve falhar em uma solicitação de adição de padrão e retornar o código STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL status para permitir que o NDIS repriorize os padrões.

Se o NDIS excluir um dos padrões de prioridade mais baixa, ele notificará o driver sobressociante que define o padrão excluído com um NDIS_STATUS_PM_WOL_PATTERN_REJECTED status indicação. O membro StatusBuffer da estrutura NDIS_STATUS_INDICATION contém um ULONG para o identificador de padrão WOL do padrão WOL rejeitado. O NDIS forneceu o identificador de padrão WOL no membro PatternId da estrutura NDIS_PM_WOL_PATTERN .

Para adaptadores de rede sem fio que podem usar um elemento de infraestrutura para descarregar os padrões à medida que ele percorre a infraestrutura, um novo elemento de infraestrutura pode não dar suporte aos mesmos recursos e o driver de miniporto pode enviar um NDIS_STATUS_PM_WOL_PATTERN_REJECTED status indicação com um código de status apropriado.