IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (ntddstor.h)

驱动程序可以使用 IOCTL_STORAGE_DEVICE_POWER_CAP 为存储设备指定最大运行电量级别。 OS 将尽最大努力将设备转换为不超过给定最大值的电源状态:但是,这取决于设备支持的内容。 实际最大值可能小于或大于所需的最大值。

主要代码

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