Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма 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
Индекс, определяющий компонент, состояние производительности которого будет управляться. Этот параметр представляет собой индекс в массив компонентов в структуре PO_FX_DEVICE , которую драйвер устройства использовал для регистрации устройства в PoFx. Если массив компонентов содержит N-элементы, индексы компонентов варьируются от 0 до N–1.
[in] Flags
Флаги, изменяющие поведение регистрации состояния производительности. Задайте для этого элемента значение нулю или одному из следующих флагов PO_FX_FLAG_PERF_XXXX бит:
[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. Возможные значения возвращаемых ошибок включают следующие коды состояния.
| Код возврата | Description |
|---|---|
|
Параметр 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. |
| целевая платформа | Всеобщий |
| Header | wdm.h |
| Library | Ntoskrnl.lib |
| DLL | Ntoskrnl.exe |
| IRQL | <= APC_LEVEL |