Поделиться через


IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (ntddstor.h)

Драйвер может использовать IOCTL_STORAGE_DEVICE_POWER_CAP , чтобы указать максимальный уровень энергопотребления для запоминаемого устройства. ОС сделает все возможное, чтобы перевести устройство в состояние питания, которое не будет превышать заданное максимальное значение; однако это зависит от того, что поддерживает устройство. Фактическое максимальное значение может быть меньше или больше требуемого максимума.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Irp->AssociatedIrp.SystemBuffer содержит структуру STORAGE_DEVICE_POWER_CAP , указывающую максимальную мощность.

Длина входного буфера

  • Parameters.DeviceIoControl.InputBufferLength указывает размер буфера входных параметров в Irp-AssociatedIrp.SystemBuffer> в байтах, который должен быть больше или равен sizeof(STORAGE_DEVICE_POWER_CAP).

Выходной буфер

Если операция выполнена успешно, выходной буфер в Irp-AssociatedIrp.SystemBuffer> будет содержать STORAGE_DEVICE_POWER_CAP структуру.

Длина выходного буфера

Parameters.DeviceIoControl.OutputBufferLength указывает размер буфера выходного параметра в байтах в Irp-AssociatedIrp.SystemBuffer>. OutputBufferLength должен быть больше или равен sizeof(STORAGE_DEVICE_POWER_CAP).

Блок состояния

В поле Сведения задается количество возвращаемых байтов. Для поля Состояние задано значение STATUS_SUCCESS или, возможно, STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER или STATUS_NOT_SUPPORTED.

Комментарии

При перезагрузке эффект IOCTL_STORAGE_DEVICE_POWER_CAP не является постоянным. Для цикла сброса и питания устройства NVMe эффект IOCTL является постоянным.

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Верхняя часть ntddstor.h (включая Ntddstor.h)

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

IO_STATUS_BLOCK

STORAGE_DEVICE_POWER_CAP

STORAGE_DEVICE_POWER_CAP_UNITS