Функция PoFxPowerControl (wdm.h)
Подпрограмма PoFxPowerControl отправляет запрос на управление питанием в платформу управления питанием (PoFx).
Синтаксис
NTSTATUS PoFxPowerControl(
[in] POHANDLE Handle,
[in] LPCGUID PowerControlCode,
[in, optional] PVOID InBuffer,
[in] SIZE_T InBufferSize,
[out, optional] PVOID OutBuffer,
[in] SIZE_T OutBufferSize,
[out, optional] PSIZE_T BytesReturned
);
Параметры
[in] Handle
Дескриптор, представляющий регистрацию устройства с помощью PoFx. Драйвер устройства ранее получил этот дескриптор из подпрограммы PoFxRegisterDevice .
[in] PowerControlCode
Указатель на код элемента управления питанием. Этот код представляет собой значение GUID, указывающее запрошенную операцию.
[in, optional] InBuffer
Указатель на буфер, выделенный вызывающим объектом, который содержит входные данные для операции. Формат данных в этом буфере зависит от кода элемента управления питанием, заданного параметром PowerControlCode . Параметр InBuffer является необязательным и может быть указан как NULL, если для указанной операции не требуются входные данные.
[in] InBufferSize
Размер входного буфера в байтах, на который указывает параметр InBuffer . Если inBuffer имеет значение NULL, задайте для параметра InBufferSize значение 0.
[out, optional] OutBuffer
Указатель на буфер, выделенный вызывающим объектом, который будет содержать выходные данные операции. Формат данных в этом буфере зависит от кода элемента управления питанием, заданного параметром PowerControlCode . Параметр OutBuffer является необязательным и может быть указан как NULL, если указанная операция не создает выходных данных.
[in] OutBufferSize
Размер выходного буфера в байтах, на который указывает параметр OutBuffer . Если OutBuffer имеет значение NULL, задайте для параметра OutBufferSize значение 0.
[out, optional] BytesReturned
Указатель на расположение, в которое подпрограмма записывает количество байтов данных, записанных в буфер, на который указывает OutBuffer. Число записанных байтов будет меньше или равно OutBufferSize. Этот параметр является необязательным и может быть указан как NULL , если вызывающей объекту не нужно знать, сколько байтов было записано в выходной буфер.
Возвращаемое значение
PoFxPowerControl возвращает STATUS_SUCCESS , если запрошенная операция выполнена успешно. Возможные возвращаемые значения ошибок включают следующий код состояния.
Код возврата | Описание |
---|---|
|
Запрошенная операция управления питанием не реализована. |
|
Подключаемый модуль подсистемы питания (PEP) не подтверждает поддержку этого устройства. |
Комментарии
Драйвер устройства вызывает эту подпрограмму для отправки запроса на управление питанием непосредственно в PoFx. Запрос на управление питанием аналогичен запросу на управление вводом-выводом (IOCTL). Однако в отличие от IOCTL, запрос на управление питанием отправляется непосредственно в PoFx и не наблюдается другими драйверами устройств в стеке устройств. Во время вызова PoFxPowerControl PoFx синхронно выполняет запрошенную операцию.
Аналогичным образом PoFx может отправлять запрос на управление питанием непосредственно драйверу устройства. Драйвер обрабатывает этот запрос в своей подпрограмме PowerControlCallback .
PoFx делегирует обработку всех запросов на управление питанием подключаемого модуля подсистемы питания (PEP). PEP — это необязательный программный компонент, который выполняет задачи управления питанием, относящиеся к определенной линейке процессоров или модулей Системы на микросхеме (SoC). Если поставщик оборудования для процессора или SoC предоставляет PEP для аппаратной платформы, эта PEP может обрабатывать пользовательские запросы на управление питанием от драйвера устройства или отправлять пользовательские запросы на управление питанием в подпрограмму PowerControlCallback драйвера. Поставщик может указать набор идентификаторов GUID PowerControlCode и определить операции, назначенные этими идентификаторами GUID. В качестве варианта драйвер устройства может содержать код для конкретной платформы для обработки или отправки запросов для этих операций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h |
Библиотека | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |