Функция PoFxRegisterComponentPerfStates (wdm.h)
Подпрограмма PoFxRegisterComponentPerfStates регистрирует компонент устройства для управления состоянием производительности с помощью платформы управления питанием (PoFx).
Синтаксис
NTSTATUS PoFxRegisterComponentPerfStates(
[in] POHANDLE Handle,
[in] ULONG Component,
[in] ULONGLONG Flags,
[in] PPO_FX_COMPONENT_PERF_STATE_CALLBACK ComponentPerfStateCallback,
[in] PPO_FX_COMPONENT_PERF_INFO InputStateInfo,
[out] PPO_FX_COMPONENT_PERF_INFO *OutputStateInfo
);
Параметры
[in] Handle
Дескриптор, представляющий регистрацию устройства с помощью PoFx. Драйвер устройства ранее получил этот дескриптор из подпрограммы PoFxRegisterDevice .
[in] Component
Индекс, определяющий компонент, состояниями производительности которого будет управляться. Этот параметр представляет собой индекс массива Components в структуре PO_FX_DEVICE , используемой драйвером устройства для регистрации устройства в PoFx. Если массив Components содержит N элементов, индексы компонентов варьируются от 0 до N–1.
[in] Flags
Флаги, которые изменяют поведение регистрации состояния производительности. Задайте для этого элемента нулевое значение или один из следующих флагов PO_FX_FLAG_PERF_XXX bits:
[in] ComponentPerfStateCallback
Указатель на подпрограмму ComponentPerfStateCallback . Эта подпрограмма вызывается, когда PoFx завершает ведение журнала и уведомляет PEP о переходе состояния производительности, инициированном вызовом драйвера к PoFxIssueComponentPerfStateChange или PoFxIssueComponentPerfStateChangeMultiple. Этот обратный вызов может быть одинаковым для всех компонентов и всех устройств; PoFx предоставляет дескриптор устройства и индекс компонента в каждом вызове завершения.
[in] InputStateInfo
Если драйвер предоставляет сведения о состоянии производительности, этот параметр содержит указатель на драйвер, выделенный PO_FX_COMPONENT_PERF_INFO структуре, которая предоставляет сведения о состоянии производительности для PoFx. Если драйверу требуются сведения о состоянии производительности из PEP, этому параметру необходимо задать значение NULL.
[out] OutputStateInfo
Если драйверу требуются сведения о состоянии производительности из PEP, после успешной регистрации этот параметр содержит указатель на PO_FX_COMPONENT_PERF_INFO структуру, которая предоставляет сведения о состоянии производительности, определенные PEP. Если драйвер предоставляет сведения о состоянии производительности, для этого параметра необходимо задать значение NULL.
Память, выделенная для этого параметра, управляется PoFx, и драйвер не должен освобождать эту память при удалении устройства. Время существования этой памяти гарантированно превысит время существования компонента PoFx, содержащего эти наборы состояний производительности.
Возвращаемое значение
PoFxRegisterComponentPerfStates возвращает STATUS_SUCCESS , если PoFx принимает регистрацию устройств состояний производительности. Если какая-либо из необходимых сведений не указана или указана неверно, регистрация завершится ошибкой с кодом возврата, кроме STATUS_SUCCESS. Возможные возвращаемые значения ошибок включают следующие коды состояния.
Код возврата | Описание |
---|---|
|
Параметр Flags не содержит флаг PO_FX_FLAG_PERF_PEP_OPTIONAL , а PEP не может обеспечить управление состоянием производительности для этого устройства. |
|
Оба параметра InputStateInfo и OutputStateInfo имеют значение NULL, либо оба этих параметра не имеют значения NULL, либо в структуре PO_FX_COMPONENT_PERF_INFO , назначенной параметру InputStateInfo , отсутствуют наборы состояний производительности. |
Комментарии
Обратите внимание, что PoFx выполняет глубокое копирование структур устройства в его память.
Драйвер или подключаемый модуль расширения платформы (PEP) может предоставлять сведения о состояниях производительности, поддерживаемых каждым компонентом:
- Если драйвер предоставляет сведения о состоянии производительности, драйвер должен задать для параметра InputStateInfo указатель на PO_FX_COMPONENT_PERF_INFO структуру, содержащую сведения о состоянии производительности. В противном случае драйвер должен задать для этого параметра значение NULL.
- Если PEP предоставляет сведения о состоянии производительности, драйвер должен задать для параметра OutputStateInfo допустимый указатель на структуру PO_FX_COMPONENT_PERF_INFO , получающую сведения о состоянии производительности. В противном случае драйвер должен задать для этого параметра значение NULL.
Если драйвер регистрирует для поддержки состояния производительности только в целях ведения журнала или если драйвер может правильно работать с поддержкой PEP для управления состоянием производительности или без нее, драйвер должен установить флаг PO_FX_FLAG_PERF_PEP_OPTIONAL в параметре Flags . Если флаг установлен, вызов регистрации будет выполнен успешно, даже если PEP не поддерживает состояния производительности.
Если драйвер требует, чтобы PEP предоставлял сведения о состоянии производительности, драйвер не может задать флаг PO_FX_FLAG_PERF_PEP_OPTIONAL в параметре Flags .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 10. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h |
Библиотека | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= APC_LEVEL |