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


Уведомления об управлении питанием устройств (DPM)

Каждое уведомление управления питанием устройства (DPM), которое получает подпрограмма обратного вызова AcceptDeviceNotification pep, сопровождается параметром Notification, указывающим тип уведомления, и параметром Data, указывающим на структуру данных, содержащую сведения для указанного типа уведомления.

В этом вызове параметру Notification присваивается постоянное значение PEP_DPM_XXX, указывающее тип уведомления. Параметр Data указывает на тип структуры PEP_XXX, связанный с этим типом уведомлений.

Идентификатор уведомления Значение Связанная структура
PEP_DPM_PREPARE_DEVICE 0x01 PEP_PREPARE_DEVICE
PEP_DPM_ABANDON_DEVICE 0x02 PEP_ABANDON_DEVICE
PEP_DPM_REGISTER_DEVICE 0x03 PEP_REGISTER_DEVICE_V2
PEP_DPM_UNREGISTER_DEVICE 0x04 PEP_UNREGISTER_DEVICE
PEP_DPM_DEVICE_POWER_STATE 0x05 PEP_DEVICE_POWER_STATE
PEP_DPM_COMPONENT_ACTIVE 0x07 PEP_COMPONENT_ACTIVE
PEP_DPM_WORK 0x0D PEP_WORK
PEP_DPM_POWER_CONTROL_REQUEST 0x0E PEP_POWER_CONTROL_REQUEST
PEP_DPM_POWER_CONTROL_COMPLETE 0x0F PEP_POWER_CONTROL_COMPLETE
PEP_DPM_SYSTEM_LATENCY_UPDATE 0x10 PEP_SYSTEM_LATENCY
PEP_DPM_DEVICE_STARTED 0x12 PEP_DEVICE_STARTED
PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE 0x13 PEP_NOTIFY_COMPONENT_IDLE_STATE
PEP_DPM_REGISTER_DEBUGGER 0x15 PEP_REGISTER_DEBUGGER
PEP_DPM_LOW_POWER_EPOCH 0x18 PEP_LOW_POWER_EPOCH
PEP_DPM_REGISTER_CRASHDUMP_DEVICE 0x19 PEP_REGISTER_CRASHDUMP_DEVICE
PEP_DPM_DEVICE_IDLE_CONSTRAINTS 0x1A PEP_DEVICE_PLATFORM_CONSTRAINTS
PEP_DPM_COMPONENT_IDLE_CONSTRAINTS 0x1B PEP_COMPONENT_PLATFORM_CONSTRAINTS
PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES 0x1C PEP_QUERY_COMPONENT_PERF_CAPABILITIES
PEP_DPM_QUERY_COMPONENT_PERF_SET 0x1D PEP_QUERY_COMPONENT_PERF_SET
PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME 0x1E PEP_QUERY_COMPONENT_PERF_SET_NAME
PEP_DPM_QUERY_COMPONENT_PERF_STATES 0x1F PEP_QUERY_COMPONENT_PERF_STATES
PEP_DPM_REGISTER_COMPONENT_PERF_STATES 0x20 PEP_REGISTER_COMPONENT_PERF_STATES
PEP_DPM_REQUEST_COMPONENT_PERF_STATE 0x21 PEP_REQUEST_COMPONENT_PERF_STATE
PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE 0x22 PEP_QUERY_CURRENT_COMPONENT_PERF_STATE
PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS 0x23 PEP_DEBUGGER_TRANSITION_REQUIREMENTS
PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 0x24 PEP_QUERY_SOC_SUBSYSTEM_COUNT
PEP_DPM_QUERY_SOC_SUBSYSTEM 0x25 PEP_QUERY_SOC_SUBSYSTEM
PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING 0x26 PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING
PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 0x27 PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME
PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA 0x28 PEP_QUERY_SOC_SUBSYSTEM_METADATA

Идентификаторы уведомлений

Следующие идентификаторы уведомлений DPM используются подпрограммой обратного вызова AcceptDeviceNotification.

PEP_DPM_PREPARE_DEVICE

Уведомление (PEP_DPM_PREPARE_DEVICE)

Значение PEP_DPM_PREPARE_DEVICE.

Данные (PEP_DPM_PREPARE_DEVICE)

Указатель на структуру PEP_PREPARE_DEVICE . Сообщает PEP, которому принадлежит указанное устройство, настроить его для работы в состоянии питания D0 (работающего) устройства.

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP перед первым запуском стека драйверов устройства операционной системой. Это уведомление позволяет PEP включать любые внешние ресурсы питания или часов, необходимые для работы устройства.

Чтобы отправить уведомление PEP_DPM_PREPARE_DEVICE, операционная система вызывает процедуру обратного вызова AcceptDeviceNotification pep. В этом вызове значение параметра Notification равно PEP_DPM_PREPARE_DEVICE, а параметр Data указывает на структуру PEP_PREPARE_DEVICE. При входе элемент DeviceId этой структуры представляет собой строку идентификации устройства, которая однозначно идентифицирует устройство. Перед возвратом PEP устанавливает для элемента DeviceAccepted этой структуры значение TRUE, чтобы претендовать на владение устройством, или значение FALSE, чтобы указать, что устройство не принадлежит ему.

