Notifications de gestion de l’alimentation du processeur (PPM)

Chaque notification de gestion de l’alimentation du processeur (PPM) que reçoit la routine de rappel AcceptProcessorNotification du PEP est accompagnée d’un paramètre Notification qui indique le type de notification et d’un paramètre Data qui pointe vers une structure de données qui contient les informations du type de notification spécifié.

Dans cet appel, le paramètre Notification est défini sur une valeur constante PEP_NOTIFY_PPM_XXX qui indique le type de notification. Le paramètre Data pointe vers un type de structure PEP_PPM_XXX associé à ce type de notification.

Les ID de notification de gestion de l’alimentation du processeur (PPM) suivants sont utilisés par la routine de rappel AcceptProcessorNotification.

PEP_NOTIFY_PPM_QUERY_CAPABILITIES

Handle

Structure PEPHANDLE contenant le handle d’appareil du pep pour le processeur cible. Si la notification ne cible pas un processeur spécifique, la valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_CAPABILITIES.

Données

Pointeur vers une structure PEP_PPM_QUERY_CAPABILITIES.

Remarques

Informe le PEP qu’il est interrogé pour les fonctionnalités de gestion de l’alimentation du PEP.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lorsque le pep est interrogé pour ses fonctionnalités de gestion de l’alimentation. Cela se produit au moment de l’initialisation du processeur et est envoyé pour chaque processeur dans le système.

Les plateformes avec des processeurs x86/AMD64 doivent utiliser des interfaces ACPI pour le contrôle des performances du processeur.

Pour envoyer une notification PEP_NOTIFY_PPM_QUERY_CAPABILITIES, PoFx appelle la routine de rappel AcceptProcessorNotification du PEP. Dans cet appel, la valeur du paramètre Notification est PEP_NOTIFY_PPM_QUERY_CAPABILITIES et le paramètre Data pointe vers une structure PEP_PPM_QUERY_CAPABILITIES.

Pour une notification PEP_NOTIFY_PPM_QUERY_CAPABILITIES, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_IDLE_STATES

Notification

Valeur PEP_NOTIFY_PPM_QUERY_IDLE_STATES.

Données

Pointeur vers une structure PEP_PPM_QUERY_IDLE_STATES.

Remarques

Informe le peps des états inactifs.

Pour envoyer une notification PEP_NOTIFY_PPM_QUERY_IDLE_STATES, PoFx appelle la routine de rappel AcceptProcessorNotification du PEP. Dans cet appel, la valeur du paramètre Notification est PEP_NOTIFY_PPM_QUERY_IDLE_STATES et le paramètre Data pointe vers une structure PEP_PPM_QUERY_IDLE_STATES.

Pour une notification PEP_NOTIFY_PPM_QUERY_IDLE_STATES, la routine AcceptProcessorNotification est toujours appelée dans IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_IDLE_SELECT

Notification

Valeur PEP_NOTIFY_PPM_IDLE_SELECT.

Données

Pointeur vers une structure PEP_PPM_IDLE_SELECT.

Remarques

Informe le PEP de la sélection inactive.

Pour envoyer une notification PEP_NOTIFY_PPM_IDLE_SELECT, PoFx appelle la routine de rappel AcceptProcessorNotification du PEP. Dans cet appel, la valeur du paramètre Notification est PEP_NOTIFY_PPM_IDLE_SELECT et le paramètre Data pointe vers une structure PEP_PPM_IDLE_SELECT.

Pour une notification PEP_NOTIFY_PPM_IDLE_SELECT, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_IDLE_CANCEL

Notification

Valeur PEP_NOTIFY_PPM_IDLE_CANCEL.

Données

Pointeur vers une structure PEP_PPM_IDLE_CANCEL.

Remarques

Informe le PEP d’une action d’annulation.

Pour envoyer une notification PEP_NOTIFY_PPM_IDLE_CANCEL, PoFx appelle la routine de rappel AcceptProcessorNotification du PEP. Dans cet appel, la valeur du paramètre Notification est PEP_NOTIFY_PPM_IDLE_CANCEL et le paramètre Data pointe vers une structure PEP_PPM_IDLE_CANCEL.

Pour une notification PEP_NOTIFY_PPM_IDLE_CANCEL, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_IDLE_EXECUTE

Handle

Structure PEPHANDLE contenant le handle d’appareil du pep pour le processeur cible. Si la notification ne cible pas un processeur spécifique, la valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_IDLE_EXECUTE.

Données

Pointeur vers une structure PEP_PPM_IDLE_EXECUTE ou PEP_PPM_IDLE_EXECUTE_V2.

Remarques

Envoyé au peps pour faire passer le processeur actuel à l’état d’inactivité spécifié.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP pour faire passer le processeur actuel à l’état d’inactivité spécifié.

Le PEP peut préparer le matériel à passer à l’état d’inactivité précédemment sélectionné, notamment en informant le système d’exploitation des ressources système principales qui peuvent être affectées par la transition en veille. Ensuite, il doit exécuter l’instruction d’arrêt pour passer le processeur à l’état inactif. Au retour de l’état d’inactivité, le pep doit annuler la configuration matérielle, notamment notifier le système d’exploitation des ressources système principales qui peuvent être devenues actives lors du réveil. Si le pep ne parvient pas à exécuter l’état d’inactivité du processeur (et de la plateforme), il doit retourner une erreur status.

