vpowerd.h
来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 725 行 · 第 1/2 页
H
725 行
WORD OEMAPM_Reserved7;
WORD OEMAPM_SI;
WORD OEMAPM_Reserved8;
WORD OEMAPM_BP;
WORD OEMAPM_Reserved9;
WORD OEMAPM_BX;
WORD OEMAPM_Reserved10;
WORD OEMAPM_DX;
WORD OEMAPM_Reserved11;
WORD OEMAPM_CX;
WORD OEMAPM_Reserved12;
WORD OEMAPM_AX;
WORD OEMAPM_Reserved13[3];
};
struct _OEM_APM_DWORD_REGS {
DWORD OEMAPM_EDI;
DWORD OEMAPM_ESI;
DWORD OEMAPM_EBP;
DWORD OEMAPM_EBX;
DWORD OEMAPM_EDX;
DWORD OEMAPM_ECX;
DWORD OEMAPM_EAX;
DWORD OEMAPM_Reserved14;
};
typedef union _OEM_APM_REGS {
struct _OEM_APM_BYTE_REGS ByteRegs;
struct _OEM_APM_WORD_REGS WordRegs;
struct _OEM_APM_DWORD_REGS DwordRegs;
} OEM_APM_REGS;
typedef OEM_APM_REGS POWERFAR* LPOEM_APM_REGS;
//
// Possible power function codes that are sent to POWER_HANDLER callbacks.
//
typedef DWORD POWERFUNC;
#define PF_SUSPEND_PHASE1 0x00000000
#define PF_SUSPEND_PHASE2 0x00000001
#define PF_SUSPEND_INTS_OFF 0x00000002
#define PF_RESUME_INTS_OFF 0x00000003
#define PF_RESUME_PHASE2 0x00000004
#define PF_RESUME_PHASE1 0x00000005
#define PF_BATTERY_LOW 0x00000006
#define PF_POWER_STATUS_CHANGE 0x00000007
#define PF_UPDATE_TIME 0x00000008
#define PF_CAPABILITIES_CHANGE 0x00000009
#define PF_USER_ARRIVED 0x0000000A
#define PF_PRE_FLUSH_DISKS 0x0000000B
#define PF_USER_ARRIVED_FINISHED 0x0000000C
#define PF_APMOEMEVENT_FIRST 0x00000200
#define PF_APMOEMEVENT_LAST 0x000002FF
//
//
//
#define PFG_UI_ALLOWED 0x00000001
#define PFG_CANNOT_FAIL 0x00000002
#define PFG_REQUEST_VETOED 0x00000004
#define PFG_REVERSE 0x00000008
#define PFG_STANDBY 0x00000010
#define PFG_CRITICAL 0x00000020
#define PFG_RESUME_AUTOMATIC 0x00000040
#define PFG_USER_ARRIVED 0x00000080
#define PFG_HIBERNATE 0x00000100
#define PFG_FAKE_RESUME 0x00000200
#define PFG_FORCED_REQUEST 0x00000400
//
// Standard POWER_HANDLER priority levels.
//
#define PHPL_PBT_BROADCAST 0x40000000
#define PHPL_NTKERN 0x60000000
#define PHPL_UNKNOWN 0x80000000
#define PHPL_CONFIGMG 0xC0000000
#define PHPL_VKD 0xC4000000 // Must be after CONFIGMG
#define PHPL_PCI 0xC8000000 // Must be after CONFIGMG
#define PHPL_ACPI 0xD0000000 // Must be after CONFIGMG
//
// Warning: no page faults allowed during SUSPEND/RESUME PHASE2 unless your
// order is less than IOS.
//
#define PHPL_IOS 0xD8000000 // Must be after ACPI
#define PHPL_PIC 0xE0000000
#define PHPL_TIMER 0xF0000000 // Must be after PIC
//
// If you want the ints off phase, you must have the A5 in the low byte
// of the priority level.
//
#define PHPL_HANDLE_INTS_OFF 0x000000A5
//
// This is how a Power Handler gets called. Must preserve EBX, ESI, EDI, EBP.
//
typedef POWERRET (_cdecl *POWER_HANDLER)(POWERFUNC, DWORD);
#define VPOWERD_ACPI_VERSION 0x0800
//
// VPOWERD BroadcastSystemMessage API parameter blocks.
//
typedef struct _VPOWERD_BSMAPI_HEADER {
DWORD VBAPIH_Packet_Size;
WORD VBAPIH_Function;
DWORD VBAPIH_Return_Code;
} VPOWERD_BSMAPI_HEADER, *PVPOWERD_BSMAPI_HEADER;
#define VBAPIF_W32_SET_SYSTEM_STATE 0x000D
#define VBAPIF_W32_HIBERNATE_SYSTEM 0x000E
typedef struct _VPOWERD_BSMAPI_W32_SET_SYSTEM_STATE {
struct _VPOWERD_BSMAPI_HEADER VBWSSS_VBAPIH;
DWORD VBWSSS_Force_Flag;
} VPOWERD_BSMAPI_W32_SET_SYSTEM_STATE, *PVPOWERD_BSMAPI_W32_SET_SYSTEM_STATE;
/*XLATOFF*/
#ifdef _NTDDK_
//
// used in _VPOWERD_Transfer_Control
//
typedef BOOL (_cdecl *VPOWERD_PREPARE_TO_SLEEP)(SYSTEM_POWER_STATE);
typedef BOOL (_cdecl *VPOWERD_SLEEP)(SYSTEM_POWER_STATE);
typedef VOID (_cdecl *VPOWERD_SET_INDICATOR)(SYSTEM_POWER_STATE);
typedef VOID (_cdecl *VPOWERD_RESUME_FROM_SLEEP)(SYSTEM_POWER_STATE);
typedef VOID (_cdecl *VPOWERD_RESUME_COMPLETE)(VOID);
typedef VOID (_cdecl *VPOWERD_IDLE)(VOID);
typedef BOOL (_cdecl *VPOWERD_GET_TIMER)(LPPOWERTIME);
typedef BOOL (_cdecl *VPOWERD_SET_TIMER)(LPPOWERTIME);
typedef DWORD (_cdecl *VPOWERD_SET_DEVICE_POWER_STATE)(DWORD, DWORD);
typedef struct _VPOWERDHANDLER {
ULONG ulVersion;
ULONG ulAPMLikeVersion;
ULONG ulMode;
VPOWERD_PREPARE_TO_SLEEP PrepareToSleep;
VPOWERD_SET_INDICATOR SetIndicator;
VPOWERD_SLEEP Sleep;
VPOWERD_RESUME_FROM_SLEEP ResumeFromSleep;
VPOWERD_RESUME_COMPLETE ResumeComplete;
VPOWERD_IDLE Idle;
VPOWERD_GET_TIMER GetTimer;
VPOWERD_SET_TIMER SetTimer;
VPOWERD_SET_DEVICE_POWER_STATE SetDevicePowerState;
//
// Note that S4 and S5 must be supported (the handler for S4 can do
// the same as S5). So we only care about S1 thru S3
//
BOOLEAN SystemCapabilities[3];
BOOLEAN SystemBatteriesPresent;
BOOLEAN LidPresent;
BOOLEAN PowerButtonPresent;
BOOLEAN SleepButtonPresent;
BOOLEAN S4RTCWakeCapable;
BOOLEAN UseS4OS;
//
// WARNING: we are misaligned. Don't add DWORDs here without
// aligning first.
//
} VPOWERDHANDLER, *PVPOWERDHANDLER;
#define VPOWERD_MODE_APM 0x00000000
#define VPOWERD_MODE_ACPI 0x00000001
#define VPOWERD_MODE_LEGACY 0x00000002
#endif // _NTDDK_
//
// Virtual Power Management Device service prototypes.
//
BOOL
POWERFAR CDECL
VPOWERD_Get_Entry_Point(
VOID
);
DWORD
POWERFAR CDECL
_VPOWERD_Get_Version(
VOID
);
DWORD
POWERFAR CDECL
_VPOWERD_Get_APM_BIOS_Version(
VOID
);
DWORD
POWERFAR CDECL
_VPOWERD_Get_Power_Management_Level(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_Set_Power_Management_Level(
DWORD Power_Management_Level
);
#ifndef _NTDDK_
POWERRET
POWERFAR CDECL
_VPOWERD_Set_Device_Power_State(
POWER_DEVICE_ID Power_Device_ID,
POWER_STATE Power_State
);
POWERRET
POWERFAR CDECL
_VPOWERD_Set_System_Power_State(
POWER_STATE Power_State,
DWORD Request_Type
);
#endif
POWERRET
POWERFAR CDECL
_VPOWERD_Restore_Power_On_Defaults(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_Get_Power_Status(
POWER_DEVICE_ID Power_Device_ID,
LPPOWER_STATUS lpPower_Status
);
#ifndef _NTDDK_
POWERRET
POWERFAR CDECL
_VPOWERD_Get_Power_State(
POWER_DEVICE_ID Power_Device_ID,
LPPOWER_STATE lpPower_State
);
#endif
POWERRET
POWERFAR CDECL
_VPOWERD_OEM_APM_Function(
LPOEM_APM_REGS lpOEM_APM_Regs
);
POWERRET
POWERFAR CDECL
_VPOWERD_Register_Power_Handler(
POWER_HANDLER Power_Handler,
DWORD Priority
);
POWERRET
POWERFAR CDECL
_VPOWERD_Deregister_Power_Handler(
POWER_HANDLER Power_Handler
);
BOOL
POWERFAR CDECL
_VPOWERD_W32_Get_System_Power_Status(
LPWIN32_SYSTEM_POWER_STATUS lpWin32_System_Power_Status
);
DWORD
POWERFAR CDECL
_VPOWERD_W32_Set_System_Power_State(
BOOL Suspend_Flag,
BOOL Force_Flag
);
POWERRET
POWERFAR CDECL
_VPOWERD_Get_Capabilities(
PAPM_CAPABILITIES pAPMCaps
);
POWERRET
POWERFAR CDECL
_VPOWERD_Enable_Resume_On_Ring(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_Disable_Resume_On_Ring(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_Set_Resume_Timer(
LPPOWERTIME pPowerTime
);
POWERRET
POWERFAR CDECL
_VPOWERD_Get_Resume_Timer(
LPPOWERTIME pPowerTime
);
POWERRET
POWERFAR CDECL
_VPOWERD_Disable_Resume_Timer(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_Enable_Timer_Based_Requests(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_Disable_Timer_Based_Requests(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_W32_Get_Power_Status(
POWER_DEVICE_ID Power_Device_ID,
LPWIN32_SYSTEM_POWER_STATUS lpWin32_System_Power_Status
);
VOID
POWERFAR CDECL
_VPOWERD_OS_Shutdown(
VOID
);
POWERRET
POWERFAR CDECL
_VPOWERD_Get_Mode(
PDWORD Mode
);
POWERRET
POWERFAR CDECL
_VPOWERD_Disable_Hibernate(
PCHAR pszReason
);
/*XLATON*/
#endif // _INC_VPOWERD
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?