PeP, которому принадлежит управление питанием для устройства, отвечает за управление ресурсами питания и часов, которые являются внешними для устройства и которые необходимы для работы устройства. Эта функция PEP включает сигнал часов и питание устройства в ответ на уведомление PEP_DPM_PREPARE_DEVICE, а также удаляет сигнал часов и питание устройства в ответ на уведомление PEP_DPM_ABANDON_DEVICE.

В следующей таблице показаны предварительные условия, которые действуют, когда эта операционная система отправляет уведомление о PEP_DPM_PREPARE_DEVICE в PEP, а также постусловия, которые должны действовать после того, как PEP обработает это уведомление для устройства, которое ей принадлежит.

Preconditions Постусловия
Устройство может находиться в любом состоянии питания. Если PEP утверждает, что устройство является владельцем устройства, устройство и все его компоненты должны быть включено, а часы на устройство должны быть неугчены.
PeP может получать PEP_DPM_PREPARE_DEVICE уведомления для нескольких устройств, так как диспетчер управления питанием пытается найти владельцев PEP для этих устройств. PeP должен задать для элемента DeviceAccepted структуры PEP_PREPARE_DEVICE значение FALSE для всех устройств, которыми она не владеет.

Уведомления PEP_DPM_PREPARE_DEVICE не отправляются для основных устройств.

Для уведомления PEP_DPM_PREPARE_DEVICE подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_ABANDON_DEVICE

Уведомление (PEP_DPM_ABANDON_DEVICE)

Значение PEP_DPM_ABANDON_DEVICE.

Данные (PEP_DPM_ABANDON_DEVICE)

Указатель на структуру PEP_ABANDON_DEVICE . Сообщает PEP, что указанное устройство больше не используется операционной системой.

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP после того, как операционная система удалит стек драйверов устройства. Это уведомление позволяет PEP отключить любые внешние ресурсы питания или часов, которые используются для работы устройства, и удалить это устройство из будущих процессов принятия решений. Если устройство потребуется снова запустить позже, pep сначала получит уведомление PEP_DPM_PREPARE_DEVICE.

Чтобы отправить уведомление PEP_DPM_ABANDON_DEVICE, операционная система вызывает процедуру обратного вызова AcceptDeviceNotification в PEP. В этом вызове значение параметра Notification PEP_DPM_ABANDON_DEVICE, а параметр Data указывает на структуру PEP_ABANDON_DEVICE. При входе элемент DeviceId этой структуры представляет собой строку идентификации устройства, которая однозначно идентифицирует устройство. Перед возвратом PEP устанавливает для элемента DeviceAccepted этой структуры значение TRUE, чтобы претендовать на владение устройством, или значение FALSE, чтобы указать, что устройство не принадлежит ему.

PeP, которому принадлежит управление питанием для устройства, отвечает за управление ресурсами питания и часов, которые являются внешними для устройства и которые необходимы для работы устройства.

В следующей таблице показаны предварительные условия, которые действуют, когда эта операционная система отправляет уведомление о PEP_DPM_ABANDON_DEVICE в PEP, а также постусловия, которые должны действовать после того, как PEP обработает это уведомление для устройства, которое ей принадлежит.

Preconditions Постусловия
PeP получил уведомление PEP_DPM_PREPARE_DEVICE для устройства и принял его владение.
Если PEP получил уведомление PEP_DPM_REGISTER_DEVICE для устройства и принял регистрацию устройства, он впоследствии получает уведомление о PEP_DPM_UNREGISTER_DEVICE для устройства.
Все ресурсы, выделенные в ответ на уведомление PEP_DPM_PREPARE_DEVICE, должны быть освобождены.
Для уведомления PEP_DPM_PREPARE_DEVICE подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_DEVICE

Уведомление (PEP_DPM_REGISTER_DEVICE)

Значение PEP_DPM_REGISTER_DEVICE.

Данные (PEP_DPM_REGISTER_DEVICE)

Указатель на структуру PEP_REGISTER_DEVICE_V2 .

Сообщает PEP, что стек драйверов для указанного устройства зарегистрирован в платформе управления питанием Windows (PoFx).

PoFx отправляет это уведомление, когда стек драйверов устройства вызывает подпрограмму PoFxRegisterDevice для регистрации устройства. Это уведомление позволяет PEP скопировать сведения о регистрации устройства во внутреннее хранилище PEP для последующего использования.

Чтобы отправить уведомление PEP_DPM_REGISTER_DEVICE, операционная система вызывает процедуру обратного вызова AcceptDeviceNotification в PEP. В этом вызове значение параметра Notification равно PEP_DPM_REGISTER_DEVICE, а параметр Data указывает на структуру PEP_REGISTER_DEVICE_V2, содержащую дескриптор ядра устройства и другие сведения о регистрации. При входе элемент DeviceId этой структуры представляет собой строку идентификации устройства, которая однозначно идентифицирует устройство. Перед возвратом PEP устанавливает для элемента DeviceAccepted этой структуры значение TRUE, чтобы претендовать на владение устройством, или значение FALSE, чтобы указать, что устройство не принадлежит ему. Сведения о других членах этой структуры см. в разделе PEP_REGISTER_DEVICE_V2.

В следующей таблице показаны предварительные условия, которые действуют, когда эта операционная система отправляет уведомление о PEP_DPM_REGISTER_DEVICE в PEP, а также постусловия, которые должны действовать после того, как PEP обработает это уведомление для устройства, которым она владеет.