Lors de l’utilisation de l’interface d’état d’inactivité coordonnée, le système d’exploitation utilise la structure PEP_PPM_IDLE_EXECUTE_V2 qui inclut les champs CoordinatedStateCount et CoordinatedState avec la liste des états inactifs coordonnés qui seront entrés par la transition inactive. Le champ PlatformState spécifie l’état d’inactivité coordonné le plus profond de la plateforme entré, le cas échéant.

Lorsque vous n’utilisez pas l’interface d’état d’inactivité coordonnée, le système d’exploitation utilise la structure PEP_PPM_IDLE_EXECUTE.

Pour une notification PEP_NOTIFY_PPM_IDLE_EXECUTE, la routine AcceptProcessorNotification est appelée avec les interruptions désactivées.

PEP_NOTIFY_PPM_IDLE_COMPLETE

Handle

Structure PEPHANDLE contenant le handle d’appareil du pep pour le processeur cible.

Notification

Valeur PEP_NOTIFY_PPM_IDLE_COMPLETE.

Données

Pointeur vers une structure PEP_PPM_IDLE_COMPLETE ou PEP_PPM_IDLE_COMPLETE_V2..

Remarques

Informe le peps que le processeur actuel se réveille d’une transition inactive terminée.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lorsque le processeur actuel se réveille d’une transition inactive terminée. Si la plateforme exécutait une transition inactive de la plateforme, le premier processeur à sortir indique l’état d’inactivité de la plateforme qui est en cours de fermeture. Selon le type de synchronisation utilisé dans la transition inactive de la plateforme, le premier processeur à sortir d’un état d’inactivité de la plateforme peut ne pas être le processeur qui est entré dans l’état d’inactivité de la plateforme.

Si le processeur exécutait un état d’inactivité profond, le pep ne doit pas attendre qu’il reçoive la notification complète pour restaurer le contexte principal ou informer le système d’exploitation que les ressources principales ont été restaurées. Le système d’exploitation s’attend à ce que ces ressources aient été restaurées une fois la notification d’exécution terminée. Lorsque l’hyperviseur est activé, le pep ne reçoit cette notification qu’à la sortie d’un état d’inactivité de la plateforme et avec le champ ProcessorState défini sur PEP_PROCESSOR_IDLE_STATE_UNKNOWN.

Lors de l’utilisation de l’interface d’état d’inactivité coordonné, le système d’exploitation utilise la structure PEP_PPM_IDLE_COMPLETE_V2 qui inclut les champs CoordinatedStateCount et CoordinatedState avec la liste des états inactifs coordonnés qui seront supprimés par la transition inactive. Le champ PlatformState spécifie l’état d’inactivité coordonné le plus profond de la plateforme qui est en cours de fermeture, le cas échéant. Notez que l’ensemble d’états inactifs coordonnés arrêtés par ce processeur peut être différent de l’ensemble d’états d’inactivité coordonnés entrés par celui-ci, si la synchronisation libre est utilisée.

Lorsque vous n’utilisez pas l’interface d’état d’inactivité coordonnée, le système d’exploitation utilise la structure PEP_PPM_IDLE_COMPLETE.

Pour une notification PEP_NOTIFY_PPM_IDLE_COMPLETE, la routine AcceptProcessorNotification est appelée avec les interruptions désactivées et est toujours exécutée sur le processeur cible.

PEP_NOTIFY_PPM_IS_PROCESSOR_HALTED

Handle

Structure PEPHANDLE contenant le handle d’appareil du pep pour le processeur cible. Si la notification ne cible pas un processeur spécifique, la valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_IS_PROCESSOR_HALTED.

Données

Pointeur vers une structure PEP_PPM_IS_PROCESSOR_HALTED.

Remarques

Envoyé au PEP pour déterminer si le processeur spécifié est actuellement arrêté dans son état d’inactivité sélectionné.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP pour déterminer si le processeur spécifié est actuellement arrêté dans son état d’inactivité sélectionné. Le système d’exploitation utilisera cette notification pour case activée si un processeur secondaire a entièrement terminé la transition vers l’inactif lors de la coordination des états d’inactivité de la plateforme. Le PEP doit garantir que le processeur cible a atteint un état dans lequel la transition inactif de la plateforme peut se produire en toute sécurité (par exemple, en vérifiant les registres matériels pour voir si le cœur est arrêté). Une fois que cette notification indique que le processeur est inactif, ce processeur ne doit pas se réveiller, sauf si le système d’exploitation lui demande explicitement de le faire.

Le PEP peut recevoir cette notification à tout moment entre les notifications IDLE_SELECT et IDLE_COMPLETE. Il est garanti de recevoir cette notification au maximum une fois pendant une transition inactive.

Pour une notification PEP_NOTIFY_PPM_IS_PROCESSOR_HALTED, la routine AcceptProcessorNotification est appelée au niveau de n’importe quel IRQL et avec les interruptions désactivées, au niveau de n’importe quel IRQL, et n’est jamais exécutée sur le processeur cible.

<= HIGH_LEVEL

PEP_NOTIFY_PPM_INITIATE_WAKE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible.

Notification

Valeur PEP_NOTIFY_PPM_INITIATE_WAKE.

Données

Pointeur vers une structure.

Remarques

