Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O OID_PNP_SET_POWER OID notifica um driver de miniporta que seu adaptador de rede subjacente estará fazendo a transição para o estado de energia do dispositivo especificado no InformationBuffer. O estado de energia do dispositivo é especificado como um dos seguintes valores de NDIS_DEVICE_POWER_STATE:
- NdisDeviceStateD0
- NdisDeviceStateD1
- NdisDeviceStateD2
- NdisDeviceStateD3
Um pedido de OID_PNP_SET_POWER pode ser precedido de um pedido de OID_PNP_QUERY_POWER.
A partir do NDIS 6.30, o NDIS não pausará e reiniciará os drivers NDIS na pilha de drivers durante as transições de estado de energia se as seguintes condições forem verdadeiras:
O driver de miniporta subjacente define o sinalizador de NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND na estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. O driver passa um ponteiro para essa estrutura em sua chamada para a funçãoNdisMSetMiniportAttributes.
Todos os drivers de filtro sobrepostos que estão conectados ao driver de miniporta suportam NDIS 6.30 ou versões posteriores do NDIS.
Todos os drivers de protocolo sobrepostos que estão vinculados ao driver de miniporta suportam NDIS 6.30 ou versões posteriores do NDIS.
Transição para um Estado Low-Power (D1-D3)
Quando o driver de miniporta lida com uma solicitação definida de OID_PNP_SET_POWER para fazer a transição para um estado de baixo consumo de energia, ele deve fazer o seguinte:
Prepare totalmente o adaptador de rede para o estado de energia do dispositivo de rede indicado. A tarefa executada pelo driver de miniporta para realizar isso depende do dispositivo.
Aguarde até que as chamadas para a funçãoNdisMIndicateReceiveNetBufferLists retornem.
Aguarde a conclusão das solicitações de envio processadas pelo adaptador de rede. Uma vez concluído, o driver de miniporta deve chamar a funçãoNdisMSendNetBufferListsComplete . O condutor deve definir o Estado membro em cada estrutura NET_BUFFER_LIST para o valorNDIS_STATUS_ Xxx adequado.
Conclua todas as solicitações de envio pendentes chamando a funçãoNdisMSendNetBufferListsComplete . O motorista deve definir o Status membro em cada estrutura NET_BUFFER_LIST como NDIS_STATUS_LOW_POWER_STATE.
Rejeite todas as novas solicitações de envio feitas para seu função MiniportSendNetBufferLists imediatamente chamando a funçãoNdisMSendNetBufferListsComplete . O motorista deve definir o Status membro em cada estrutura NET_BUFFER_LIST como NDIS_STATUS_LOW_POWER_STATE.
O driver de miniporta que suporta NDIS 6.30 e versões posteriores do NDIS também deve fazer o seguinte:
Não espere pela conclusão das indicações de recebimento pendentes através de chamadas para sua funçãoMiniportReturnNetBufferLists. Além disso, o driver de miniporta não deve alterar a estrutura de NET_BUFFER_LIST ou os dados de quaisquer pacotes que estejam aguardando para serem concluídos.
Manipule a solicitação de OID_PNP_SET_POWER para um estado de baixo consumo de energia a partir dos estados do adaptador Pausado ou Em execução. Para obter mais informações sobre esses estados, consulte Miniport Adapter States and Operations.
Antes que o adaptador de rede faça a transição para o estado D3, o driver de miniporta deve desligar tudo sob o controle do driver de miniporta executando as seguintes tarefas:
Desative as interrupções e o mecanismo DMA no adaptador de rede.
Pare o mecanismo de recebimento no adaptador de rede.
Não desaloque ou modifique descritores de recebimento e buffers de pacotes associados a indicações de recebimento pendentes.
Cancele todos os temporizadores NDIS.
Observação um driver de miniporta não pode acessar o adaptador de rede depois que o driver de barramento fez a transição do adaptador de rede para o estado D3.
Transição para o Estado Full-Power (D0)
Quando o driver de miniporta lida com uma solicitação definida de OID_PNP_SET_POWER para fazer a transição para um estado de energia total, ele deve restaurar o mecanismo de recebimento do adaptador de rede para o mesmo estado em que o mecanismo de recebimento estava antes de o adaptador ser transferido para o estado de baixo consumo.
Nota O driver de miniporta não deve acessar ou alterar nenhum buffer de recebimento associado a indicações de recebimento pendentes.
O NDIS chama a função MiniportRestart do driver de miniporta após a transição para um estado de potência total somente se o NDIS chamar a função deMiniportPause do driver antes da transição para um estado de baixo consumo de energia.
Nota Um driver intermediário deve sempre retornar NDIS_STATUS_SUCCESS a uma consulta de OID_PNP_SET_POWER. Um driver intermediário nunca deve propagar uma solicitação de OID_PNP_SET_POWER para um driver de miniporta subjacente.
Códigos de status de retorno
A funçãoMiniportOidRequest do driver de miniportaretorna um dos seguintes valores para essa solicitação:
Requerimentos
Versão |
Suportado para NDIS 5.1 e NDIS 6.0 e posterior. |
Cabeçalho |
Ntddndis.h (inclui Ndis.h) |
Ver também
NdisMIndicateReceiveNetBufferLists