IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (ntddstor.h)
驱动程序可以使用 IOCTL_STORAGE_DEVICE_POWER_CAP 为存储设备指定最大运行功率消耗级别。 OS 将尽最大努力将设备转换为不会超过给定最大值的电源状态;但是,这取决于设备支持的内容。 实际最大值可能小于或大于所需的最大值。
主要代码
输入缓冲区
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) |