Envoyé au PEP pour qu’un processeur spécifié démarre son réveil à partir d’un état d’inactivité non interruptible.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP pour qu’un processeur spécifié lance son réveil à partir d’un état d’inactivité non interruptible. Le PEP doit retourner le status de veille pour le processeur cible à l’aide de NeedInterruptForCompletion. Elle retourne TRUE si le processeur a besoin d’une interruption pour terminer la sortie de l’état d’inactivité. Dans ce cas, le PEP doit s’assurer que le processeur cible est interruptible au retour de la gestion de cette notification. Si le processeur cible est déjà en cours d’exécution et/ou quitte finalement l’état inactif (et qu’il est en train de le faire) sans nécessiter d’interruption générée par le logiciel, NeedInterruptForCompletion doit avoir la valeur FALSE.

Remarque Le PEP ne recevra pas cette notification pour le même processeur simultanément.

Pour une notification PEP_NOTIFY_PPM_INITIATE_WAKE, la routine AcceptProcessorNotification est appelée à n’importe quel IRQL, avec les interruptions désactivées, et n’est jamais exécutée sur le processeur cible.

<= HIGH_LEVEL

PEP_NOTIFY_PPM_QUERY_FEEDBACK_COUNTERS

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_FEEDBACK_COUNTERS.

Données

Pointeur vers une structure PEP_PPM_QUERY_FEEDBACK_COUNTERS.

Remarques

Informe le PEP que le PEP est interrogé pour obtenir la liste des compteurs de commentaires qu’il prend en charge.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour interroger le PEP pour obtenir la liste des compteurs de commentaires qu’il prend en charge.

Pour une notification PEP_NOTIFY_PPM_QUERY_FEEDBACK_COUNTERS, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_FEEDBACK_READ

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_FEEDBACK_READ.

Données

Pointeur vers une structure PEP_PPM_FEEDBACK_READ.

Remarques

Informe le PEP qu’il est interrogé pour connaître la valeur actuelle d’un compteur de commentaires.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lorsqu’elle souhaite interroger la valeur actuelle d’un compteur de commentaires.

Cette notification peut être envoyée avec les interruptions désactivées. Si le champ Affinitized du compteur est défini, cette notification est exécutée sur le processeur cible. Sinon, cette notification peut être exécutée à partir de n’importe quel processeur.

Pour une notification PEP_NOTIFY_PPM_FEEDBACK_READ, la routine AcceptProcessorNotification peut être appelée à l’adresse IRQL = DISPATCH_LEVEL.

PEP_NOTIFY_PPM_QUERY_PERF_CAPABILITIES

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_PERF_CAPABILITIES.

Données

Pointeur vers une structure PEP_PPM_QUERY_PERF_CAPABILITIES.

Remarques

Informe le PEP qu’il est interrogé sur les plages de performances prises en charge par la plateforme.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour interroger les plages de performances prises en charge par la plateforme. Les champs DomainId et DomainMembers de la structure PEP_PPM_QUERY_PERF_CAPABILITIES sont utilisés pour exprimer les domaines d’état des performances à la plateforme. Chaque processeur est membre d’un domaine d’état de performances. Le système d’exploitation garantit que tous les processeurs d’un domaine de performances modifient les performances ensemble.

Pour une notification PEP_NOTIFY_PPM_QUERY_PERF_CAPABILITIES, la routine AcceptProcessorNotification est toujours appelée dans IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_PERF_CONSTRAINTS

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible.

Notification

Valeur PEP_NOTIFY_PPM_PERF_CONSTRAINTS.

Données

Pointeur vers une structure PEP_PPM_PERF_CONSTRAINTS.

Remarques

Informe le PEP qu’il est interrogé sur les contraintes de fonctionnement actuelles du processeur.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lorsqu’elle souhaite inspecter les contraintes de fonctionnement actuelles du processeur. Le PEP lance une demande pour que le système d’exploitation réévalue les contraintes de perf du processeur en exécutant un contrôle d’alimentation avec le code de contrôle GUID_PPM_PERF_CONSTRAINT_CHANGE. InBuffer et OutBuffer doivent avoir la valeur NULL.

Le PEP doit attendre qu’il reçoive une notification de PEP_DPM_DEVICE_STARTED pour un processeur avant d’effectuer une transaction de contrôle d’alimentation pour le processeur.

Pour une notification PEP_NOTIFY_PPM_PERF_CONSTRAINTS, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_PERF_SET

Cette notification informe le PEP que les performances de fonctionnement actuelles du processeur doivent être modifiées.

Les éléments suivants décrivent les paramètres de AcceptProcessorNotification.

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_PERF_SET.

Données

Pointeur vers une structure PEP_PPM_PERF_SET .

Remarques

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lorsqu’elle souhaite modifier les performances de fonctionnement actuelles du processeur. Cette notification peut être envoyée lors de l’exécution sur n’importe quel processeur.

Pour une notification PEP_NOTIFY_PPM_PERF_SET, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = DISPATCH_LEVEL.

PEP_NOTIFY_PPM_PARK_SELECTION

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_PARK_SELECTION.

Données

Pointeur vers une structure PEP_PPM_PARK_SELECTION.

Remarques

Informe le PEP que le système d’exploitation souhaite qu’il sélectionne un ensemble préféré de cœurs de processeur à garer.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification pour indiquer au PEP de sélectionner un ensemble de cœurs préféré à stationner.

Le PEP_NOTIFY_PPM_PARK_SELECTION a été surchargé pour effectuer deux fonctions :

