diff -r 50de2faf3336 -r 958e9fe8afdf Hardware/WinRing0.cs --- a/Hardware/WinRing0.cs Mon Sep 27 23:48:41 2010 +0000 +++ b/Hardware/WinRing0.cs Thu Sep 30 16:51:09 2010 +0000 @@ -90,10 +90,13 @@ public delegate bool ReadPciConfigDwordExDelegate(uint pciAddress, uint regAddress, out uint value); public delegate bool WritePciConfigDwordExDelegate(uint pciAddress, - uint regAddress, uint value); + uint regAddress, uint value); + public delegate bool RdtscDelegate(out uint eax, out uint edx); public delegate bool RdtscTxDelegate(out uint eax, out uint edx, + UIntPtr threadAffinityMask); + public delegate bool WrmsrDelegate(uint index, uint eax, uint edx); + public delegate bool WrmsrTxDelegate(uint index, uint eax, uint edx, UIntPtr threadAffinityMask); - public delegate bool RdtscDelegate(out uint eax, out uint edx); private static readonly InitializeOlsDelegate InitializeOls = CreateDelegate("InitializeOls"); @@ -116,10 +119,14 @@ CreateDelegate("ReadPciConfigDwordEx"); public static readonly WritePciConfigDwordExDelegate WritePciConfigDwordEx = CreateDelegate("WritePciConfigDwordEx"); - public static readonly RdtscTxDelegate RdtscTx = - CreateDelegate("RdtscTx"); public static readonly RdtscDelegate Rdtsc = CreateDelegate("Rdtsc"); + public static readonly RdtscTxDelegate RdtscTx = + CreateDelegate("RdtscTx"); + public static readonly WrmsrDelegate Wrmsr = + CreateDelegate("Wrmsr"); + public static readonly WrmsrTxDelegate WrmsrTx = + CreateDelegate("WrmsrTx"); private static T CreateDelegate(string entryPoint) where T : class { DllImportAttribute attribute = new DllImportAttribute(GetDllName());