1.1 --- a/Hardware/WinRing0.cs Mon Sep 27 23:48:41 2010 +0000
1.2 +++ b/Hardware/WinRing0.cs Thu Sep 30 16:51:09 2010 +0000
1.3 @@ -90,10 +90,13 @@
1.4 public delegate bool ReadPciConfigDwordExDelegate(uint pciAddress,
1.5 uint regAddress, out uint value);
1.6 public delegate bool WritePciConfigDwordExDelegate(uint pciAddress,
1.7 - uint regAddress, uint value);
1.8 + uint regAddress, uint value);
1.9 + public delegate bool RdtscDelegate(out uint eax, out uint edx);
1.10 public delegate bool RdtscTxDelegate(out uint eax, out uint edx,
1.11 + UIntPtr threadAffinityMask);
1.12 + public delegate bool WrmsrDelegate(uint index, uint eax, uint edx);
1.13 + public delegate bool WrmsrTxDelegate(uint index, uint eax, uint edx,
1.14 UIntPtr threadAffinityMask);
1.15 - public delegate bool RdtscDelegate(out uint eax, out uint edx);
1.16
1.17 private static readonly InitializeOlsDelegate InitializeOls =
1.18 CreateDelegate<InitializeOlsDelegate>("InitializeOls");
1.19 @@ -116,10 +119,14 @@
1.20 CreateDelegate<ReadPciConfigDwordExDelegate>("ReadPciConfigDwordEx");
1.21 public static readonly WritePciConfigDwordExDelegate WritePciConfigDwordEx =
1.22 CreateDelegate<WritePciConfigDwordExDelegate>("WritePciConfigDwordEx");
1.23 - public static readonly RdtscTxDelegate RdtscTx =
1.24 - CreateDelegate<RdtscTxDelegate>("RdtscTx");
1.25 public static readonly RdtscDelegate Rdtsc =
1.26 CreateDelegate<RdtscDelegate>("Rdtsc");
1.27 + public static readonly RdtscTxDelegate RdtscTx =
1.28 + CreateDelegate<RdtscTxDelegate>("RdtscTx");
1.29 + public static readonly WrmsrDelegate Wrmsr =
1.30 + CreateDelegate<WrmsrDelegate>("Wrmsr");
1.31 + public static readonly WrmsrTxDelegate WrmsrTx =
1.32 + CreateDelegate<WrmsrTxDelegate>("WrmsrTx");
1.33
1.34 private static T CreateDelegate<T>(string entryPoint) where T : class {
1.35 DllImportAttribute attribute = new DllImportAttribute(GetDllName());