Preconditions Постусловия
PeP получил уведомление PEP_DPM_PREPARE_DEVICE для устройства, которое ей принадлежит. PEP готов к получению других уведомлений об управлении питанием устройств (DPM), связанных с этим устройством.

Для уведомления PEP_DPM_REGISTER_DEVICE подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_UNREGISTER_DEVICE

Уведомление (PEP_DPM_UNREGISTER_DEVICE)

Значение PEP_DPM_UNREGISTER_DEVICE.

Данные (PEP_DPM_UNREGISTER_DEVICE)

Указатель на структуру PEP_UNREGISTER_DEVICE .

Сообщает PEP, которому принадлежит указанное устройство, о том, что стек драйверов устройства отозвал регистрацию из платформы управления питанием Windows (PoFx).

PoFx отправляет это уведомление, чтобы сообщить PEP о том, что все регистрационные сведения, сохраненные PEP для устройства во время предыдущего уведомления PEP_DPM_REGISTER_DEVICE, больше не являются действительными. В ответ PEP может очистить любое внутреннее состояние, используемое для управления питанием этого устройства.

Чтобы отправить уведомление PEP_DPM_UNREGISTER_DEVICE, операционная система вызывает процедуру обратного вызова AcceptDeviceNotification в PEP. В этом вызове значение параметра Notification равно PEP_DPM_UNREGISTER_DEVICE, а параметр Data указывает на PEP_UNREGISTER_DEVICE структуру. Эта структура содержит дескриптор, созданный PEP в ответ на предыдущее уведомление PEP_DPM_REGISTER_DEVICE для устройства.

В следующей таблице показаны предварительные условия, которые действуют, когда эта операционная система отправляет уведомление о PEP_DPM_UNREGISTER_DEVICE в PEP, а также постусловия, которые должны действовать после того, как PEP обработает это уведомление для устройства, которое ей принадлежит.

Preconditions Постусловия
Если PEP получил PEP_DPM_REGISTER_DEVICE уведомление для устройства и принял регистрацию устройства.
PeP может получать любые уведомления об управлении питанием устройства (DPM), связанные с этим устройством.
PEP может сообщать о "работе", связанной с этим устройством.
PeP больше не может получать уведомления об управлении питанием устройств (DPM), связанные с этим устройством, за исключением PEP_DPM_ABANDON_DEVICE.
PeP не может сообщить о работе, связанной с этим устройством.

Для уведомления PEP_DPM_UNREGISTER_DEVICE подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_DEVICE_POWER_STATE

Уведомление (PEP_DPM_DEVICE_POWER_STATE)

Значение PEP_DPM_DEVICE_POWER_STATE.

Данные (PEP_DPM_DEVICE_POWER_STATE)

Указатель на структуру PEP_DEVICE_POWER_STATE .

Отправляется в PEP каждый раз, когда стек драйверов устройства запрашивает изменение нового состояния питания Dx или ранее запрошенный переход на состояние питания Dx завершается.

После того как PEP вызывает подпрограмму RequestWorker для запроса рабочего элемента, PoFx отвечает, отправляя PEP уведомление PEP_DPM_DEVICE_POWER_STATE. Однако это уведомление не отправляется, пока не будут доступны ресурсы (т. е. рабочий поток), необходимые для обработки рабочего элемента. Таким образом, PoFx гарантирует, что рабочий запрос, который PEP передает в PoFx во время уведомления, никогда не может завершиться ошибкой из-за нехватки ресурсов.

Чтобы отправить уведомление PEP_DPM_DEVICE_POWER_STATE, операционная система вызывает процедуру обратного вызова AcceptDeviceNotification в PEP. В этом вызове значение параметра Notification равно PEP_DPM_DEVICE_POWER_STATE, а параметр Data указывает на PEP_DEVICE_POWER_STATE структуру. В записи PEP следует предполагать, что содержимое этой структуры не инициализировано. Чтобы обработать это уведомление, PEP должен задать элемент WorkInformation, указывающий на структуру, выделенную PEP PEP_WORK_INFORMATION, которая описывает запрашиваемую работу. Кроме того, pep должна задать для элемента NeedWork структуры PEP_WORK значение TRUE, чтобы убедиться, что PEP обработала уведомление PEP_DEVICE_POWER_STATE и что элемент WorkInformation указывает на допустимую PEP_WORK_INFORMATION структуру. Если PEP не может обработать уведомление или не может выделить структуру PEP_WORK_INFORMATION, pep должна задать для элемента WorkInformation значение NULL, а для элемента NeedWork — значение FALSE.

Для уведомления PEP_DPM_DEVICE_POWER_STATE подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_COMPONENT_ACTIVE

Уведомление (PEP_DPM_COMPONENT_ACTIVE)

Значение PEP_DPM_COMPONENT_ACTIVE.

Данные (PEP_DPM_COMPONENT_ACTIVE)

Указатель на структуру PEP_COMPONENT_ACTIVE , которая идентифицирует компонент и указывает, выполняет ли этот компонент переход к активному условию или условию простоя.

Сообщает PEP, что компонент должен выполнить переход от условия простоя к активному или наоборот.

Платформа управления питанием Windows (PoFx) отправляет это уведомление, когда ожидается переход в активное условие или условие простоя.

Чтобы отправить уведомление PEP_DPM_COMPONENT_ACTIVE, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_COMPONENT_ACTIVE, а параметр Data указывает на PEP_COMPONENT_ACTIVE структуру.

