示例#1
0
        public static bool RdmsrTx(uint index, out uint eax, out uint edx, ulong threadAffinityMask)
        {
            ulong mask = ThreadAffinity.Set(threadAffinityMask);

            bool result = Rdmsr(index, out eax, out edx);

            ThreadAffinity.Set(mask);
            return(result);
        }
示例#2
0
        public static bool RdmsrTx(uint index, out uint eax, out uint edx,
                                   GroupAffinity affinity)
        {
            var previousAffinity = ThreadAffinity.Set(affinity);

            bool result = Rdmsr(index, out eax, out edx);

            ThreadAffinity.Set(previousAffinity);
            return(result);
        }
示例#3
0
        public static bool CpuidTx(uint index, uint ecxValue, out uint eax, out uint ebx, out uint ecx, out uint edx, ulong threadAffinityMask)
        {
            ulong mask = ThreadAffinity.Set(threadAffinityMask);

            if (mask == 0)
            {
                eax = ebx = ecx = edx = 0;
                return(false);
            }

            Cpuid(index, ecxValue, out eax, out ebx, out ecx, out edx);

            ThreadAffinity.Set(mask);
            return(true);
        }
示例#4
0
        public static bool CpuidTx(uint index, uint ecxValue,
                                   out uint eax, out uint ebx, out uint ecx, out uint edx,
                                   GroupAffinity affinity)
        {
            var previousAffinity = ThreadAffinity.Set(affinity);

            if (previousAffinity == GroupAffinity.Undefined)
            {
                eax = ebx = ecx = edx = 0;
                return(false);
            }

            Cpuid(index, ecxValue, out eax, out ebx, out ecx, out edx);

            ThreadAffinity.Set(previousAffinity);
            return(true);
        }
示例#5
0
文件: Ring0.cs 项目: zhengdongge/nbfc
 public static ulong ThreadAffinitySet(ulong mask)
 {
     return(ThreadAffinity.Set(mask));
 }