/// <summary> /// Commits or decommits depending on <value>isReseving</value> the storage required to hold the hibernation image on the boot volume. /// </summary> /// <param name="isReseving">A value that indecates if the hibernate file should be removed or reserved.</param> private static void HandleHibernationFile(bool isReseving) { InteropPowerManagment.CallNtPowerInformationForWrite <byte>(PowerInformationLevel.SystemReserveHiberFile, buffer => { Marshal.WriteByte(buffer, Convert.ToByte(isReseving)); }); }
/// <summary> /// Gets System Power Information by PowerInformation level. /// </summary> /// <typeparam name="T">An output buffer type.</typeparam> /// <param name="powerLevel">Indicates power level information.</param> /// <returns>The output buffer result.</returns> private static T GetPowerInformation <T>(PowerInformationLevel powerLevel) { T powerInformation = default(T); InteropPowerManagment.CallNtPowerInformationForRead <SystemBatteryState>( powerLevel, buffer => powerInformation = Marshal.PtrToStructure <T>(buffer)); return(powerInformation); }