Laissez le PEP sélectionner les processeurs (parmi l’ensemble de tous les processeurs du système) qui doivent être garés et ceux qui doivent être non stationnés. Laissez le PEP sélectionner les processeurs (parmi l’ensemble de tous les processeurs qui ne sont pas affectés) qui doivent recevoir des interruptions et ceux qui ne doivent pas recevoir d’interruptions. Windows ne permet pas au PEP de distinguer lequel des deux du système d’exploitation est exécuté. Par conséquent, lorsque le PEP reçoit cette notification avec un ensemble donné d’entrées (AdditionalUnparkedProcessors count et PoPreference), il doit fournir une sortie cohérente (PepPreference), sauf si un événement externe provoque une modification de la préférence PEP.

Pour une notification PEP_NOTIFY_PPM_PARK_SELECTION, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = DISPATCH_LEVEL.

PEP_NOTIFY_PPM_CST_STATES

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_CST_STATES.

Données

Pointeur vers une structure PEP_PPM_CST_STATES.

Remarques

Envoyé au PEP pour indiquer l’ensemble d’états C définis par ACPI pris en charge par le processeur.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP pour indiquer l’ensemble d’états C définis par ACPI pris en charge par le processeur. Cette notification sera envoyée une fois avant la première fois que le PEP reçoit PEP_NOTIFY_PPM_QUERY_IDLE_STATES_V2 notification pour un processeur, et à nouveau chaque fois que le processeur reçoit une notification Notify(0x81) indiquant que l’objet _CST a changé.

Pour une notification PEP_NOTIFY_PPM_CST_STATES, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Données

Pointeur vers une structure PEP_PPM_QUERY_PLATFORM_STATES.

Remarques

Envoyé lors de l’initialisation du processeur pour interroger le nombre d’états inactifs de la plateforme pris en charge par le PEP.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP lors de l’initialisation du processeur pour interroger le nombre d’états inactifs de la plateforme qu’il prend en charge. Cette notification est envoyée une fois au démarrage. Après avoir retourné un nombre non nul d’états de plateforme, le PEP peut commencer à sélectionner les états inactifs de la plateforme pendant les transitions d’inactivité du processeur.

Pour une notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES, la routine AcceptProcessorNotification est toujours appelée dans IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_LP_SETTINGS

Notification

Valeur PEP_NOTIFY_PPM_QUERY_LP_SETTINGS.

Données

Pointeur vers une structure PEP_PPM_QUERY_LP_SETTINGS.

Remarques

Pour envoyer une notification PEP_NOTIFY_PPM_QUERY_LP_SETTINGS, PoFx appelle la routine de rappel AcceptProcessorNotification du PEP. Dans cet appel, la valeur du paramètre Notification est PEP_NOTIFY_PPM_QUERY_LP_SETTINGS et le paramètre Data pointe vers une structure PEP_PPM_QUERY_LP_SETTINGS.

Pour une notification PEP_NOTIFY_PPM_QUERY_LP_SETTINGS, la routine AcceptProcessorNotification est toujours appelée dans IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_IDLE_STATES_V2

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_IDLE_STATES_V2.

Données

Pointeur vers une structure PEP_PPM_QUERY_IDLE_STATES_V2.

Remarques

Utilisé lors de l’initialisation du processeur pour interroger la liste des états inactifs pris en charge par le PEP.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP lors de l’initialisation du processeur pour interroger la liste des états inactifs qu’il prend en charge.

Le membre Count spécifie la taille du tableau d’états inactifs. Le pilote de processeur interroge le nombre d’états inactifs avec PEP_NOTIFY_PPM_QUERY_CAPABILITIES avant d’envoyer cette notification.

Le PEP remplit le tableau IdleStates avec des informations sur chaque état inactif qu’il prend en charge. Les états inactifs doivent être répertoriés dans l’ordre de réduction de la consommation d’énergie/augmentation du coût de transition. Le PEP n’est pas obligé de signaler la même liste d’états inactifs pour chaque processeur.

Pour une notification PEP_NOTIFY_PPM_QUERY_IDLE_STATES_V2, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE.

Données

Pointeur vers une structure PEP_PPM_QUERY_PLATFORM_STATE.

Remarques

Envoyé au PEP pour interroger les propriétés d’un état d’inactivité de plateforme unique.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour interroger les propriétés d’un état d’inactivité de plateforme unique.

Le paramètre StateIndex de la structure PEP_PPM_QUERY_PLATFORM_STATE spécifie l’index de l’état d’inactivité de la plateforme en cours d’interrogation. Le pilote de processeur interroge le nombre d’états inactifs de la plateforme pris en charge avec PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES avant d’envoyer cette notification. Le pilote de processeur envoie ensuite une notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE pour chaque état d’inactivité de la plateforme. Le pilote de processeur attendra d’envoyer cette notification jusqu’à ce que tous les processeurs se soient inscrits auprès du PEP.

Le PEP remplit la structure d’état avec des informations sur l’état d’inactivité de la plateforme. Les états inactifs de la plateforme doivent être répertoriés dans l’ordre de réduction de la consommation d’énergie/augmentation du coût de transition.

Pour une notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_TEST_IDLE_STATE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_TEST_IDLE_STATE.

Données

Pointeur vers une structure PEP_PPM_TEST_IDLE_STATE.

Remarques

Permet de tester si l’état d’inactivité du processeur et de la plateforme spécifiés peut être entré sur le processeur spécifié.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification pour tester si l’état d’inactivité du processeur et de la plateforme spécifiés peut être entré sur le processeur spécifié. Si l’état inactif peut être entré, le PEP remplit le code de veto PEP_IDLE_VETO_NONE et termine la transition inactive. Si la transition inactive ne peut pas être effectuée pour une raison quelconque, le PEP remplit un code de veto non nul.

