Partilhar via


OID_PM_ADD_PROTOCOL_OFFLOAD

Como um conjunto, os drivers de protocolo NDIS usam o OID_PM_ADD_PROTOCOL_OFFLOAD OID para adicionar um descarregamento de protocolo para gerenciamento de energia a um adaptador de rede. O InformationBuffer membro 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 que ele se liga 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 eventos 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 outros drivers de protocolo que estão vinculados ao mesmo adaptador de miniporta, depois que o NDIS começar a definir um adaptador de rede para um estado de baixo consumo de energia, 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 do processamento de um NetEventSetPower notificação de evento para esse adaptador de rede, o NDIS falhará na solicitação.

Antes de enviar essa solicitação OID para os drivers NDIS subjacentes ou concluir a solicitação para o driver sobreposto, ele define o ULONG ProtocolOffloadId membro 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 a solicitação OID_PM_REMOVE_PROTOCOL_OFFLOAD 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 de status NDIS_STATUS_PM_OFFLOAD_REJECTED. Isso pode ocorrer depois de retornar NDIS_STATUS_SUCCESS para o OID. O StatusBuffer membro da estrutura NDIS_STATUS_INDICATION contém o identificador de descarregamento do protocolo ULONG do descarregamento do protocolo rejeitado.

Para obter informações sobre como um driver de miniporta de 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 ProtocolOffloadId membro da estrutura NDIS_PM_PROTOCOL_OFFLOAD contém um identificador de descarregamento de protocolo.

NDIS_STATUS_PENDING
O pedido 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. NDIS definir o DADOS. SET_INFORMATION. BytesNeeded membro na estrutura NDIS_OID_REQUEST o tamanho mínimo de buffer necessário.

NDIS_STATUS_NOT_SUPPORTED
O adaptador de rede não suporta o descarregamento de protocolo solicitado.

NDIS_STATUS_FAILURE
O pedido foi rejeitado por outros motivos que não os anteriores.

Requerimentos

Versão

Suportado no NDIS 6.20 e posterior. Obrigatório para condutores de miniportos.

Cabeçalho

Ntddndis.h (inclui Ndis.h)

Ver também

NDIS_OID_REQUEST

NDIS_PM_PROTOCOL_OFFLOAD

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_OFFLOAD_REJECTED

OID_PM_REMOVE_PROTOCOL_OFFLOAD

Adicionando e excluindo descarregamentos de protocolo de baixa potência