Доступный компонент находится в активном состоянии. Недоступный компонент находится в состоянии простоя. Компонент, который находится в активном состоянии, всегда находится в состоянии питания компонента F0. Компонент не может покинуть F0, пока не перейдет в состояние простоя. Компонент, который находится в состоянии простоя, может находиться в состоянии F0 или в маломощном состоянии Fx. Состояние "активный/ простой" компонента является единственным надежным средством для драйвера, чтобы определить, доступен ли компонент. Компонент, который находится в режиме F0, но также находится в состоянии простоя, может перейти в маломощное состояние Fx.

Когда активный компонент готов к входу в условие простоя, переход выполняется немедленно. Во время обработки уведомления PEP_DPM_COMPONENT_ACTIVE PEP может, например, запросить переход с F0 на маломощное состояние Fx для компонента.

Если компонент находится в маломощном состоянии Fx, когда уведомление PEP_DPM_COMPONENT_ACTIVE запрашивает переход от условия простоя к активному условию, PEP должен сначала переключить компонент на F0, прежде чем компонент сможет войти в активное условие. PeP может потребоваться завершить асинхронную подготовку компонента для перехода к активному условию после возврата из обратного вызова AcceptDeviceNotification для уведомления PEP_DPM_COMPONENT_ACTIVE. После того как компонент будет полностью настроен для работы в активном состоянии, PEP должен вызвать подпрограмму RequestWorker, а затем обработать полученное уведомление PEP_DPM_WORK, задав WorkType = PepWorkActiveComplete в структуре PEP_WORK_INFORMATION.

Если PEP получает уведомление PEP_DPM_COMPONENT_ACTIVE для компонента, который находится в F0 и уже полностью настроен для работы в активном состоянии, PEP может завершить обработку этого уведомления синхронно. Если поддерживается обработка уведомления "быстрым путем", элемент WorkInformation структуры PEP_COMPONENT_ACTIVE для этого уведомления содержит указатель на PEP_WORK_INFORMATION структуру, и PEP может задать элементу WorkType этой структуры значение PepWorkActiveComplete для завершения перехода. Однако если WorkInformation = NULL, "быстрый путь" недоступен, и PEP должен завершить переход асинхронно, вызвав RequestWorker, как описано в предыдущем абзаце.

Дополнительные сведения об активных условиях и условиях простоя см. в разделе Управление питанием на уровне компонентов.

Для уведомления PEP_DPM_COMPONENT_ACTIVE подпрограмма AcceptDeviceNotification вызывается по адресу IRQL <= DISPATCH_LEVEL.

PEP_DPM_WORK

Уведомление (PEP_DPM_WORK)

Значение PEP_DPM_WORK.

Данные (PEP_DPM_WORK)

Указатель на структуру PEP_WORK .

Отправляется в PEP один раз, когда PEP вызывает подпрограмму RequestWorker для запроса элемента работы из платформы управления питанием Windows (PoFx).

После того как PEP вызывает подпрограмму RequestWorker для запроса рабочего элемента, PoFx отвечает, отправляя PEP уведомление PEP_DPM_WORK. Однако это уведомление не отправляется до тех пор, пока не будут доступны ресурсы (т. е. рабочий поток), необходимые для обработки рабочего элемента. Таким образом, PoFx гарантирует, что рабочий запрос, который PEP передает в PoFx во время уведомления, никогда не завершится сбоем из-за нехватки ресурсов.

Чтобы отправить уведомление PEP_DPM_WORK, операционная система вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_WORK, а параметр Data указывает на PEP_WORK структуру. При вводе PEP должен предполагать, что содержимое этой структуры не инициализировано. Чтобы обработать это уведомление, PEP должен задать член WorkInformation, указывающий на структуру, выделенную PEP PEP_WORK_INFORMATION, которая описывает запрашиваемую работу. Кроме того, PEP должен задать для элемента NeedWork структуры PEP_WORK значение TRUE, чтобы убедиться, что PEP обработал уведомление PEP_DPM_WORK и что член WorkInformation указывает на допустимую структуру PEP_WORK_INFORMATION. Если PEP не может обработать уведомление или ей не удается выделить PEP_WORK_INFORMATION структуру, pep должна задать для элемента WorkInformation значение NULL, а для элемента NeedWork — значение FALSE.

Для уведомления PEP_DPM_WORK подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_POWER_CONTROL_REQUEST

Уведомление (PEP_DPM_POWER_CONTROL_REQUEST)

Значение PEP_DPM_POWER_CONTROL_REQUEST.

Данные (PEP_DPM_POWER_CONTROL_REQUEST)

Указатель на структуру PEP_POWER_CONTROL_REQUEST .

Сообщает PEP, что драйвер вызвал API PoFxPowerControl для отправки кода элемента управления непосредственно в PEP.

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP, когда драйвер вызывает API PoFxPowerControl для отправки кода управления непосредственно в PEP. В этом случае указатель данных уведомления указывает на структуру PEP_POWER_CONTROL_REQUEST

Запросы управления питанием и их семантика определяются между модулем записи PEP и владельцем класса устройства. Обычно такой интерфейс предназначен для взаимодействия класса устройства, который не фиксируется в универсальной платформе управления питанием. Например, контроллер UART может передавать сведения о скорости baud в PEP, чтобы изменить некоторые платформенные часы или разделители, и такой обмен данными, скорее всего, будет использовать запрос на управление питанием.