Les codes de veto importants dans la plage 0x80000000 à 0xffffffff sont réservés à l’utilisation du système d’exploitation et ne peuvent pas être utilisés.

Lorsque cette notification est envoyée, le système d’exploitation a déjà validé que toutes les contraintes associées à l’état d’inactivité du processeur ou de la plateforme sélectionné ont été satisfaites, y compris les contraintes d’appareil et de processeur pour une transition inactif de la plateforme.

Cette notification sera envoyée avant que le système d’exploitation ne tente d’entrer un état d’inactivité du processeur ou de la plateforme, à l’exception de l’état d’inactivité du processeur avec l’index 0, qui doit toujours être entré. L’exécution de cette notification avec PEP_IDLE_VETO_NONE ne garantit pas que le système d’exploitation entrera dans l’état d’inactivité indiqué. Cette notification est envoyée avec les interruptions désactivées. Cette notification est toujours exécutée sur le processeur cible.

Pour une notification PEP_NOTIFY_PPM_TEST_IDLE_STATE, la routine AcceptProcessorNotification est appelée avec les interruptions désactivées.

PEP_NOTIFY_PPM_IDLE_PRE_EXECUTE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_IDLE_PRE_EXECUTE.

Données

Pointeur vers une structure PEP_PPM_IDLE_EXECUTE ou PEP_PPM_IDLE_EXECUTE_V2.

Remarques

Envoyé au PEP pour préparer le système à passer à l’état d’inactivité spécifié.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP pour préparer le système à passer à l’état d’inactivité spécifié. Une fois cette notification terminée, le système d’exploitation passe le processeur en mode inactif en entrant l’état C associé. Si le PEP ne parvient pas à préparer le système à entrer dans l’état d’inactivité du processeur (et de la plateforme), il doit retourner une erreur status.

Lorsque l’hyperviseur est activé, le PEP ne reçoit cette notification qu’à l’entrée à un état d’inactivité de la plateforme et avec le champ ProcessorState défini sur PEP_PROCESSOR_IDLE_STATE_UNKNOWN.

Lors de l’utilisation de l’interface d’état d’inactivité coordonnée, le système d’exploitation utilise la structure PEP_PPM_IDLE_EXECUTE_V2 qui inclut les champs CoordinatedStateCount et CoordinatedState avec la liste des états inactifs coordonnés qui seront entrés par la transition inactive. Le champ PlatformState spécifie l’état d’inactivité coordonné le plus profond de la plateforme entré, le cas échéant.

Lorsqu’il n’utilise pas l’interface d’état d’inactivité coordonnée, le système d’exploitation utilise la structure PEP_PPM_IDLE_EXECUTE.

Pour une notification PEP_NOTIFY_PPM_IDLE_PRE_EXECUTE, la routine AcceptProcessorNotification est appelée avec les interruptions désactivées et est toujours exécutée sur le processeur cible.

PEP_NOTIFY_PPM_UPDATE_PLATFORM_STATE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_UPDATE_PLATFORM_STATE.

Données

Pointeur vers une structure PEP_PPM_QUERY_PLATFORM_STATE.

Remarques

Informe le PEP qu’un processeur a reçu Notify(0x81) pour mettre à jour les caractéristiques d’un état d’inactivité de la plateforme.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lorsqu’un processeur a reçu Notify(0x81) pour mettre à jour les caractéristiques d’un état inactif de la plateforme. Cette notification est envoyée une fois pour chaque état d’inactivité de la plateforme. Si le PEP n’accepte pas la notification (c’est-à-dire qu’il retourne FALSE à partir de son rappel AcceptProcessorNotification), la définition précédente de l’état d’inactivité de la plateforme, à partir de la dernière notification acceptée PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE ou PEP_NOTIFY_PPM_UPDATE_PLATFORM_STATE, est conservée.

Cette notification utilise la même mémoire tampon de données que la notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE.

Pour une notification PEP_NOTIFY_PPM_UPDATE_PLATFORM_STATE, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE_RESIDENCIES

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE_RESIDENCIES.

Données

Pointeur vers une structure PEP_PPM_PLATFORM_STATE_RESIDENCIES.

Remarques

Informe le PEP qu’il doit capturer le temps cumulé réel passé dans chaque état d’inactivité de la plateforme depuis le démarrage.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP pour capturer le temps cumulé passé dans chaque état d’inactivité de la plateforme depuis le démarrage. Par conséquent, cette requête s’applique uniquement aux plateformes où le matériel sous-jacent peut décider de manière autonome d’entrer dans un état d’inactivité de la plateforme différent de celui demandé par le système d’exploitation. Les valeurs retournées sont utilisées à des fins de diagnostic et identifient quand la vue du système d’exploitation de la résidence de l’état inactif de la plateforme diffère considérablement de ce que la plateforme a réellement réalisé.

Count spécifie le nombre d’éléments dans le tableau States, où l’index d’élément correspond à l’index d’état d’inactivité de la plateforme. Le PEP remplit chaque élément avec le nombre réel de résidence et de transition de l’état correspondant.

Remarque Les valeurs accumulées capturées par cette requête doivent correspondre uniquement aux périodes où le PEP (ou pilote de processeur) a effectivement exécuté une transition d’état inactif de la plateforme. Cela garantit que la comparaison entre la résidence calculée du système d’exploitation et la résidence réelle est significative.

Pour une notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE_RESIDENCIES, la routine AcceptProcessorNotification peut être appelée au niveau de n’importe quel IRQL.

