Fonction PoFxPowerControl (wdm.h)
La routine PoFxPowerControl envoie une demande de contrôle d’alimentation à l’infrastructure de gestion de l’alimentation (PoFx).
Syntaxe
NTSTATUS PoFxPowerControl(
[in] POHANDLE Handle,
[in] LPCGUID PowerControlCode,
[in, optional] PVOID InBuffer,
[in] SIZE_T InBufferSize,
[out, optional] PVOID OutBuffer,
[in] SIZE_T OutBufferSize,
[out, optional] PSIZE_T BytesReturned
);
Paramètres
[in] Handle
Handle qui représente l’inscription de l’appareil auprès de PoFx. Le pilote de périphérique a précédemment reçu ce handle de la routine PoFxRegisterDevice .
[in] PowerControlCode
Pointeur vers le code de contrôle d’alimentation. Ce code est une valeur GUID qui spécifie l’opération demandée.
[in, optional] InBuffer
Pointeur vers une mémoire tampon allouée à l’appelant qui contient les données d’entrée pour l’opération. Le format des données de cette mémoire tampon dépend du code de contrôle d’alimentation spécifié par le paramètre PowerControlCode . Le paramètre InBuffer est facultatif et peut être spécifié en tant que NULL si l’opération spécifiée ne nécessite aucune donnée d’entrée.
[in] InBufferSize
Taille, en octets, de la mémoire tampon d’entrée pointée par le paramètre InBuffer . Si InBuffer a la valeur NULL, définissez InBufferSize sur zéro.
[out, optional] OutBuffer
Pointeur vers une mémoire tampon allouée à l’appelant qui doit contenir les données de sortie de l’opération. Le format des données de cette mémoire tampon dépend du code de contrôle d’alimentation spécifié par le paramètre PowerControlCode . Le paramètre OutBuffer est facultatif et peut être spécifié en tant que NULL si l’opération spécifiée ne produit aucune donnée de sortie.
[in] OutBufferSize
Taille, en octets, de la mémoire tampon de sortie pointée par le paramètre OutBuffer . Si OutBuffer a la valeur NULL, définissez OutBufferSize sur zéro.
[out, optional] BytesReturned
Pointeur vers un emplacement dans lequel la routine écrit le nombre d’octets de données écrites dans la mémoire tampon pointée par OutBuffer. Le nombre d’octets écrits est inférieur ou égal à OutBufferSize. Ce paramètre est facultatif et peut être spécifié comme NULL si l’appelant n’a pas besoin de savoir combien d’octets ont été écrits dans la mémoire tampon de sortie.
Valeur retournée
PoFxPowerControl retourne STATUS_SUCCESS si l’opération demandée réussit. Les valeurs de retour d’erreur possibles incluent le code status suivant.
Code de retour | Description |
---|---|
|
L’opération de contrôle d’alimentation demandée n’est pas implémentée. |
|
Le plug-in du moteur d’alimentation (PEP) ne reconnaît pas la prise en charge de cet appareil. |
Remarques
Un pilote de périphérique appelle cette routine pour envoyer une demande de contrôle d’alimentation directement à PoFx. Une demande de contrôle d’alimentation est similaire à une demande de contrôle d’E/S (IOCTL). Contrairement à un IOCTL, toutefois, une demande de contrôle d’alimentation est envoyée directement à PoFx et n’est pas observée par d’autres pilotes de périphérique dans la pile de périphériques. Pendant un appel PoFxPowerControl , PoFx effectue de manière synchrone l’opération demandée.
De même, PoFx peut envoyer une demande de contrôle d’alimentation directement au pilote de périphérique. Le pilote gère cette requête dans sa routine PowerControlCallback .
PoFx délègue la gestion de toutes les demandes de contrôle d’alimentation au plug-in du moteur d’alimentation (PEP). Le PEP est un composant logiciel facultatif qui effectue des tâches de gestion de l’alimentation spécifiques à une gamme de produits particulière de processeurs ou de modules Système sur puce (SoC). Si le fournisseur de matériel pour le processeur ou le SoC fournit un PEP pour une plateforme matérielle, ce pep peut gérer les demandes de contrôle d’alimentation personnalisées d’un pilote de périphérique ou envoyer des demandes de contrôle d’alimentation personnalisées à la routine PowerControlCallback du pilote. Le fournisseur peut spécifier un ensemble de GUID PowerControlCode et définir les opérations désignées par ces GUID. En option, un pilote de périphérique peut contenir du code spécifique à la plateforme à gérer ou à envoyer des demandes pour ces opérations.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 8. |
Plateforme cible | Universal |
En-tête | wdm.h |
Bibliothèque | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |