IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (winioctl.h)

Приложения Windows могут использовать этот управляющий код, чтобы указать максимальный уровень энергопотребления для устройства хранения данных. ОС будет делать все возможное, чтобы перевести устройство в состояние питания, которое не будет превышать заданное максимальное значение. Однако это зависит от того, что поддерживает устройство. Фактическое максимальное значение может быть меньше или больше требуемого максимума.

Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.

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
);

Комментарии

Этот IOCTL отправляется драйверу устройства с максимальным значением мощности, которое должен учитывать драйвер. Затем этот IOCTL возвращает со значением, представляющим то, чего на самом деле способен достичь драйвер устройства. Это значение может быть равно, меньше или больше нужного значения, отправленного первоначально.

Например, рассмотрим драйвер запоминающего устройства, который реализует три состояния рабочей мощности с максимальным уровнем энергопотребления 10 Вт, 8 Вт и 6 Вт. Если вызывающий объект этого IOCTL указывает, что устройство не должно потреблять более 9 Вт, ему необходимо выбрать 8-ваттное состояние, так как это максимальное состояние, которое по-прежнему меньше 9 Вт. Если вызывающий объект этого IOCTL указывает, что устройство не должно потреблять более 5 Вт, драйвер устройства выберет состояние 6 Вт, так как 6 Вт — это минимальное значение, при котором устройство может работать.

Требования

   
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Верхняя часть winioctl.h (включая Windows.h)

См. также раздел