Функция обратного вызова PFNKSDEVICEQUERYPOWER (ks.h)
AVStream вызывает подпрограмму AVStrMiniDeviceQueryPower мини-driver при получении запроса 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 , возвращающей устройство в приемлемое состояние питания.
Комментарии
Диспетчер питания или владелец политики управления питанием устройства отправляет запрос 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 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ks.h (включая Ks.h) |