Compartilhar 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 .

Retornar valor

Nenhum

Comentários

Em geral, a estrutura exige que um motorista de barramento pai entre no estado de energia do dispositivo D0 antes que um dispositivo filho entre em D0 e, da mesma forma, que um dispositivo filho saia de D0 antes que o pai saia de D0.

No entanto, esse comportamento pode não ser desejado, especialmente se o dispositivo filho for um dispositivo virtual que não representa nenhum hardware real. Na desligar ociosa 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 nenhum motivo para executar a detecção ociosa de 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 barramento:

  • 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 termine de processar 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 executará nenhuma ação se o driver de barramento pai não for o proprietário da política de energia da pilha de dispositivos pai.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 2004
Versão mínima do KMDF 1.29
Cabeçalho wdfpdo.h (include Wdf.h)
Biblioteca Wdf01000.sys (KMDF)
IRQL PASSIVE_LEVEL