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


Функция обратного вызова PFNKSDEVICEQUERYPOWER (ks.h)

AVStream вызывает подпрограмму avdriver AVStrMiniDeviceQueryPower при получении запроса IRP_MN_QUERY_POWER.

Синтаксис

PFNKSDEVICEQUERYPOWER Pfnksdevicequerypower;

NTSTATUS Pfnksdevicequerypower(
  [in] PKSDEVICE Device,
  [in] PIRP Irp,
  [in] DEVICE_POWER_STATE DeviceTo,
  [in] DEVICE_POWER_STATE DeviceFrom,
  [in] SYSTEM_POWER_STATE SystemTo,
  [in] SYSTEM_POWER_STATE SystemFrom,
  [in] POWER_ACTION Action
)
{...}

Параметры

[in] Device

Указатель на структуру KSDEVICE, отправившей IRP_MN_QUERY_POWER.

[in] Irp

Указатель на IRP_MN_QUERY_POWER, выданный устройства.

[in] DeviceTo

Состояние питания, запрошенное издателем Irp.

[in] DeviceFrom

Текущее состояние питания устройства.

[in] SystemTo

Состояние системы для перехода на, указанное при запросе к переходу состояния системы. Это значение не указано, если вызов связан с запросом на изменение состояния устройства.

[in] SystemFrom

Текущее состояние системы, указанное при запросе перехода состояния питания системы. Это значение не указано, если вызов связан с запросом на изменение состояния устройства.

[in] Action

Указывает дополнительные сведения о запрашиваемом переходе. Возможные значения — это перечислители типа POWER_ACTION.

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

Должен возвращать STATUS_SUCCESS или код ошибки, возвращенный из попытки выполнения операции. Возвращая STATUS_SUCCESS, драйвер гарантирует, что он не будет запускать какие-либо операции, которые изменят его способность задать запрошенное состояние питания. Драйвер должен очередью любого IRP, требующего такой операции, пока не завершится IRP_MN_SET_POWER, который возвращает устройство в приемлемое состояние питания.

Замечания

Владелец power manager или владелец политики питания устройства отправляет запрос IRP_MN_QUERY_POWER, чтобы определить, может ли он изменить состояние питания системы или устройства (например, перейти в спящий режим).

Если драйвер завершается сбоем запроса IRP_MN_QUERY_POWER состояния системы, диспетчер питания обычно отвечает, выдав IRP_MN_SET_POWER. Как правило, этот IRP подтвердит текущее состояние системы. Однако возможно, что драйверы могут получать IRP_MN_SET_POWER в запрашиваемое состояние или в другое промежуточное состояние. Водители должны быть готовы к обработке этих ситуаций.

Мини-driver задает адрес этой подпрограммы в элементе QueryPower его структуры KSDEVICE_DISPATCH.

Эта подпрограмма является необязательной.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows XP и более поздних операционных системах и версиях DirectX 8.0 и более поздних версий DirectX.
целевая платформа Настольный
заголовка ks.h (include Ks.h)

См. также

IRP_MN_QUERY_POWER

KSDEVICE_DISPATCH