NtPowerInformation 函式 (wdm.h)
NtPowerInformation 例程會設定或擷取系統電源資訊。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtPowerInformation(
[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。
價值 | 描述 |
---|---|
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。 如果呼叫失敗,可能的錯誤碼包括:
傳回碼 | 描述 |
---|---|
STATUS_BUFFER_TOO_SMALL | 輸出緩衝區的大小不足,無法包含所傳回的數據。 |
STATUS_INVALID_PARAMETER | PlatformInformation 資訊層級,這是目前唯一支援的值,不需要輸入緩衝區,而且必須包含輸出緩衝區。 呼叫端提供輸入緩衝區或沒有輸出緩衝區。 |
STATUS_ACCESS_DENIED | 呼叫端的訪問許可權不足,無法執行要求的動作。 |
言論
NtPowerInformation 和 ZwPowerInformation 是相同 Windows 原生系統服務例程的兩個版本。
對於內核模式驅動程式的呼叫,NtXxx 和 ZwXxx 版本的 Windows 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxx 與 ZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程。
例子
此範例說明有效的函數調用。
POWER_PLATFORM_INFORMATION PlatformInfo = {0};
NTSTATUS Result = NtPowerInformation(PlatformInformation, NULL, 0, &PlatformInfo, sizeof(PlatformInfo));
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 8 |
支援的最低伺服器 | Windows Server 2012 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntpoapi.h) |
連結庫 | Ntoskrnl.lib |
DLL | Ntoskrnl.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs, PowerIrpDDis |