⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntpoapi.h

📁 MinGW+MSYS开发必用的api参考
💻 H
字号:
/* * ntpoapi.h * * APIs for power management. * * This file is part of the w32api package. * * Contributors: *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef __NTPOAPI_H#define __NTPOAPI_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#include "ntddk.h"#include "batclass.h"#define POWER_PERF_SCALE                  100#define PERF_LEVEL_TO_PERCENT(x)          (((x) * 1000) / (POWER_PERF_SCALE * 10))#define PERCENT_TO_PERF_LEVEL(x)          (((x) * POWER_PERF_SCALE * 10) / 1000)typedef struct _PROCESSOR_IDLE_TIMES {	ULONGLONG  StartTime;	ULONGLONG  EndTime;	ULONG  IdleHandlerReserved[4];} PROCESSOR_IDLE_TIMES, *PPROCESSOR_IDLE_TIMES;typedef BOOLEAN DDKFASTAPI(*PPROCESSOR_IDLE_HANDLER)(  /*IN OUT*/ PPROCESSOR_IDLE_TIMES IdleTimes);typedef struct _PROCESSOR_IDLE_HANDLER_INFO {  ULONG  HardwareLatency;  PPROCESSOR_IDLE_HANDLER  Handler;} PROCESSOR_IDLE_HANDLER_INFO, *PPROCESSOR_IDLE_HANDLER_INFO;typedef VOID DDKFASTAPI(*PSET_PROCESSOR_THROTTLE)(  /*IN*/ UCHAR  Throttle);typedef NTSTATUS DDKFASTAPI(*PSET_PROCESSOR_THROTTLE2)(  /*IN*/ UCHAR  Throttle);#define MAX_IDLE_HANDLERS                 3typedef struct _PROCESSOR_STATE_HANDLER {	UCHAR  ThrottleScale;	BOOLEAN  ThrottleOnIdle;	PSET_PROCESSOR_THROTTLE  SetThrottle;	ULONG  NumIdleHandlers;	PROCESSOR_IDLE_HANDLER_INFO  IdleHandler[MAX_IDLE_HANDLERS];} PROCESSOR_STATE_HANDLER, *PPROCESSOR_STATE_HANDLER;typedef enum _POWER_STATE_HANDLER_TYPE {	PowerStateSleeping1,	PowerStateSleeping2,	PowerStateSleeping3,	PowerStateSleeping4,	PowerStateSleeping4Firmware,	PowerStateShutdownReset,	PowerStateShutdownOff,	PowerStateMaximum} POWER_STATE_HANDLER_TYPE, *PPOWER_STATE_HANDLER_TYPE;typedef NTSTATUS DDKAPI(*PENTER_STATE_SYSTEM_HANDLER)(  /*IN*/ PVOID  SystemContext);typedef NTSTATUS DDKAPI(*PENTER_STATE_HANDLER)(  /*IN*/ PVOID  Context,  /*IN*/ PENTER_STATE_SYSTEM_HANDLER  SystemHandler  /*OPTIONAL*/,  /*IN*/ PVOID  SystemContext,  /*IN*/ LONG  NumberProcessors,  /*IN*/ VOLATILE PLONG  Number);typedef struct _POWER_STATE_HANDLER {	POWER_STATE_HANDLER_TYPE  Type;	BOOLEAN  RtcWake;	UCHAR  Spare[3];	PENTER_STATE_HANDLER  Handler;	PVOID  Context;} POWER_STATE_HANDLER, *PPOWER_STATE_HANDLER;typedef NTSTATUS STDCALL(*PENTER_STATE_NOTIFY_HANDLER)(  /*IN*/ POWER_STATE_HANDLER_TYPE  State,  /*IN*/ PVOID  Context,  /*IN*/ BOOLEAN  Entering);typedef struct _POWER_STATE_NOTIFY_HANDLER {	PENTER_STATE_NOTIFY_HANDLER  Handler;	PVOID  Context;} POWER_STATE_NOTIFY_HANDLER, *PPOWER_STATE_NOTIFY_HANDLER;NTOSAPINTSTATUSDDKAPINtPowerInformation(  /*IN*/ POWER_INFORMATION_LEVEL  InformationLevel,  /*IN*/ PVOID  InputBuffer /*OPTIONAL*/,  /*IN*/ ULONG  InputBufferLength,  /*OUT*/ PVOID  OutputBuffer /*OPTIONAL*/,  /*IN*/ ULONG  OutputBufferLength);#define PROCESSOR_STATE_TYPE_PERFORMANCE  1#define PROCESSOR_STATE_TYPE_THROTTLE     2typedef struct _PROCESSOR_PERF_LEVEL {  UCHAR  PercentFrequency;  UCHAR  Reserved;  USHORT  Flags;} PROCESSOR_PERF_LEVEL, *PPROCESSOR_PERF_LEVEL;typedef struct _PROCESSOR_PERF_STATE {  UCHAR  PercentFrequency;  UCHAR  MinCapacity;  USHORT  Power;  UCHAR  IncreaseLevel;  UCHAR  DecreaseLevel;  USHORT  Flags;  ULONG  IncreaseTime;  ULONG  DecreaseTime;  ULONG  IncreaseCount;  ULONG  DecreaseCount;  ULONGLONG  PerformanceTime;} PROCESSOR_PERF_STATE, *PPROCESSOR_PERF_STATE;typedef struct _PROCESSOR_STATE_HANDLER2 {	ULONG  NumIdleHandlers;	PROCESSOR_IDLE_HANDLER_INFO  IdleHandler[MAX_IDLE_HANDLERS];	PSET_PROCESSOR_THROTTLE2  SetPerfLevel;	ULONG  HardwareLatency;	UCHAR  NumPerfStates;	PROCESSOR_PERF_LEVEL  PerfLevel[1];} PROCESSOR_STATE_HANDLER2, *PPROCESSOR_STATE_HANDLER2;NTOSAPINTSTATUSDDKAPINtSetThreadExecutionState(  /*IN*/ EXECUTION_STATE  esFlags,  /*OUT*/ EXECUTION_STATE  *PreviousFlags);NTOSAPINTSTATUSDDKAPINtRequestWakeupLatency(  /*IN*/ LATENCY_TIME  latency);NTOSAPINTSTATUSDDKAPINtInitiatePowerAction(  /*IN*/ POWER_ACTION  SystemAction,  /*IN*/ SYSTEM_POWER_STATE  MinSystemState,  /*IN*/ ULONG  Flags,  /*IN*/ BOOLEAN  Asynchronous);NTOSAPINTSTATUSDDKAPINtSetSystemPowerState(  /*IN*/ POWER_ACTION SystemAction,  /*IN*/ SYSTEM_POWER_STATE MinSystemState,  /*IN*/ ULONG Flags);NTOSAPINTSTATUSDDKAPINtGetDevicePowerState(  /*IN*/ HANDLE  Device,  /*OUT*/ DEVICE_POWER_STATE  *State);NTOSAPINTSTATUSDDKAPINtCancelDeviceWakeupRequest(  /*IN*/ HANDLE  Device);NTOSAPIBOOLEANDDKAPINtIsSystemResumeAutomatic(  VOID);NTOSAPINTSTATUSDDKAPINtRequestDeviceWakeup(  /*IN*/ HANDLE  Device);#define WINLOGON_LOCK_ON_SLEEP            0x00000001typedef struct _PROCESSOR_POWER_INFORMATION {  ULONG  Number;  ULONG  MaxMhz;  ULONG  CurrentMhz;  ULONG  MhzLimit;  ULONG  MaxIdleState;  ULONG  CurrentIdleState;} PROCESSOR_POWER_INFORMATION, *PPROCESSOR_POWER_INFORMATION;#ifdef __cplusplus}#endif#endif /* __NTPOAPI_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -