GET_D3COLD_CAPABILITY função de retorno de chamada (wdm.h)

A rotina GetBusDriverD3ColdSupport permite que o driver de um dispositivo consulte se o driver de barramento de enumeração dá suporte ao estado de energia do dispositivo D3cold.

Sintaxe

GET_D3COLD_CAPABILITY GetD3coldCapability;

NTSTATUS GetD3coldCapability(
  [in, optional] PVOID Context,
  [out]          PBOOLEAN D3ColdSupported
)
{...}

Parâmetros

[in, optional] Context

Um ponteiro para informações de contexto específicas da interface. O chamador define esse parâmetro como o valor do membro Context da estrutura D3COLD_SUPPORT_INTERFACE para a interface .

[out] D3ColdSupported

Um ponteiro para uma variável BOOLEAN na qual a rotina grava um valor para indicar se o driver de barramento dá suporte ao D3cold. Se esse valor for TRUE, o driver de barramento oferecerá suporte a D3cold. Se FALSE, o motorista do barramento não dá suporte a D3cold. Se a chamada falhar, a rotina retornará um erro status código e não gravará nada nessa variável.

Retornar valor

A rotina GetBusDriverD3ColdSupport retornará STATUS_SUCCESS se for bem-sucedida. Caso contrário, ele retornará um erro apropriado status código.

Comentários

O driver para o dispositivo chama a versão dessa rotina que é implementada pelo driver ACPI do Windows, Acpi.sys. Essa rotina verifica o driver de barramento pai do dispositivo para determinar se esse driver de barramento dá suporte ao estado de energia D3cold.

Por exemplo, começando com Windows 8, a Microsoft fornece um driver de interface do controlador de host (xHCI) usb 3.0 eXtensible que dá suporte a D3cold. Alguns fornecedores de hardware de terceiros fornecem drivers do Windows para seus controladores xHCI, mas esses drivers podem não dar suporte a D3cold. O driver de um dispositivo USB 3.0 pode chamar a rotina GetBusDriverD3ColdSupport para determinar se o driver do controlador xHCI pai dá suporte a D3cold.

Um motorista de ônibus dá suporte a D3cold se todos os itens a seguir forem verdadeiros:

  • O driver de ônibus implementa a interface do driver GUID_D3COLD_SUPPORT_INTERFACE.
  • O driver de barramento implementa a rotina GetBusDriverD3ColdSupport nessa interface.
  • O valor de saída da rotina GetBusDriverD3ColdSupport indica que o driver de barramento dá suporte a D3cold.
O driver de um dispositivo pode chamar a rotina GetIdleWakeInfo para determinar se os motoristas de ônibus subjacentes e o firmware do sistema ACPI dão suporte a D3cold para o dispositivo. Se essa chamada falhar e retornar um erro status código, o driver de dispositivo poderá chamar a rotina GetBusDriverD3ColdSupport para determinar se a falha é causada pela falta de suporte de D3cold pelo motorista do ônibus pai.

Um dispositivo em um barramento pode fazer uma transição para o subestado D3cold somente se o motorista do ônibus der suporte a essa transição. Se o driver de barramento não der suporte a D3cold, o dispositivo nunca entrará em D3cold, mesmo que o driver de função para o dispositivo chame a rotina SetD3ColdSupport para habilitar a transição para D3cold. Nesse caso, as chamadas SetD3ColdSupport não têm efeito, mas são inofensivas.

Por esse motivo, a maioria dos drivers de dispositivo nunca precisa chamar a rotina GetBusDriverD3ColdSupport .

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.
Plataforma de Destino Área de Trabalho
Cabeçalho wdm.h (include Wdm.h)
IRQL PASSIVE_LEVEL

Confira também

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport