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
STATUS_NOT_IMPLEMENTED
L’opération de contrôle d’alimentation demandée n’est pas implémentée.
STATUS_NOT_SUPPORTED
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

Voir aussi

PoFxRegisterDevice

PowerControlCallback