PEP_NOTIFY_PPM_QUERY_VETO_REASONS

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_VETO_REASONS.

Données

Pointeur vers une structure PEP_PPM_QUERY_VETO_REASONS.

Remarques

Permet d’interroger le nombre de raisons de veto uniques utilisées par le PEP dans les rappels ProcessorIdleVeto et PlatformIdleVeto.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour interroger le nombre de raisons de veto uniques que le PEP utilise dans les rappels ProcessorIdleVeto et PlatformIdleVeto. Cette notification est facultative et peut être ignorée par le PEP.

S’il est accepté, le PEP est autorisé à utiliser les raisons de veto comprises entre 1 et VetoReasonCount, inclus, pour mettre son veto à tout processeur, plateforme ou état inactif coordonné. Le PEP n’est pas autorisé à utiliser des motifs de veto supérieurs à VetoReasonCount. Le système d’exploitation préalloue les structures de suivi du veto et, lorsqu’il est utilisé avec PEP_NOTIFY_PPM_ENUMERATE_BOOT_VETOES, garantit que tous les rappels de veto de processeur, de plateforme et d’état coordonnés réussissent.

Si cette notification n’est pas acceptée par le PEP, le PEP peut utiliser les rappels ProcessorIdleVeto et PlatformIdleVeto avec toute raison légale de veto. Le système d’exploitation ne garantit pas que les rappels n’échoueront pas en raison d’échecs d’allocation ou d’autres problèmes.

Pour une notification PEP_NOTIFY_PPM_QUERY_VETO_REASONS, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_VETO_REASON

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_VETO_REASON.

Données

Pointeur vers une structure PEP_PPM_QUERY_VETO_REASON.

Remarques

Envoyé au PEP pour demander des informations sur une raison de veto spécifique.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour demander des informations sur une raison de veto spécifique. Cette notification est envoyée deux fois pour chaque raison de veto, une fois avec une mémoire tampon NULLName pour récupérer la taille d’allocation nécessaire pour Name, et une fois avec une mémoire tampon non NULLName pour remplir le contenu de Name. Le nom doit être une chaîne lisible par l’homme indiquant la condition que représente cette raison de veto. Les outils de débogage tels que WPA et le débogueur du noyau affichent le nom lors du diagnostic de la raison pour laquelle un état inactif n’a pas été entré.

Pour une notification PEP_NOTIFY_PPM_QUERY_VETO_REASON, la routine AcceptProcessorNotification est toujours appelée dans IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_ENUMERATE_BOOT_VETOES

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_ENUMERATE_BOOT_VETOES.

Données

Valeur du pointeur NULL.

Remarques

Informe le PEP que le système d’exploitation est prêt à accepter les appels à ProcessorIdleVeto ou PlatformIdleVeto.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification après l’initialisation du processeur, mais avant la première entrée inactive pour indiquer que le système d’exploitation est prêt à accepter les appels à ProcessorIdleVeto ou PlatformIdleVeto. Le PEP peut énumérer tous les vetos au démarrage dans le contexte de cette notification, et le système d’exploitation garantit qu’ils prendront effet avant la première tentative de sélection d’un processeur, d’une plateforme ou d’un état d’inactivité coordonné. Cette notification n’a aucun paramètre Data associé.

Pour une notification PEP_NOTIFY_PPM_ENUMERATE_BOOT_VETOES, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_PARK_MASK

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_PARK_MASK.

Données

Pointeur vers une structure PEP_PPM_PARK_MASK.

Remarques

Informe le PEP du masque de stationnement central actuel.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification au moment de l’exécution pour informer le PEP du masque de stationnement principal actuel.

Pour une notification PEP_NOTIFY_PPM_PARK_MASK, la routine AcceptProcessorNotification est appelée à IRQL = DISPATCH_LEVEL et peut être envoyée lors de l’exécution sur n’importe quel processeur.

PEP_NOTIFY_PPM_PARK_SELECTION_V2

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_PARK_SELECTION_V2.

Données

Pointeur vers une structure PEP_PPM_PARK_SELECTION_V2.

Remarques

Informe le PEP que le système d’exploitation souhaite qu’il sélectionne un ensemble de cœurs préféré pour stationner ou éloigner les interruptions. Si cette notification n’est pas acceptée, le système d’exploitation revient à envoyer la notification PEP_NOTIFY_PPM_PARK_SELECTION.

Lors de l’exécution de son algorithme de case activée de performances, le système d’exploitation peut envoyer la notification PEP_NOTIFY_PPM_PARK_SELECTION_V2 plusieurs fois : zéro ou plusieurs fois pour chaque classe d’efficacité de cœur dans chaque domaine de parc et zéro ou plusieurs fois pour interrompre la direction. Pour aider le PEP à fournir une réponse cohérente au système d’exploitation pour un case activée de performances, le système d’exploitation fournit l’horodatage basé sur l’heure d’interruption de l’évaluation des performances case activée qui a déclenché la notification. Toutes les notifications de sélection de parc résultant d’une évaluation des performances case activée auront le même horodatage. Notez que les champs restants (Count, AdditionalUnparkedProcessors, EvaluationType et Processeurs) peuvent varier pour les notifications envoyées pendant la même évaluation des performances case activée. Le PEP ne peut pas supposer qu’ils resteront les mêmes.

Pour une notification PEP_NOTIFY_PPM_PARK_SELECTION, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = DISPATCH_LEVEL.

PEP_NOTIFY_PPM_PERF_CHECK_COMPLETE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_PERF_CHECK_COMPLETE.