! [ПРИМЕЧАНИЕ] PEP может запросить отправку кода элемента управления на устройство только после получения уведомления о PEP_DPM_DEVICE_STARTED или PEP_DPM_POWER_CONTROL_REQUEST уведомления.

Для уведомления PEP_DPM_POWER_CONTROL_REQUEST подпрограмма AcceptDeviceNotification вызывается по адресу IRQL <= DISPATCH_LEVEL.

PEP_DPM_POWER_CONTROL_COMPLETE

Уведомление (PEP_DPM_POWER_CONTROL_COMPLETE)

Значение PEP_DPM_POWER_CONTROL_COMPLETE.

Данные (PEP_DPM_POWER_CONTROL_COMPLETE)

Указатель на структуру PEP_POWER_CONTROL_COMPLETE .

Информирует PEP о том, что драйвер выполнил запрос на управление питанием, который был ранее выдан PEP

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP, когда драйвер выполняет запрос на управление питанием, выданный ранее PEP.

! [ПРИМЕЧАНИЕ] PEP может игнорировать это уведомление, если он не выдает никаких запросов на управление питанием.

Для уведомления PEP_DPM_POWER_CONTROL_COMPLETE подпрограмма AcceptDeviceNotification вызывается по адресу IRQL <= DISPATCH_LEVEL.

PEP_DPM_SYSTEM_LATENCY_UPDATE

Уведомление (PEP_DPM_SYSTEM_LATENCY_UPDATE)

Значение PEP_DPM_SYSTEM_LATENCY_UPDATE.

Данные (PEP_DPM_SYSTEM_LATENCY_UPDATE)

Указатель на структуру PEP_SYSTEM_LATENCY .

Сообщает PEP о том, что ОС обновила общую задержку системы.

Платформа управления питанием Windows (PoFx) отправляет это уведомление, когда ОС обновляет общую задержку системы.

В более ранних версиях PoFx это уведомление использовалось PEP для выбора состояния простоя процессора и платформы. При использовании последних интерфейсов PEP процесс выбора полностью обрабатывается ОПЕРАЦИОННОй системой, и поэтому это уведомление больше не является полезным. Он включен здесь для полноты, и PEP должен игнорировать его.

Чтобы отправить уведомление PEP_DPM_SYSTEM_LATENCY_UPDATE, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. Для этого уведомления подпрограмма AcceptDeviceNotification вызывается по адресу IRQL <= DISPATCH_LEVEL.

PEP_DPM_DEVICE_STARTED

Уведомление (PEP_DPM_DEVICE_STARTED)

Значение PEP_DPM_DEVICE_STARTED.

Данные (PEP_DPM_DEVICE_STARTED)

Указатель на структуру PEP_DEVICE_STARTED .

Сообщает PEP о том, что устройство запущено, чтобы оно было доступно для получения транзакций управления питанием.

Стеки устройств регистрируются в ОС для управления питанием среды выполнения в двухфакторном процессе. Драйвер сначала вызывает PoFxRegisterDevice, чтобы предоставить сведения о количестве компонентов, их состояниях простоя и соответствующих атрибутах. В ответ на этот вызов PEP получает уведомление PEP_DPM_REGISTER_DEVICE.

После успешной регистрации драйвер имеет возможность инициализировать свои компоненты (например, задать активные требования, требования к задержке обновления, обновить ожидаемое место бездействия и т. д.). После выполнения любых задач инициализации драйвер уведомляет диспетчер питания, вызвав PoFxStartDevicePowerManagement. В ответ PEP получит PEP_DPM_DEVICE_STARTED уведомление. На этом этапе считается, что устройство полностью включено для управления питанием во время выполнения.

В результате PEP не может отправлять никакие запросы на управление питанием драйверу, если только он не получил уведомление о PEP_DPM_DEVICE_STARTED или уведомление PEP_DPM_POWER_CONTROL_REQUEST.

Примечание

PEP может игнорировать это уведомление, если он не выдает никаких запросов на управление питанием.

Для уведомления PEP_DPM_DEVICE_STARTED подпрограмма AcceptDeviceNotification вызывается по адресу IRQL <= DISPATCH_LEVEL.

PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE

