internal static PowerManagementNativeMethods.SystemBatteryState GetSystemBatteryState() { IntPtr status = IntPtr.Zero; PowerManagementNativeMethods.SystemBatteryState batt_status; try { status = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState))); uint retval = PowerManagementNativeMethods.CallNtPowerInformation( 5, // SystemBatteryState (IntPtr)null, 0, status, (UInt32)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState)) ); if (retval == CoreNativeMethods.STATUS_ACCESS_DENIED) { throw new UnauthorizedAccessException("The caller had insufficient access rights to get the system battery state."); } batt_status = (PowerManagementNativeMethods.SystemBatteryState)Marshal.PtrToStructure(status, typeof(PowerManagementNativeMethods.SystemBatteryState)); } finally { Marshal.FreeCoTaskMem(status); } return(batt_status); }
GetSystemPowerCapabilities() { IntPtr status = IntPtr.Zero; PowerManagementNativeMethods.SystemPowerCapabilities powerCap; try { status = Marshal.AllocCoTaskMem( Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities))); uint retval = PowerManagementNativeMethods.CallNtPowerInformation( 4, // SystemPowerCapabilities (IntPtr)null, 0, status, (UInt32)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities)) ); if (retval == CoreNativeMethods.STATUS_ACCESS_DENIED) { throw new UnauthorizedAccessException("The caller had insufficient access rights to get the system power capabilities."); } powerCap = (PowerManagementNativeMethods.SystemPowerCapabilities)Marshal.PtrToStructure(status, typeof(PowerManagementNativeMethods.SystemPowerCapabilities)); } finally { Marshal.FreeCoTaskMem(status); } return(powerCap); }
internal static PowerManagementNativeMethods.SystemBatteryState GetSystemBatteryState() { if (PowerManagementNativeMethods.CallNtPowerInformation( PowerManagementNativeMethods.PowerInformationLevel.SystemBatteryState, IntPtr.Zero, 0, out PowerManagementNativeMethods.SystemBatteryState batteryState, (uint)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState)) ) == NativeAPI.Consts.Common.StatusAccessDenied) { throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessBatteryState); } return(batteryState); }
GetSystemPowerCapabilities() { if (PowerManagementNativeMethods.CallNtPowerInformation( PowerManagementNativeMethods.PowerInformationLevel.SystemPowerCapabilities, IntPtr.Zero, 0, out PowerManagementNativeMethods.SystemPowerCapabilities powerCap, (uint)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities)) ) == NativeAPI.Consts.Common.StatusAccessDenied) { throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessCapabilities); } return(powerCap); }
internal static PowerManagementNativeMethods.SystemPowerCapabilities GetSystemPowerCapabilities() { var retval = PowerManagementNativeMethods.CallNtPowerInformation( PowerManagementNativeMethods.PowerInformationLevel.SystemPowerCapabilities, IntPtr.Zero, 0, out PowerManagementNativeMethods.SystemPowerCapabilities powerCap, (uint)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities)) ); if (retval == CoreNativeMethods.StatusAccessDenied) { throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessCapabilities); } return(powerCap); }
internal static PowerManagementNativeMethods.SystemBatteryState GetSystemBatteryState() { PowerManagementNativeMethods.SystemBatteryState batteryState; uint retval = PowerManagementNativeMethods.CallNtPowerInformation( PowerManagementNativeMethods.PowerInformationLevel.SystemBatteryState, IntPtr.Zero, 0, out batteryState, (UInt32)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState)) ); if (retval == CoreNativeMethods.StatusAccessDenied) { throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessBatteryState); } return(batteryState); }