ZwPowerInformation 函数 (ntddk.h)
ZwPowerInformation 例程集或检索系统电源信息。
语法
NTSYSAPI NTSTATUS ZwPowerInformation(
[in] POWER_INFORMATION_LEVEL InformationLevel,
[in, optional] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out, optional] PVOID OutputBuffer,
[in] ULONG OutputBufferLength
);
参数
[in] InformationLevel
指定要设置或检索的特定电源信息的请求信息级别。 目前,唯一受支持的 POWER_INFORMATION_LEVEL 值是 PlatformInformation。
价值 | 意义 |
---|---|
|
信息表示系统当前支持的电源功能。 安装驱动程序时,信息可能会更改。 例如,不支持电源管理的旧设备驱动程序的安装可能会修改系统的功能。 |
[in, optional] InputBuffer
指向调用方分配的输入缓冲区的指针。 此参数必须 NULL,否则返回 ERROR_INVALID_PARAMETER。
[in] InputBufferLength
InputBuffer处缓冲区的大小(以字节为单位)。 参数必须设置为零。
[out, optional] OutputBuffer
指向输出缓冲区的指针。 此缓冲区的数据类型取决于 InformationLevel 参数中请求的信息级别。 对于 PlatformInformation 级别,当前唯一支持的值,OutputBuffer 参数是必需的,并且应为 POWER_PLATFORM_INFORMATION 类型。
[in] OutputBufferLength
输出缓冲区的大小(以字节为单位)。 根据请求的信息级别,缓冲区的大小可能会可变。 PlatformInformation(目前唯一支持的值)需要一个缓冲区,该缓冲区是 POWER_PLATFORM_INFORMATION 结构的大小。
返回值
如果调用成功,则返回STATUS_SUCCESS。 如果调用失败,可能的错误代码包括:
返回代码 | 描述 |
---|---|
|
输出缓冲区的大小不足,无法包含返回的数据。 |
|
PlatformInformation 信息级别(这是当前唯一支持的值)不需要输入缓冲区,并且必须包含输出缓冲区。 调用方要么提供输入缓冲区,要么没有输出缓冲区。 |
|
调用方没有足够的访问权限来执行请求的作。 |
言论
NtPowerInformation 和 ZwPowerInformation 是同一 Windows 本机系统服务例程的两个版本。
对于内核模式驱动程序的调用,NtXxx 和 ZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxx 与 ZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程。
例子
此示例演示了有效的函数调用。
POWER_PLATFORM_INFORMATION PlatformInfo = {0};
NTSTATUS Result = NtPowerInformation(PlatformInformation, NULL, 0, &PlatformInfo, sizeof(PlatformInfo));
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
支持的最低服务器 | Windows Server 2012 |
目标平台 | 普遍 |
标头 | ntddk.h (包括 Wdm.h、Ntddk.h、Ntpoapi.h) |
库 | Ntoskrnl.lib |
DLL | Ntoskrnl.lib |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |