Partilhar via


Função WdfPdoInitRemovePowerDependencyOnParent (wdfpdo.h)

O método WdfPdoInitRemovePowerDependencyOnParent remove a dependência de energia descrita na seção comentários.

Sintaxe

void WdfPdoInitRemovePowerDependencyOnParent(
  PWDFDEVICE_INIT DeviceInit
);

Parâmetros

DeviceInit

Um ponteiro para uma estrutura WDFDEVICE_INIT.

Valor de retorno

Nenhum

Observações

Em geral, a estrutura requer que um motorista de ônibus pai insira o estado de energia do dispositivo D0 antes que um dispositivo filho entre em D0 e, da mesma forma, que um dispositivo filho saia D0 antes que o pai saia de D0.

No entanto, esse comportamento pode não ser desejado, em particular se o dispositivo filho for um dispositivo virtual que não representa nenhum hardware real. Em S0, o estado de energia do dispositivo filho pode não ser relevante para o pai. Na verdade, o dispositivo filho pode não ter motivos para executar a detecção ociosa do S0. Nesse caso, seria melhor para o dispositivo pai fazer a transição entre D0 e Dx com base na atividade de E/S, em vez de depender do estado de energia do dispositivo filho.

A remoção da dependência de energia tem os seguintes efeitos no driver de ônibus:

  • Os retornos de chamada PnP/Power do PDO podem ser executados enquanto o dispositivo pai está em Dx.
  • Os retornos de chamada do PDO enable/disable-wake-at-bus podem ser executados enquanto o dispositivo pai está em Dx.
  • Uma solicitação encaminhada de uma fila gerenciada por energia no PDO (supondo que o PDO seja o proprietário da política de energia) para uma fila não gerenciada por energia no FDO pode ser expedida enquanto o motorista do ônibus está em Dx.
  • A pilha filho executa transições de estado de energia independentemente da pilha pai. Isso inclui cenários como retomada rápida em que a pilha filho pode receber seu S-IRP e até mesmo concluir o processamento de seu D-IRP antes que a pilha pai conclua o processamento de seu próprio D-IRP.

Para remover a dependência de energia, o driver de barramento pode chamar WdfPdoInitRemovePowerDependencyOnParent ao criar o PDO para o dispositivo filho.

Essa função não tomará nenhuma ação se o driver de barramento pai não for o proprietário da política de energia da pilha de dispositivo pai.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10, versão 2004
versão mínima do KMDF 1.29
cabeçalho wdfpdo.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF)
IRQL PASSIVE_LEVEL