Fonction PoFxRegisterComponentPerfStates (wdm.h)
La routine PoFxRegisterComponentPerfStates inscrit un composant d’appareil pour la gestion de l’état des performances par l’infrastructure de gestion de l’alimentation (PoFx).
Syntaxe
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
);
Paramètres
[in] Handle
Handle qui représente l’inscription de l’appareil auprès de PoFx. Le pilote de périphérique a déjà reçu ce handle de la routine PoFxRegisterDevice .
[in] Component
Index qui identifie le composant dont les états de performances seront gérés. Ce paramètre est un index dans le tableau Components de la structure PO_FX_DEVICE que le pilote de périphérique a utilisé pour inscrire l’appareil auprès de PoFx. Si le tableau Composants contient N éléments, les index des composants vont de 0 à N–1.
[in] Flags
Indicateurs qui modifient le comportement de l’inscription de l’état des performances. Définissez ce membre sur zéro ou sur l’un des indicateurs suivants PO_FX_FLAG_PERF_ bitsXXX :
[in] ComponentPerfStateCallback
Pointeur vers une routine ComponentPerfStateCallback . Cette routine est appelée lorsque PoFx a terminé la journalisation et la notification au PEP d’une transition d’état des performances initiée par l’appel du pilote à PoFxIssueComponentPerfStateChange ou PoFxIssueComponentPerfStateChangeMultiple. Ce rappel peut être le même pour tous les composants et tous les appareils ; PoFx fournit le handle d’appareil et l’index de composant dans chaque appel d’achèvement.
[in] InputStateInfo
Si le pilote fournit des informations d’état des performances, ce paramètre contient un pointeur vers un pilote alloué PO_FX_COMPONENT_PERF_INFO structure qui fournit des informations d’état des performances à PoFx. Si le pilote requiert des informations d’état des performances du PEP, ce paramètre doit être défini sur NULL.
[out] OutputStateInfo
Si le pilote requiert des informations d’état des performances du PEP, après une inscription réussie, ce paramètre contient un pointeur vers une structure de PO_FX_COMPONENT_PERF_INFO qui fournit des informations d’état des performances définies par le PEP. Si le pilote fournit des informations sur l’état des performances, ce paramètre doit être défini sur NULL.
La mémoire allouée pour ce paramètre est gérée par PoFx, et le pilote ne doit pas libérer cette mémoire lorsque l’appareil est supprimé. La durée de vie de cette mémoire est garantie pour dépasser la durée de vie du composant PoFx qui contient ces jeux d’états de performances.
Valeur retournée
PoFxRegisterComponentPerfStates retourne STATUS_SUCCESS si PoFx accepte l’inscription des états de performances de l’appareil. Si l’une des informations nécessaires n’est pas fournie ou est incorrecte, l’inscription échoue avec un code de retour autre que STATUS_SUCCESS. Les valeurs de retour d’erreur possibles incluent les codes status suivants.
Code de retour | Description |
---|---|
|
Le paramètre Flags n’inclut pas l’indicateur PO_FX_FLAG_PERF_PEP_OPTIONAL et le PEP n’est pas en mesure de fournir une gestion de l’état des performances pour cet appareil. |
|
InputStateInfo et OutputStateInfo ont la valeur NULL ou ces deux paramètres ne sont pas NULL, ou il n’existe aucun jeu d’état de performances dans la structure PO_FX_COMPONENT_PERF_INFO qui a été affectée au paramètre InputStateInfo. |
Remarques
Notez que PoFx effectue une copie approfondie des structures de l’appareil dans sa mémoire.
Le pilote ou le plug-in d’extension de plateforme (PEP) peut fournir des informations sur les états de performances pris en charge par chaque composant :
- Si le pilote fournit des informations d’état des performances, il doit définir le paramètre InputStateInfo sur un pointeur vers une structure PO_FX_COMPONENT_PERF_INFO qui contient les informations d’état des performances. Sinon, le pilote doit définir ce paramètre sur NULL.
- Si le PEP fournit des informations sur l’état des performances, le pilote doit définir le paramètre OutputStateInfo sur un pointeur valide vers une structure de PO_FX_COMPONENT_PERF_INFO qui reçoit les informations d’état des performances. Sinon, le pilote doit définir ce paramètre sur NULL.
Si le pilote s’inscrit à la prise en charge de l’état des performances à des fins de journalisation uniquement, ou si le pilote peut fonctionner correctement avec ou sans prise en charge PEP pour la gestion de l’état des performances, le pilote doit définir l’indicateur PO_FX_FLAG_PERF_PEP_OPTIONAL dans le paramètre Flags . Si l’indicateur est défini, l’appel d’inscription réussit même si le PEP ne prend pas en charge les états de performances.
Si le pilote exige que le PEP fournisse des informations d’état des performances, il ne peut pas définir l’indicateur PO_FX_FLAG_PERF_PEP_OPTIONAL dans le paramètre Flags .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 10. |
Plateforme cible | Universal |
En-tête | wdm.h |
Bibliothèque | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= APC_LEVEL |