Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: System S4 GetPwrCapabilities Hibernate Hibernation Power DllCall PowrProf.dll
#DefineFunction udfGetPwrCapabilities() structcnt = 29 structsize = 139 arrSystemPowerCapabilities = ArrDimension(structcnt) dllfilename = DirWindows(1):'PowrProf.dll' lpSystemPowerCapabilities = BinaryAlloc(structsize) BinaryEodSet( lpSystemPowerCapabilities, structsize ) retval = DllCall( dllfilename, long:"GetPwrCapabilities", lpbinary:lpSystemPowerCapabilities) If retval == 0 Pause('GetPwrCapabilities Failed',DllLastError()) BinaryFree(lpSystemPowerCapabilities) Return 0 EndIf BinaryEodSet( lpSystemPowerCapabilities, BinaryEodGet(lpSystemPowerCapabilities) ) ;Pause('DEBUG',BinaryEodGet(lpSystemPowerCapabilities)) arrSystemPowerCapabilities[0] = BinaryPeek(lpSystemPowerCapabilities, 0 ) ;PowerButtonPresent arrSystemPowerCapabilities[1] = BinaryPeek(lpSystemPowerCapabilities, 4 ) ;SleepButtonPresent arrSystemPowerCapabilities[2] = BinaryPeek(lpSystemPowerCapabilities, 8 ) ;LidPresent arrSystemPowerCapabilities[3] = BinaryPeek(lpSystemPowerCapabilities, 12 ) ;SystemS1 arrSystemPowerCapabilities[4] = BinaryPeek(lpSystemPowerCapabilities, 16 ) ;SystemS2 arrSystemPowerCapabilities[5] = BinaryPeek(lpSystemPowerCapabilities, 20 ) ;SystemS3 arrSystemPowerCapabilities[6] = BinaryPeek(lpSystemPowerCapabilities, 24 ) ;SystemS4 arrSystemPowerCapabilities[7] = BinaryPeek(lpSystemPowerCapabilities, 28 ) ;SystemS5 arrSystemPowerCapabilities[8] = BinaryPeek(lpSystemPowerCapabilities, 32 ) ;HiberFilePresent arrSystemPowerCapabilities[9] = BinaryPeek(lpSystemPowerCapabilities, 36 ) ;FullWake arrSystemPowerCapabilities[10] = BinaryPeek(lpSystemPowerCapabilities, 40 ) ;VideoDimPresent arrSystemPowerCapabilities[11] = BinaryPeek(lpSystemPowerCapabilities, 44 ) ;ApmPresent arrSystemPowerCapabilities[12] = BinaryPeek(lpSystemPowerCapabilities, 48 ) ;UpsPresent arrSystemPowerCapabilities[13] = BinaryPeek(lpSystemPowerCapabilities, 52 ) ;ThermalControl arrSystemPowerCapabilities[14] = BinaryPeek(lpSystemPowerCapabilities, 56 ) ;ProcessorThrottle arrSystemPowerCapabilities[15] = BinaryPeek(lpSystemPowerCapabilities, 60 ) ;ProcessorMinThrottle arrSystemPowerCapabilities[16] = BinaryPeek(lpSystemPowerCapabilities, 64 ) ;ProcessorMaxThrottle arrSystemPowerCapabilities[17] = BinaryPeek(lpSystemPowerCapabilities, 68 ) ;FastSystemS4 arrSystemPowerCapabilities[18] = 0;BinaryPeek(lpSystemPowerCapabilities, 72 ) ;spare2 (3bytes) arrSystemPowerCapabilities[19] = BinaryPeek(lpSystemPowerCapabilities, 75 ) ;DiskSpinDown arrSystemPowerCapabilities[20] = 0;BinaryPeek(lpSystemPowerCapabilities, 79 ) ;spare3 (8bytes) arrSystemPowerCapabilities[21] = BinaryPeek(lpSystemPowerCapabilities, 87 ) ;SystemBatteriesPresent arrSystemPowerCapabilities[22] = BinaryPeek(lpSystemPowerCapabilities, 91 ) ;BatteriesAreShortTerm arrSystemPowerCapabilities[23] = 0;BinaryPeek(lpSystemPowerCapabilities, 95 ) ;BatteryScale (24 bytes) arrSystemPowerCapabilities[24] = BinaryPeek(lpSystemPowerCapabilities, 119 ) ;AcOnLineWake arrSystemPowerCapabilities[25] = BinaryPeek(lpSystemPowerCapabilities, 123 ) ;SoftLidWake arrSystemPowerCapabilities[26] = BinaryPeek(lpSystemPowerCapabilities, 127 ) ;RtcWake arrSystemPowerCapabilities[27] = BinaryPeek(lpSystemPowerCapabilities, 131 ) ;MinDeviceWakeState arrSystemPowerCapabilities[28] = BinaryPeek(lpSystemPowerCapabilities, 135 ) ;DefaultLowLatencyWake BinaryFree(lpSystemPowerCapabilities) Return arrSystemPowerCapabilities ;*************************************************************************** ;** ;** API DOCUMENTATION ;** ;*************************************************************************** ;GetPwrCapabilities( ; __out PSYSTEM_POWER_CAPABILITIES lpSystemPowerCapabilities ;); ;typedef struct { ; 4 BOOLEAN PowerButtonPresent; ; 4 BOOLEAN SleepButtonPresent; ; 4 BOOLEAN LidPresent; ; 4 BOOLEAN SystemS1; ; 4 BOOLEAN SystemS2; ; 4 BOOLEAN SystemS3; ; 4 BOOLEAN SystemS4; ; 4 BOOLEAN SystemS5; ; 4 BOOLEAN HiberFilePresent; ; 4 BOOLEAN FullWake; ; 4 BOOLEAN VideoDimPresent; ; 4 BOOLEAN ApmPresent; ; 4 BOOLEAN UpsPresent; ; 4 BOOLEAN ThermalControl; ; 4 BOOLEAN ProcessorThrottle; ; 4 BYTE ProcessorMinThrottle; ; 4 BYTE ProcessorMaxThrottle; ; 4 BOOLEAN FastSystemS4; ; 3 BYTE spare2[3]; ; 4 BOOLEAN DiskSpinDown; ; 8 BYTE spare3[8]; ; 4 BOOLEAN SystemBatteriesPresent; ; 4 BOOLEAN BatteriesAreShortTerm; ; 24 BATTERY_REPORTING_SCALE BatteryScale[3]; ; 4 SYSTEM_POWER_STATE AcOnLineWake; ; 4 SYSTEM_POWER_STATE SoftLidWake; ; 4 SYSTEM_POWER_STATE RtcWake; ; 4 SYSTEM_POWER_STATE MinDeviceWakeState; ; 4 SYSTEM_POWER_STATE DefaultLowLatencyWake; ;} SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES ; public struct BATTERY_REPORTING_SCALE{ ; public UInt32 Granularity; ; public UInt32 Capacity; ; } ; ; public enum SYSTEM_POWER_STATE{ ; PowerSystemUnspecified = 0, ; PowerSystemWorking = 1, ; PowerSystemSleeping1 = 2, ; PowerSystemSleeping2 = 3, ; PowerSystemSleeping3 = 4, ; PowerSystemHibernate = 5, ; PowerSystemShutdown = 6, ; PowerSystemMaximum = 7 ; } #EndFunction ; If the computer supports hibernation, then power state S4 is true and the file Hiberfil.sys ; is present on the system. arrSystemPowerCapabilities = udfGetPwrCapabilities() HiberFilePresent = arrSystemPowerCapabilities[8] If HiberFilePresent Then Pause("HiberFilePresent","The system hibernation file is present.") Else Pause("HiberFilePresent","The system hibernation file is NOT present.") ;If this member is TRUE, the operating system supports sleep state S4 (hibernation). SystemS4 = arrSystemPowerCapabilities[6] If SystemS4 Then Pause("SystemS4","The operating system supports sleep state S4 (hibernation).") Else Pause("SystemS4","The operating system DOES NOT support sleep state S4 (hibernation).")
Article ID: W18401
Filename: udfGetPwrCapabilities.txt
File Created: 2011:09:12:08:40:14
Last Updated: 2011:09:12:08:40:14