Funzione NtPowerInformation (wdm.h)
Il NtPowerInformation set di routine o recupera informazioni sull'alimentazione del sistema.
__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
Specifica il livello di informazioni richiesto, che indica le informazioni sull'alimentazione specifiche da impostare o recuperare. Attualmente, l'unico valore POWER_INFORMATION_LEVEL supportato è PlatformInformation.
Valore | Descrizione |
---|---|
PlatformInformation | Le informazioni rappresentano le funzionalità di alimentazione attualmente supportate del sistema. Le informazioni possono cambiare man mano che vengono installati i driver. Ad esempio, l'installazione di driver di dispositivo legacy che non supportano il risparmio energia potrebbe modificare le funzionalità del sistema. |
[in, optional] InputBuffer
Puntatore a un buffer di input allocato dal chiamante. Questo parametro deve essere null, in caso contrario viene restituito ERROR_INVALID_PARAMETER.
[in] InputBufferLength
Dimensioni, in byte, del buffer in corrispondenza di InputBuffer. Il parametro deve essere impostato su zero.
[out, optional] OutputBuffer
Puntatore a un buffer di output. Il tipo di dati di questo buffer dipende dal livello di informazioni richiesto nel parametro InformationLevel. Per il livello di PlatformInformation, l'unico valore attualmente supportato, il parametro OutputBuffer è obbligatorio e deve essere del tipo POWER_PLATFORM_INFORMATION.
[in] OutputBufferLength
Dimensioni, in byte, del buffer di output. A seconda del livello di informazioni richiesto, il buffer può essere ridimensionato in modo variabile. PlatformInformation, l'unico valore attualmente supportato, richiede un buffer che corrisponde alle dimensioni di una struttura POWER_PLATFORM_INFORMATION.
Restituisce STATUS_SUCCESS se la chiamata ha esito positivo. Se la chiamata non riesce, i codici di errore possibili includono quanto segue:
Codice restituito | Descrizione |
---|---|
STATUS_BUFFER_TOO_SMALL | Il buffer di output non è di dimensioni sufficienti per contenere i dati restituiti. |
STATUS_INVALID_PARAMETER | Il PlatformInformation livello di informazioni, che è l'unico valore attualmente supportato, non richiede alcun buffer di input e deve contenere un buffer di output. Il chiamante ha fornito un buffer di input o nessun buffer di output. |
STATUS_ACCESS_DENIED | Il chiamante aveva diritti di accesso insufficienti per eseguire l'azione richiesta. |
NtPowerInformation e ZwPowerInformation sono due versioni della stessa routine di Servizi di sistema nativi di Windows.
Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni di una routine di Windows Native System Services possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines.
In questo esempio viene illustrata una chiamata di funzione valida.
POWER_PLATFORM_INFORMATION PlatformInfo = {0};
NTSTATUS Result = NtPowerInformation(PlatformInformation, NULL, 0, &PlatformInfo, sizeof(PlatformInfo));
Requisito | Valore |
---|---|
client minimo supportato | Windows 8 |
server minimo supportato | Windows Server 2012 |
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntpoapi.h) |
libreria | Ntoskrnl.lib |
dll | Ntoskrnl.lib |
IRQL | PASSIVE_LEVEL |
regole di conformità DDI | HwStorPortProhibitedDDIs, PowerIrpDDis |
uso di versioni Nt e Zw delle routine di Servizi di sistema nativi