StorPortPoFxPowerControl, fonction (storport.h)
La routine StorPortPoFxPowerControl envoie une demande de contrôle d’alimentation à l’infrastructure de gestion de l’alimentation (PoFx) pour la transférer au plug-in du moteur d’alimentation (PEP).
Syntaxe
ULONG StorPortPoFxPowerControl(
[in] PVOID HwDeviceExtension,
PSTOR_ADDRESS Address,
[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] HwDeviceExtension
Pointeur vers l’extension de périphérique matériel pour l’adaptateur de bus hôte (HBA). Il s’agit de l’extension d’appareil utilisée pour inscrire l’appareil dans un appel antérieur à StorPortInitializePoFxPower.
Address
Pointeur vers le code de contrôle d’alimentation. Ce code est une valeur GUID qui spécifie l’opération demandée.
[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
La routine StorPortPoFxPowerControl retourne l’un des codes status suivants :
Code de retour | Description |
---|---|
|
L’opération de contrôle d’alimentation spécifiée dans PowerControlCode a été exécutée avec succès. |
|
HwDeviceExtension ou Device a la valeur NULL.
-ou- L’adresse pointe vers une structure d’adresse d’unité non valide. -ou- Le périphérique de stockage spécifié par Address est introuvable. |
|
Le périphérique de stockage n’est pas inscrit auprès de PoFx. |
|
> DISPATCH_LEVEL IRQL actuel. |
|
L’opération de contrôle d’alimentation a échoué. |
Remarques
Un pilote minport appelle cette routine pour envoyer une demande de contrôle d’alimentation directement au PEP. 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 à PEP et n’est pas observée par d’autres pilotes de périphérique dans la pile de périphériques. Pendant un appel StorPortPoFxPowerControl , le PEP effectue de manière synchrone l’opération demandée.
De même, le PEP peut envoyer une demande de contrôle d’alimentation directement au miniport. Le pilote miniport gère cette requête dans ses routines HwStorAdapterControl et HwStorUnitControl . Le paramètre ControlType reçoit le type ScsiAdapterPoFxPowerControl dans la routine HwStorAdapterControl et le type ScsiUnitPoFxPowerControl dans la routine HwStorUnitControl .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans à partir de Windows 8. |
Plateforme cible | Universal |
En-tête | storport.h |
Bibliothèque | Storport.lib |
IRQL | <= DISPATCH_LEVEL |