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


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 (include Ntddstor.h)

См. также

IO_STATUS_BLOCK

STORAGE_DEVICE_POWER_CAP

STORAGE_DEVICE_POWER_CAP_UNITS