Уведомление (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

Значение PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE.

Данные (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

Указатель на структуру PEP_NOTIFY_COMPONENT_IDLE_STATE .

Отправляется в PEP, когда ОС выполняет переход состояния простоя для данного компонента.

Платформа управления питанием Windows (PoFx) отправляет это уведомление, когда ОС выполняет переход состояния простоя для данного компонента.

Важно!

PeP должен обрабатывать это уведомление.

При каждом переходе состояния простоя PEP получает уведомление до и после уведомления драйвера. PeP различает уведомления до и после, проверяя элемент DriverNotified структуры PEP_NOTIFY_COMPONENT_IDLE_STATE. Для последующего уведомления элемент DriverNotified будет иметь значение TRUE.

Предварительные уведомления обычно используются при переходе на F0. В этом случае PEP может потребоваться повторно включить часы или ресурсы питания, чтобы при обработке уведомления F0 драйвером было доступно оборудование. Соответственно, пост-уведомления обычно используются при переходе с F0 в более глубокое состояние простоя. После того как драйвер обработает уведомление о состоянии простоя, PEP может безопасно отключить часы и ресурсы питания.

Обработка перехода состояния простоя для данного компонента может потребовать асинхронной обработки, если операция занимает значительное время или irQL слишком высока для синхронного завершения перехода. В результате PEP может завершить это уведомление синхронно или асинхронно, задав для члена Completed значение TRUE или FALSE соответственно.

Если уведомление должно быть выполнено асинхронно, PEP уведомляет ОС о завершении, запрашивая рабочую роль (см. раздел RequestWorker) и заполняя предоставленную структуру рабочей информации в полученном уведомлении PEP_DPM_WORK с помощью типа работы PepWorkCompleteIdleState.

Чтобы отправить уведомление PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. Эта подпрограмма вызывается в IRQL <= DISPATCH_LEVEL.

PEP_DPM_REGISTER_DEBUGGER

Уведомление (PEP_DPM_REGISTER_DEBUGGER)

Значение PEP_DPM_REGISTER_DEBUGGER.

Данные (PEP_DPM_REGISTER_DEBUGGER)

Указатель на структуру PEP_REGISTER_DEBUGGER .

Сообщает PEP о том, что зарегистрированное устройство может использоваться в качестве порта отладки.

Платформа управления питанием Windows (PoFx) отправляет это уведомление, чтобы уведомить PEP о том, что зарегистрированное устройство может использоваться в качестве порта отладки.

Для уведомления PEP_DPM_REGISTER_DEBUGGER подпрограмма AcceptDeviceNotification вызывается по адресу IRQL <= DISPATCH_LEVEL.

PEP_DPM_LOW_POWER_EPOCH

Уведомление (PEP_DPM_LOW_POWER_EPOCH)

Значение PEP_DPM_LOW_POWER_EPOCH.

Данные (PEP_DPM_LOW_POWER_EPOCH)

Указатель на структуру PEP_LOW_POWER_EPOCH .

Это уведомление не рекомендуется использовать.

PEP_DPM_REGISTER_CRASHDUMP_DEVICE

Уведомление (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

Значение PEP_DPM_REGISTER_CRASHDUMP_DEVICE.

Данные (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

Указатель на структуру PEP_REGISTER_CRASHDUMP_DEVICE .

Платформа управления питанием Windows (PoFx) отправляет это уведомление, когда устройство регистрируется в качестве обработчика аварийного входа.

Возможность создания дампа памяти (crashdump) при возникновении неустранимой ошибки в системе неоценима для определения причины сбоя. Windows по умолчанию создает аварийное завершение, когда система обнаруживает проверку ошибок. В этом контексте система находится в очень ограниченной операционной среде с отключенными прерываниями и системой IRQL на HIGH_LEVEL.

Так как устройства, участвующие в записи аварийного восстановления на диск (например, контроллер хранилища, контроллер PCI и т. д.), могут быть отключены во время сбоя, ОС должна вызвать PEP для включения устройства. Таким образом, ОС запрашивает обратный вызов (PowerOnDumpDeviceCallback) из PEP для каждого устройства в стеке crashdump и вызывает обратный вызов при создании файла дампа.

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

Чтобы отправить уведомление PEP_DPM_REGISTER_CRASHDUMP_DEVICE, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. Для этого уведомления подпрограмма AcceptDeviceNotification вызывается по адресу IRQL <= HIGH_LEVEL.

PEP_DPM_DEVICE_IDLE_CONSTRAINTS

Уведомление (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

Значение PEP_DPM_DEVICE_IDLE_CONSTRAINTS.

Данные (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

Указатель на структуру PEP_DEVICE_PLATFORM_CONSTRAINTS . Отправляется в PEP для запроса зависимостей между состояниями D устройства и состояниями простоя платформы.

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP для запроса зависимостей между состояниями D устройства и состояниями простоя платформы. PEP использует это уведомление для возврата самого легкого D-состояния, в котором по-прежнему может находиться устройство, и входить в состояние бездействия каждой платформы. Операционная система гарантирует, что устройство находится в минимальном D-состоянии перед переходом в состояние простоя связанной платформы. Если состояние простоя платформы не зависит от того, что это устройство в каком-либо D-состоянии, PEP должен указать минимальное D-состояние PowerDeviceD0. Если никакие состояния простоя платформы не зависят от того, что это устройство в определенном D-состоянии, это уведомление можно игнорировать.

Это уведомление отправляется на каждое устройство после того, как PEP получит уведомление о PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Чтобы отправить уведомление PEP_DPM_DEVICE_IDLE_CONSTRAINTS, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_DEVICE_IDLE_CONSTRAINTS, а параметр Data указывает на PEP_DEVICE_PLATFORM_CONSTRAINTS структуру.

Для уведомления PEP_DPM_DEVICE_IDLE_CONSTRAINTS подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = DISPATCH_LEVEL.

PEP_DPM_COMPONENT_IDLE_CONSTRAINTS

Уведомление (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

Значение PEP_DPM_COMPONENT_IDLE_CONSTRAINTS.

Данные (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

Указатель на структуру PEP_COMPONENT_PLATFORM_CONSTRAINTS .

Отправляется в PEP для запроса зависимостей между F-состояниями компонента и состояниями простоя платформы.

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP для запроса зависимостей между F-состояниями компонента и состояниями простоя платформы. PEP использует это уведомление для возврата самого легкого F-состояния, в котором по-прежнему может находиться компонент, и входить в состояние бездействия каждой платформы. Операционная система гарантирует, что компонент находится в минимальном F-состоянии перед переходом в состояние простоя связанной платформы. Если состояние простоя платформы не зависит от того, что этот компонент имеет какое-либо F-состояние, в PEP должно быть указано минимальное F-состояние 0. Если никакие состояния простоя платформы не зависят от того, что этот компонент имеет определенное F-состояние, это уведомление можно игнорировать.

Ограничения простоя устройства глубже D0 являются более сдерживающими, чем состояния простоя компонентов для компонентов на устройстве. Для заданного индекса состояния бездействия платформы, если устройство указало ограничение простоя устройства, соответствующее ограничение простоя компонента для всех компонентов, связанных с устройством, игнорируется.

Это уведомление отправляется каждому компоненту на каждом устройстве после того, как PEP получит уведомление о PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Чтобы отправить уведомление PEP_DPM_COMPONENT_IDLE_CONSTRAINTS, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. Подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES

Уведомление (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

Значение PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES.

Данные (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

Указатель на структуру PEP_QUERY_COMPONENT_PERF_CAPABILITIES .

Сообщает PEP о том, что запрашивается количество наборов состояний производительности (P-состояние), определенных для компонента.

Чтобы отправить уведомление PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, а параметр Data указывает на PEP_QUERY_COMPONENT_PERF_CAPABILITIES структуру.

Для уведомления PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET

Уведомление (PEP_DPM_QUERY_COMPONENT_PERF_SET)

Значение PEP_DPM_QUERY_COMPONENT_PERF_SET.

Данные (PEP_DPM_QUERY_COMPONENT_PERF_SET)

Указатель на структуру PEP_QUERY_COMPONENT_PERF_SET .

Сообщает PEP о том, что запрашивается информация о наборе значений состояния производительности (P-state set) для компонента.

Чтобы отправить уведомление PEP_DPM_QUERY_COMPONENT_PERF_SET, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_QUERY_COMPONENT_PERF_SET, а параметр Data указывает на PEP_QUERY_COMPONENT_PERF_SET структуру.

Для уведомления PEP_DPM_QUERY_COMPONENT_PERF_SET подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME

Уведомление (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

Значение PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME.

Данные (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

Указатель на структуру PEP_QUERY_COMPONENT_PERF_SET_NAME .

Сообщает PEP о том, что запрашивается информация о наборе значений состояния производительности (P-state set) для компонента.

Чтобы отправить уведомление PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, а параметр Data указывает на PEP_QUERY_COMPONENT_PERF_SET_NAME структуру.

Для уведомления PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_STATES

Уведомление (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

Значение PEP_DPM_QUERY_COMPONENT_PERF_STATES.

Данные (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

Указатель на структуру PEP_QUERY_COMPONENT_PERF_STATES .

Сообщает PEP о том, что он запрашивает список дискретных значений состояния производительности (P-состояния) для указанного набора P-состояний.

Чтобы отправить уведомление PEP_DPM_QUERY_COMPONENT_PERF_STATES, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_QUERY_COMPONENT_PERF_STATES, а параметр Data указывает на PEP_QUERY_COMPONENT_PERF_STATES структуру.

Для уведомления PEP_DPM_QUERY_COMPONENT_PERF_STATES подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_COMPONENT_PERF_STATES

Уведомление (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

Значение PEP_DPM_REGISTER_COMPONENT_PERF_STATES.

Данные (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

Указатель на структуру PEP_REGISTER_COMPONENT_PERF_STATES .

Информирует PEP о состояниях производительности (P-состояния) указанного компонента.

Чтобы отправить уведомление PEP_DPM_REGISTER_COMPONENT_PERF_STATES, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_REGISTER_COMPONENT_PERF_STATES, а параметр Data указывает на PEP_REGISTER_COMPONENT_PERF_STATES структуру.

Для уведомления PEP_DPM_REGISTER_COMPONENT_PERF_STATES подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_REQUEST_COMPONENT_PERF_STATE

Уведомление (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

Значение PEP_DPM_REQUEST_COMPONENT_PERF_STATE.

Данные (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

Указатель на структуру PEP_REQUEST_COMPONENT_PERF_STATE.

Информирует PEP о том, что платформа управления питанием Windows (PoFx) запрашивает одно или несколько изменений состояния производительности (P-состояние).

Чтобы отправить уведомление PEP_DPM_REQUEST_COMPONENT_PERF_STATE, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_REQUEST_COMPONENT_PERF_STATE, а параметр Data указывает на структуру PEP_REQUEST_COMPONENT_PERF_STATE.

Для уведомления PEP_DPM_REQUEST_COMPONENT_PERF_STATE подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE

Уведомление (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

Значение PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE.

Данные (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

Указатель на структуру PEP_QUERY_CURRENT_COMPONENT_PERF_STATE.

Сообщает PEP о том, что он запрашивается для получения сведений о текущем P-состоянии в указанном наборе P-состояний.

Чтобы отправить уведомление PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. В этом вызове значение параметра Notification равно PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, а параметр Data указывает на PEP_QUERY_CURRENT_COMPONENT_PERF_STATE структуру.

Для уведомления PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS

Уведомление (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

Значение PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS.

Данные (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

Указатель на структуру PEP_DEBUGGER_TRANSITION_REQUIREMENTS .

Отправляется в PEP для запроса набора скоординированных состояний или состояний платформы, требующих выключения отладчика.

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP для запроса набора скоординированных состояний или состояний платформы, требующих выключения отладчика. Если это уведомление принято, ОС выполнит все переходы питания отладчика для PEP, и PEP может не использовать TransitionCriticalResource для управления питанием отладчика.

Это уведомление отправляется на каждое устройство отладчика после того, как PEP примет уведомление о PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE или PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES.

Чтобы отправить уведомление PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. Для этого уведомления подпрограмма AcceptDeviceNotification всегда вызывается по адресу IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM

Уведомление (PEP_DPM_QUERY_SOC_SUBSYSTEM)

Значение PEP_DPM_QUERY_SOC_SUBSYSTEM.

Данные (PEP_DPM_QUERY_SOC_SUBSYSTEM)

Указатель на структуру PEP_QUERY_SOC_SUBSYSTEM .

Отправляется в PEP для сбора основных сведений о конкретной системе в подсистеме микросхемы (SoC).

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP после инициализации состояний простоя платформы для сбора основных сведений о конкретной подсистеме SoC. PeP, который не реализует учет подсистемы SoC или не реализует его для указанного состояния простоя платформы, возвращает значение FALSE. Это позволяет ОС прекратить отправку диагностических уведомлений в PEP для этого состояния простоя платформы.

Системные подсистемы SubsystemCount и MetadataCount подсистемы могут изменяться с помощью обновлений PEP/BSP. SubsystemIndex может изменяться при каждой загрузке ОС.

Важно!

PEP не может игнорировать это уведомление. PeP получает это уведомление, так как он ответил на уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT для этого PlatformIdleStateIndex с ненулевым значением SubsystemCount.

Чтобы отправить уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification в PEP на DISPATCH_LEVEL IRQL < .

PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME

Уведомление (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

Значение PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME.

Данные (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

Указатель на структуру PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME .

Отправляется в PEP, когда ОС хочет собрать подсчет времени, в течение которого определенная система в подсистеме микросхемы (SoC) заблокировала вход в определенное состояние простоя платформы без ведома ОС.

Обычно ОС вызывает это уведомление в конце расширенного сеанса ожидания с подключением, когда ОС попыталась войти в указанное состояние простоя платформы. The PEP_QUERY_SOC_SUBSYSTEM_COUNT. Значение SubsystemCount, заполненное ранее PEP во время подкомпонентной инициализации, указывает, сколько уведомлений PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME отправляется PEP за раз. PEP может получать несколько уведомлений PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME для заданной подсистемы. Эти уведомления могут чередуться с PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING уведомлениями.

Важно!

PEP не может игнорировать это уведомление. PeP получает это уведомление, так как он ответил на уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT для этого PlatformIdleStateIndex с ненулевым значением SubsystemCount.

Чтобы отправить уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP на DISPATCH_LEVEL IRQL < .

PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT

Уведомление (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

Значение PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT.

Данные (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

Указатель на структуру PEP_QUERY_SOC_SUBSYSTEM_COUNT .

Отправляется в PEP после инициализации состояний простоя платформы, чтобы сообщить ОС, поддерживает ли PEP систему в подсистеме микросхемы (SoC), учитывая заданное состояние простоя платформы.

Это первое диагностическое уведомление подсистемы SoC, отправленное в PEP. PeP, который не реализует учет подсистемы SoC или не реализует его для указанного состояния простоя платформы, возвращает значение FALSE. В этом случае ОС больше не будет отправлять диагностические уведомления подсистемы SoC для этой платформы.

Примечание

PEP может игнорировать это уведомление, если он не реализует диагностические уведомления SoC для указанного состояния простоя платформы.

Чтобы отправить уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP в DISPATCH_LEVEL IRQL < .

PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA

Уведомление (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

Значение PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA.

Данные (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

Указатель на структуру PEP_QUERY_SOC_SUBSYSTEM_METADATA.

Отправляется в PEP для сбора необязательных метаданных о подсистеме, время блокировки которой только что было запрошено.

Это уведомление обычно отправляется в PEP сразу после уведомления PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME. Одно уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA собирает все пары метаданных "ключ-значение", описывающие подсистему.

Важно!

PEP не может игнорировать это уведомление. PeP получает это уведомление, так как он ответил на уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT для этого PlatformIdleStateIndex с ненулевым значением SubsystemCount.

Чтобы отправить уведомление PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification PEP. Для этого уведомления на DISPATCH_LEVEL IRQL < вызывается подпрограмма AcceptDeviceNotification.

PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING

Уведомление (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

Значение PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING.

Данные (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

Указатель на указатель A на структуру PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING . Структура.

Отправляется в PEP для очистки времени блокировки подсистемы и учета метаданных, выполнения дополнительной инициализации и перезапуска учета.

Платформа управления питанием Windows (PoFx) отправляет это уведомление в PEP в любое время после инициализации всех подсистем с помощью ОС. Как правило, это уведомление вызывается, когда ОС начинает новый период анализа того, что позволяет системе на микросхеме (SoC) выйти из указанного состояния простоя платформы (нацеливаясь на DRIPS при входе в режим ожидания с подключением). Ос отправляет это уведомление только для состояний простоя платформы, для которых PEP инициализировала одну или несколько подсистем SoC.

Чтобы отправить уведомление PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING, PoFx вызывает процедуру обратного вызова AcceptDeviceNotification pep на DISPATCH_LEVEL IRQL < .