Données

Pointeur vers une structure PEP_PPM_PERF_CHECK_COMPLETE.

Remarques

Informe le PEP que l’évaluation périodique du rendement case activée est terminée.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification au moment de l’exécution pour informer le PEP que l’évaluation périodique par case activée est terminée.

Pour une notification PEP_NOTIFY_PPM_PERF_CHECK_COMPLETE, la routine AcceptProcessorNotification est appelée à l’adresse IRQL = DISPATCH_LEVEL et peut être envoyée lors de l’exécution sur n’importe quel processeur.

PEP_NOTIFY_PPM_QUERY_COORDINATED_DEPENDENCY

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_COORDINATED_DEPENDENCY.

Données

Pointeur vers une structure PEP_PPM_QUERY_COORDINATED_DEPENDENCY.

Remarques

Envoyé au PEP pour interroger les dépendances de chaque état d’inactivité coordonné.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour interroger le PEP pour connaître les dépendances de chaque état d’inactivité coordonné. Le système d’exploitation alloue des éléments MaximumDependencySize pour le tableau Dépendances. Le PEP doit renseigner le nombre d’éléments du tableau qui ont été utilisés dans DependencySizeUsed.

Si la dépendance exprimée est sur un processeur, PEP remplit le champ TargetProcessor avec le POHANDLE du processeur cible. Le champ ExpectedState fait ensuite référence à l’index d’un état d’inactivité du processeur sur le processeur cible.

Si la dépendance exprimée est sur d’autres états inactifs coordonnés, PEP remplit la valeur NULL pour targetProcessor. Le champ ExpectedState fait ensuite référence à l’index d’un état d’inactivité coordonné.

Chaque dépendance répertorie un menu d’options que le système d’exploitation est autorisé à utiliser pour satisfaire la dépendance. En cas d’inactivité, le système d’exploitation tente de satisfaire la dépendance en vérifiant les conditions pour chacune d’elles, de l’index le plus élevé à l’index le plus bas. Si les conditions d’une dépendance sont remplies, le système d’exploitation considère que la dépendance est remplie. Si aucune des conditions ne peut être remplie, la dépendance n’est pas remplie et l’état d’inactivité coordonné peut ne pas être entré.

Pour une notification PEP_NOTIFY_PPM_QUERY_COORDINATED_DEPENDENCY, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_COORDINATED_STATE_NAME

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_COORDINATED_STATE_NAME.

Données

Pointeur vers une structure PEP_PPM_QUERY_STATE_NAME.

Remarques

Envoyé au PEP pour rechercher des informations sur un état d’inactivité coordonné ou de plateforme spécifique.

Le framework de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour interroger le PEP pour obtenir des informations sur un état d’inactivité coordonné ou de plateforme spécifique. Cette notification est envoyée deux fois pour chaque état, une fois avec une mémoire tampon de nom NULL pour récupérer la taille d’allocation nécessaire pour Name, et une fois avec une mémoire tampon de nom non NULL pour remplir le contenu de Name. Le nom doit être une chaîne lisible par l’homme indiquant le nom de l’état d’inactivité coordonné. Les états inactifs coordonnés doivent avoir des noms uniques, sauf sur les systèmes multi-cluster, où les noms d’états équivalents sur différents clusters peuvent être les mêmes. Les outils de débogage tels que WPA et le débogueur du noyau affichent le nom dans diagnostics qui font référence à cet état d’inactivité coordonné/de la plateforme.

Pour une notification PEP_NOTIFY_PPM_QUERY_COORDINATED_STATE_NAME, la routine AcceptProcessorNotification est toujours appelée dans IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES.

Données

Pointeur vers une structure PEP_PPM_QUERY_COORDINATED_STATES.

Remarques

Utilisé lors de l’initialisation du processeur pour interroger les propriétés de tous les états inactifs coordonnés.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification au PEP lors de l’initialisation du processeur pour rechercher les propriétés de tous les états d’inactivité coordonnés. Cette notification est envoyée juste avant que le PEP n’ait envoyé la notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE. S’il est accepté, le PEP utilise l’interface d’état d’inactivité coordonnée et ne recevra aucune notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE. S’il n’est pas accepté, le PEP utilise l’interface d’état inactif de la plateforme et le système d’exploitation revient à utiliser la notification PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE pour rechercher des états inactifs coordonnés.

Le système d’exploitation attendra d’envoyer cette notification jusqu’à ce que tous les processeurs se soient inscrits auprès du PEP.

Le PEP remplit la structure d’état avec des informations sur les états inactifs coordonnés.

L’ordre des états inactifs coordonnés doit suivre les règles suivantes :

Deux états coordonnés qui représentent des états d’alimentation différents pour la même unité fonctionnelle doivent être répertoriés dans l’ordre le plus léger (consommation d’énergie/coût de transition le plus faible) et le plus profond (consommation d’énergie la plus faible/coût de transition le plus élevé). Les états inactifs coordonnés peuvent uniquement dépendre d’autres états inactifs coordonnés avec un index inférieur. Il n’y a pas d’ordre obligatoire entre deux états inactifs coordonnés disjoints (c’est-à-dire deux états inactifs coordonnés qui dépendent d’ensembles disjoints de processeurs).

Pour une notification PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES, la routine AcceptProcessorNotification est toujours appelée dans IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_QUERY_PROCESSOR_STATE_NAME

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_PROCESSOR_STATE_NAME.

Données

