OID_PM_ADD_PROTOCOL_OFFLOAD
Como um conjunto, os drivers de protocolo NDIS usam o OID OID_PM_ADD_PROTOCOL_OFFLOAD para adicionar um descarregamento de protocolo para gerenciamento de energia a um adaptador de rede. O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_PM_PROTOCOL_OFFLOAD .
Comentários
Os drivers de protocolo NDIS 6.20 e posteriores usam OID_PM_ADD_PROTOCOL_OFFLOAD OID para adicionar um descarregamento de protocolo para gerenciamento de energia a um adaptador de rede. Se a solicitação for bem-sucedida, o adaptador de rede deverá gerar e transmitir os pacotes de resposta necessários para o protocolo descarregado quando o adaptador de rede estiver em um estado de baixa energia.
Um driver de protocolo pode descarregar um protocolo depois de se associar com êxito a um adaptador de rede subjacente e assim que tiver os dados necessários (como o endereço IP da interface) para descarregar o protocolo. O driver de protocolo também pode descarregar um protocolo em resposta a algumas outras notificações de evento de gerenciamento de energia, como a rejeição de um padrão WOL adicionado anteriormente ou um protocolo descarregado.
Para evitar condições de corrida no NDIS e em outros drivers de protocolo associados ao mesmo adaptador de miniporta, depois que o NDIS começar a definir um adaptador de rede para um estado de baixa potência, ele falhará em qualquer tentativa de descarregar outro protocolo para esse adaptador de rede. Por exemplo, se um driver de protocolo NDIS tentar descarregar um protocolo no contexto de processamento de uma notificação de evento NetEventSetPower para esse adaptador de rede, o NDIS falhará na solicitação.
Antes que o NDIS envie essa solicitação OID para os drivers NDIS subjacentes ou conclua a solicitação para o driver sobreposto, ele define o membro ULONG ProtocolOffloadId da estrutura NDIS_PM_PROTOCOL_OFFLOAD como um valor exclusivo. Os drivers de protocolo e o NDIS usam esse identificador de descarregamento de protocolo com o OID_PM_REMOVE_PROTOCOL_OFFLOAD solicitação OID para remover o descarregamento de protocolo do adaptador de rede subjacente.
Nota O identificador de descarregamento de protocolo é um valor exclusivo para cada um dos descarregamentos de protocolo definidos em um adaptador de rede. No entanto, o identificador de descarregamento de protocolo não é globalmente exclusivo em todos os adaptadores de rede.
Se o NDIS ou um adaptador de rede subjacente rejeitar um descarregamento, ele gerará uma indicação NDIS_STATUS_PM_OFFLOAD_REJECTED status. Isso pode ocorrer depois de retornar NDIS_STATUS_SUCCESS para o OID. O membro StatusBuffer da estrutura NDIS_STATUS_INDICATION contém o identificador de descarregamento de protocolo ULONG do descarregamento de protocolo rejeitado.
Para obter informações sobre como um driver de miniporta lan sem fio Nativo 802.11 usa esse OID, consulte Adicionando e excluindo descarregamentos de protocolo de baixa potência.
O driver de miniporta retorna um dos seguintes códigos de status para a solicitação:
NDIS_STATUS_SUCCESS
O descarregamento de protocolo solicitado foi adicionado com êxito. O membro ProtocolOffloadId da estrutura NDIS_PM_PROTOCOL_OFFLOAD contém um identificador de descarregamento de protocolo.
NDIS_STATUS_PENDING
A solicitação está pendente de conclusão. O NDIS passará o código de status final e os resultados para o manipulador de conclusão de solicitação OID do chamador após a conclusão da solicitação.
NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
A solicitação falhou porque a lista de descarregamento de protocolo está cheia e o adaptador de rede não pode adicionar outro descarregamento de protocolo.
NDIS_STATUS_RESOURCES
O NDIS ou um adaptador de rede subjacente não pôde adicionar o novo descarregamento de protocolo devido à falta de recursos.
NDIS_STATUS_INVALID_PARAMETER
Um ou mais parâmetros na estrutura NDIS_PM_PROTOCOL_OFFLOAD eram inválidos.
NDIS_STATUS_BUFFER_TOO_SHORT
O buffer de informações era muito curto. O NDIS define os DADOS. SET_INFORMATION. Membro BytesNeeded na estrutura NDIS_OID_REQUEST para o tamanho mínimo do buffer necessário.
NDIS_STATUS_NOT_SUPPORTED
O adaptador de rede não dá suporte ao descarregamento de protocolo solicitado.
NDIS_STATUS_FAILURE
A solicitação falhou por motivos diferentes dos motivos anteriores.
Requisitos
Versão |
Com suporte no NDIS 6.20 e posterior. Obrigatório para drivers de miniporta. |
Cabeçalho |
Ntddndis.h (inclua Ndis.h) |
Confira também
NDIS_STATUS_PM_OFFLOAD_REJECTED
OID_PM_REMOVE_PROTOCOL_OFFLOAD
Adicionando e excluindo descarregamentos de protocolo de baixa energia