IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (winioctl.h)

Les applications Windows peuvent utiliser ce code de contrôle pour spécifier un niveau de consommation d’énergie opérationnel maximal pour un périphérique de stockage. Le système d’exploitation fera de son mieux pour faire passer l’appareil à un état d’alimentation qui ne dépassera pas le maximum donné. Toutefois, cela dépend de ce que l’appareil prend en charge. Le maximum réel peut être inférieur ou supérieur au maximum souhaité.

Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to device
  IOCTL_STORAGE_DEVICE_POWER_CAP,   // dwIoControlCode
  (LPDWORD) lpInBuffer,             // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  (LPDWORD) lpOutBuffer,            // output buffer
  (DWORD) nOutBufferSize,           // size of output buffer
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Remarques

Cet IOCTL est envoyé au pilote de périphérique avec une valeur de puissance maximale que le pilote est censé respecter. Cet IOCTL retourne ensuite avec une valeur qui représente ce que le pilote de périphérique est réellement capable d’atteindre. Cette valeur peut être égale, inférieure ou supérieure à la valeur souhaitée qui a été envoyée à l’origine.

Prenons l’exemple d’un pilote de périphérique de stockage qui implémente trois états de puissance opérationnelle qui ont un niveau de consommation d’énergie maximal de 10 watts, 8 watts et 6 watts. Si l’appelant de cet IOCTL spécifie que l’appareil ne doit pas consommer plus de 9 watts, il doit choisir son état de 8 watts, car il s’agit de l’état le plus élevé dont il dispose et qui est toujours inférieur à 9 watts. Si l’appelant de cet IOCTL spécifie que l’appareil ne doit pas consommer plus de 5 watts, le pilote de l’appareil choisit l’état de 6 watts, car 6 watts est la valeur minimale à laquelle l’appareil peut fonctionner.

Configuration requise

   
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
En-tête winioctl.h (inclure Windows.h)

Voir aussi