Pointeur vers une structure PEP_PPM_QUERY_STATE_NAME.

Remarques

Envoyé au PEP pour demander des informations sur un état d’inactivité du processeur spécifique.

L’infrastructure de gestion de l’alimentation Windows (PoFx) envoie cette notification lors de l’initialisation du processeur pour interroger le PEP pour obtenir des informations sur un état d’inactivité spécifique du processeur. Cette notification est envoyée deux fois pour chaque état, une fois avec une mémoire tampon de nom NULL pour récupérer la taille d’allocation nécessaire pour Name, et une fois avec une mémoire tampon de nom non NULL pour remplir le contenu de Name. Le nom doit être une chaîne lisible par l’homme indiquant le nom de l’état d’inactivité coordonné. Les états inactifs coordonnés doivent avoir des noms uniques, sauf sur les systèmes multi-cluster, où les noms d’états équivalents sur différents clusters peuvent être les mêmes. Les outils de débogage tels que WPA et le débogueur du noyau affichent le nom dans diagnostics qui font référence à cet état d’inactivité coordonné/de la plateforme.

Pour une notification PEP_NOTIFY_PPM_QUERY_PROCESSOR_STATE_NAME, la routine AcceptProcessorNotification est toujours appelée à l’adresse IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_PPM_ENTER_SYSTEM_STATE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_ENTER_SYSTEM_STATE.

Données

Pointeur vers une structure PEP_PPM_ENTER_SYSTEM_STATE.

Remarques

PEP_NOTIFY_PPM_ENTER_SYSTEM_STATE est une notification facultative qui avertit le PEP que le système est sur le point d’entrer dans un état d’alimentation du système. Cette notification est envoyée simultanément à tous les processeurs une fois que le système a terminé tout le travail au niveau passif, ce qui permet de passer du processeur à l’état d’alimentation du système.

Cette notification est envoyée à DISPATCH_LEVEL, tous les processeurs étant à la distribution. Cette notification est toujours exécutée sur le processeur cible.

Remarque Le PEP ne doit pas mettre en file d’attente de travail à partir de cette notification. Les processeurs ne traiteront pas les éléments de travail, les PDC, etc. une fois cette notification envoyée.

DISPATCH_LEVEL

PEP_NOTIFY_PPM_PERF_SET_STATE

Les éléments suivants décrivent les paramètres de AcceptProcessorNotification.

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_PERF_SET_STATE.

Données

Pointeur vers une structure PEP_PPM_PERF_SET_STATE .

Remarques

Utilisé au moment de l’exécution pour définir l’état actuel des performances de fonctionnement du processeur. Si le PEP dispose d’un matériel autonome capable d’améliorer ou de réduire les performances sans demande de jeu de performances, il doit limiter les demandes provenant du matériel autonome en fonction de l’état des performances minimales et/ou de l’état des performances maximales, et cibler l’état de performances souhaité. Sinon, il doit s’exécuter exactement à l’état de performances souhaité.

Cette notification est envoyée à DISPATCH_LEVEL. Si des états de performances dirigés par le planificateur sont en cours d’utilisation, le PEP doit respecter les restrictions de la section 3.3.6 lors du traitement de cette notification. Il peut être envoyé lors de l’exécution sur n’importe quel processeur.

PEP_NOTIFY_PPM_QUERY_DISCRETE_PERF_STATES

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_DISCRETE_PERF_STATES.

Données

Pointeur vers une structure PEP_PPM_QUERY_DISCRETE_PERF_STATES. Utilisé lors de l’initialisation du processeur pour interroger la liste des états de performances discrets pris en charge par le PEP, si la notification PEP_NOTIFY_PPM_QUERY_CAPABILITIES indique la prise en charge des états de performances discrets.

La liste de l’état des performances doit être triée du plus rapide au plus lent, chaque état des performances étant mappé à une valeur de performance distincte. La liste de l’état des performances doit également inclure une entrée qui correspond à chaque valeur de performance répertoriée dans la notification PEP_NOTIFY_PPM_QUERY_PERF_CAPABILITIES. Cette notification est envoyée à PASSIVE_LEVEL. Il peut être envoyé lors de l’exécution sur n’importe quel processeur.

PEP_NOTIFY_PPM_QUERY_DOMAIN_INFO

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_QUERY_DOMAIN_INFO.

Données

Pointeur vers une structure PEP_PPM_QUERY_DOMAIN_INFO.

Remarques

Notification facultative qui interroge des informations sur un domaine de performances. Cette notification est envoyée à PASSIVE_LEVEL. Il peut être envoyé lors de l’exécution sur n’importe quel processeur.

PEP_NOTIFY_PPM_RESUME_FROM_SYSTEM_STATE

Handle

Structure PEPHANDLE contenant le handle d’appareil du PEP pour le processeur cible. Si la notification ne cible pas un processeur spécifique, cette valeur est NULL.

Notification

Valeur PEP_NOTIFY_PPM_RESUME_FROM_SYSTEM_STATE.

Données

Pointeur vers une structure PEP_PPM_RESUME_FROM_SYSTEM_STATE.

Remarques

Notification facultative qui avertit le PEP que le système vient de reprendre à partir d’un état d’alimentation du système. Cette notification est envoyée simultanément à tous les processeurs juste avant que les processeurs ne soient libérés pour reprendre le travail au niveau passif. Cette notification est envoyée à DISPATCH_LEVEL, tous les processeurs étant à la distribution. Cette notification est toujours exécutée sur le processeur cible.