Partager via


IOCTL_HPMI_QUERY_CAPABILITIES IOCTL (hpmi.h)

[Certaines informations portent sur la préversion du produit, qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.]

La commande IOCTL_HPMI_QUERY_CAPABILITIES est envoyée aux fonctionnalités de requête prises en charge par les services HPMI et Windows demandés par HPMI. Windows émettra ce IOCL vers HPMI une fois qu’un nouveau pilote HPMI instance est découvert.

Important Informations préliminaires
 

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

Le membre AssociatedIrp.SystemBuffer du paquet de demandes d’E/S (IRP) pointe vers une mémoire tampon allouée par l’initiateur qui est utilisée à la fois comme mémoire tampon d’entrée et mémoire tampon de sortie pour la requête. Lors de l’entrée, cette mémoire tampon contient une structure HPMI_QUERY_CAPABILITIES dans laquelle la version est définie sur une valeur valide.

Longueur de la mémoire tampon d’entrée

Le membre Parameters.DeviceIoControl.InputBufferLength de l’emplacement actuel de la pile d’E/S de l’IRP (IO_STACK_LOCATION) est défini sur la taille en octets de la mémoire tampon pointée par le membre AssociatedIrp.SystemBuffer. Cette taille doit être supérieure ou égale à la taille de HPMI_QUERY_CAPABILITIES structure, sinon la demande échoue avec une erreur status de STATUS_INVALID_PARAMETER.

Mémoire tampon de sortie

Si la requête se termine correctement, la mémoire tampon vers laquelle pointe le membre AssociatedIrp.SystemBuffer contient les informations de capacité HPMI demandées. Situé au début de cette mémoire tampon se trouve une structure HPMI_QUERY_CAPABILITIES_RESPONSE qui indique le type et la taille des informations dans la mémoire tampon.

Longueur de la mémoire tampon de sortie

Le membre Parameters.DeviceIoControl.OutputBufferLength de l’emplacement actuel de la pile d’E/S de l’IRP est défini sur la taille en octets de la mémoire tampon pointée par le membre AssociatedIrp.SystemBuffer. Pour que la demande aboutisse, cette taille doit être suffisamment grande pour contenir la fonctionnalité HPMI décrite dans HPMI_QUERY_CAPABILITIES_RESPONSE. Sinon, la demande échoue avec une erreur status STATUS_BUFFER_TOO_SMALL.

Mémoire tampon d’entrée/sortie

TBD

Longueur de la mémoire tampon d’entrée/sortie

TBD

Bloc d’état

Irp->IoStatus.Status est défini sur STATUS_SUCCESS si la demande réussit. Sinon, état à la condition d’erreur appropriée en tant que code NTSTATUS , par exemple STATUS_INVALID_PARAMETER.

Remarques

La requête IOCTL_HPMI_QUERY_CAPABILITIES interroge les fonctionnalités HPMI ou les informations sur les ressources du compteur de puissance. La valeur de structure d’entrée HPMI_QUERY_CAPABILITIES spécifie le type d’informations de capacité à retourner. Le type de données et le contenu de la mémoire tampon de sortie varient en fonction des données demandées.

Ce IOCTL peut être émis plusieurs fois, HPMI doit répondre avec la même
informations dans HPMI_QUERY_CAPABILITIES_RESPONSE, en réponse à tous les
appels IOCTL suivants.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 10, version 1709 et versions ultérieures des systèmes d’exploitation Windows.
En-tête hpmi.h (inclure Hpmi.h)

Voir aussi

Création de requêtes IOCTL dans les pilotes

IRP

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously