TryingSandBox.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using GpuFanControl.MsiAfterburnerWrap.ShareMemoryStructs;
  3. namespace GpuFanControl.MsiAfterburnerWrap
  4. {
  5. internal class TryingSandBox
  6. {
  7. public static void Go()
  8. {
  9. var ctl = new MsiAfterBurnControlWrap();
  10. ctl.Connect();
  11. ctl.Refresh();
  12. var numberOfGpu = ctl.GetNumberOfGpu();
  13. for (int i = 0; i < numberOfGpu; i++)
  14. {
  15. Console.WriteLine($"Get entry of GPU #{i}");
  16. MACM_SHARED_MEMORY_GPU_ENTRY? g;
  17. {
  18. g = ctl.GetGpuEntry(i, out string err);
  19. if (g.HasValue == false)
  20. {
  21. Console.WriteLine($"Err:{err}");
  22. continue;
  23. }
  24. }
  25. var entry = g.Value;
  26. if (entry.Flags.HasFlag(MACM_SHARED_MEMORY_GPU_ENTRY_FLAG.FAN_SPEED))
  27. {
  28. Console.WriteLine($"Updating fan speed of GPU #{i}");
  29. //entry.fanFlagsCur = MACM_SHARED_MEMORY_GPU_ENTRY_FAN_FLAG.AUTO;
  30. entry.FanFlagsCur = MACM_SHARED_MEMORY_GPU_ENTRY_FAN_FLAG.None;
  31. entry.FanSpeedCur = entry.FanSpeedMax;
  32. var err=ctl.SetGpuEntry(entry, i);
  33. if(err!=null) Console.WriteLine($"Err: {err}");
  34. }
  35. else
  36. {
  37. Console.WriteLine($"Err: No support fan speed");
  38. }
  39. }
  40. Console.WriteLine("Commiting...");
  41. ctl.Commit();
  42. Console.WriteLine("Success");
  43. ctl.Disconnect();
  44. }
  45. }
  46. }