Files
archived-g-helper/app/NvAPIWrapper/Native/GPU/Structures/PrivateFanCoolersInfoV1.cs
2023-05-06 14:40:52 +02:00

52 lines
1.7 KiB
C#

using System.Linq;
using System.Runtime.InteropServices;
using NvAPIWrapper.Native.Attributes;
using NvAPIWrapper.Native.General.Structures;
using NvAPIWrapper.Native.Interfaces;
namespace NvAPIWrapper.Native.GPU.Structures
{
[StructLayout(LayoutKind.Sequential, Pack = 8)]
[StructureVersion(1)]
public struct PrivateFanCoolersInfoV1 : IInitializable
{
internal const int MaxNumberOfFanCoolerInfoEntries = 32;
internal StructureVersion _Version;
internal readonly uint _UnknownUInt1;
internal readonly uint _FanCoolersInfoCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.U4)]
internal readonly uint[] _Reserved;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = MaxNumberOfFanCoolerInfoEntries)]
internal readonly FanCoolersInfoEntry[] _FanCoolersInfoEntries;
public FanCoolersInfoEntry[] FanCoolersInfoEntries
{
get => _FanCoolersInfoEntries.Take((int) _FanCoolersInfoCount).ToArray();
}
[StructLayout(LayoutKind.Sequential, Pack = 8)]
public struct FanCoolersInfoEntry
{
internal readonly uint _CoolerId;
internal readonly uint _UnknownUInt3;
internal readonly uint _UnknownUInt4;
internal readonly uint _MaximumRPM;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.U4)]
internal readonly uint[] _Reserved;
public uint CoolerId
{
get => _CoolerId;
}
public uint MaximumRPM
{
get => _MaximumRPM;
}
}
}
}