Функция обратного вызова 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) |