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 |