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