Поделиться через


функция обратного вызова GET_D3COLD_CAPABILITY (wdm.h)

Подпрограмма GetBusDriverD3ColdSupport позволяет драйверу устройства запрашивать, поддерживает ли перечислимый драйвер шины состояние питания устройства D3cold.

Синтаксис

GET_D3COLD_CAPABILITY GetD3coldCapability;

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

Параметры

[in, optional] Context

Указатель на сведения о контексте для конкретного интерфейса. Вызывающий объект задает этому параметру значение элемента Contextструктуры D3COLD_SUPPORT_INTERFACE для интерфейса.

[out] D3ColdSupported

Указатель на переменную BOOLEAN, в которую подпрограмма записывает значение, указывающее, поддерживает ли драйвер автобуса D3cold. Если это значение равно TRUE, драйвер автобуса поддерживает D3cold. Если значение FALSE, драйвер автобуса не поддерживает D3cold. Если вызов завершается сбоем, подпрограмма возвращает код состояния ошибки и ничего не записывает в эту переменную.

Возвращаемое значение

При успешном выполнении подпрограмма GetBusDriverD3ColdSupport возвращает STATUS_SUCCESS. В противном случае возвращается соответствующий код состояния ошибки.

Комментарии

Драйвер для устройства вызывает версию этой подпрограммы, реализованную драйвером Windows ACPI, Acpi.sys. Эта подпрограмма проверяет родительский драйвер шины для устройства, чтобы определить, поддерживает ли этот драйвер состояние питания D3cold.

Например, начиная с Windows 8, корпорация Майкрософт предоставляет драйвер usb 3.0 eXtensible Host Controller Interface (xHCI), поддерживающий D3cold. Некоторые сторонние поставщики оборудования предоставляют драйверы Windows для своих контроллеров xHCI, но эти драйверы могут не поддерживать D3cold. Драйвер для устройства USB 3.0 может вызвать подпрограмму GetBusDriverD3ColdSupport , чтобы определить, поддерживает ли родительский драйвер контроллера xHCI D3cold.

Драйвер автобуса поддерживает D3cold, если выполняются все перечисленные ниже действия.

  • Драйвер шины реализует интерфейс драйвера GUID_D3COLD_SUPPORT_INTERFACE.
  • Драйвер автобуса реализует подпрограмму GetBusDriverD3ColdSupport в этом интерфейсе.
  • Выходное значение подпрограммы GetBusDriverD3ColdSupport указывает, что драйвер автобуса поддерживает D3cold.
Драйвер для устройства может вызвать подпрограмму GetIdleWakeInfo , чтобы определить, поддерживают ли базовые драйверы шины и встроенное ПО системы ACPI D3cold для устройства. Если этот вызов завершается сбоем и возвращает код состояния ошибки, драйвер устройства может вызвать подпрограмму GetBusDriverD3ColdSupport , чтобы определить, вызван ли сбой отсутствием поддержки D3cold родительским драйвером шины.

Устройство в шине может перейти на подсостояние D3cold, только если водитель автобуса поддерживает этот переход. Если драйвер автобуса не поддерживает D3cold, устройство никогда не входит в D3cold, даже если драйвер-функция для устройства вызывает подпрограмму SetD3ColdSupport , чтобы включить переход на D3cold. В этом случае вызовы SetD3ColdSupport не оказывают никакого влияния, но являются безвредными.

По этой причине большинству драйверов устройств никогда не требуется вызывать подпрограмму GetBusDriverD3ColdSupport .

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h)
IRQL PASSIVE_LEVEL

См. также раздел

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport