private static bool CompareAttributes(VMCompatibility vMCompatibility, ulong vmCompatibilityInfo, ulong hostCompatibilityInfo)
        {
            bool compareResult = false;

            switch (vMCompatibility)
            {
            case VMCompatibility.Equal:
                compareResult = vmCompatibilityInfo.Equals(hostCompatibilityInfo);
                break;

            case VMCompatibility.Disjoint:
                if ((vmCompatibilityInfo & hostCompatibilityInfo) == 0)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.GreaterThan:
                if (vmCompatibilityInfo > hostCompatibilityInfo)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.Superset:
                if ((vmCompatibilityInfo & hostCompatibilityInfo) == hostCompatibilityInfo)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.GreaterThanOrEqual:
                if (vmCompatibilityInfo >= hostCompatibilityInfo)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.LessThan:
                if (vmCompatibilityInfo < hostCompatibilityInfo)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.Subset:
                if ((vmCompatibilityInfo & hostCompatibilityInfo) == vmCompatibilityInfo)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.LessThanOrEqual:
                if (vmCompatibilityInfo <= hostCompatibilityInfo)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.Multiple:
                if ((vmCompatibilityInfo % hostCompatibilityInfo) == 0)
                {
                    compareResult = true;
                }
                break;

            case VMCompatibility.Divisible:
                if ((hostCompatibilityInfo % vmCompatibilityInfo) == 0)
                {
                    compareResult = true;
                }
                break;

            default:
                Console.WriteLine(String.Format(CultureInfo.InvariantCulture, "Unexpected VMCompatibility option: {0}", vMCompatibility));
                break;
            }

            return(compareResult);
        }
        private static bool CompareAttributes(VMCompatibility vMCompatibility, ulong vmCompatibilityInfo, ulong hostCompatibilityInfo)
        {
            bool compareResult = false;

            switch (vMCompatibility)
            {
                case VMCompatibility.Equal:
                    compareResult = vmCompatibilityInfo.Equals(hostCompatibilityInfo);
                    break;
                case VMCompatibility.Disjoint:
                    if ((vmCompatibilityInfo & hostCompatibilityInfo) == 0)
                    {
                        compareResult = true;
                    }
                    break;
                case VMCompatibility.GreaterThan:
                    if (vmCompatibilityInfo > hostCompatibilityInfo)
                    {
                        compareResult = true;
                    }
                    break;
                case VMCompatibility.Superset:
                    if ((vmCompatibilityInfo & hostCompatibilityInfo) == hostCompatibilityInfo)
                    {
                        compareResult = true; 
                    }
                    break;
                case VMCompatibility.GreaterThanOrEqual:
                    if (vmCompatibilityInfo >= hostCompatibilityInfo)
                    {
                        compareResult = true;
                    }
                    break;
                case VMCompatibility.LessThan:
                    if (vmCompatibilityInfo < hostCompatibilityInfo)
                    {
                        compareResult = true;
                    }
                    break;
                case VMCompatibility.Subset:
                    if ((vmCompatibilityInfo & hostCompatibilityInfo) == vmCompatibilityInfo)
                    {
                        compareResult = true;
                    }
                    break;
                case VMCompatibility.LessThanOrEqual:
                    if (vmCompatibilityInfo <= hostCompatibilityInfo)
                    {
                        compareResult = true;
                    }
                    break;
                case VMCompatibility.Multiple:
                    if ((vmCompatibilityInfo % hostCompatibilityInfo) == 0)
                    {
                        compareResult = true;
                    }
                    break;
                case VMCompatibility.Divisible:
                    if ((hostCompatibilityInfo % vmCompatibilityInfo) == 0)
                    {
                        compareResult = true;
                    }
                    break;
                default:
                    Console.WriteLine(String.Format(CultureInfo.InvariantCulture, "Unexpected VMCompatibility option: {0}", vMCompatibility));
                    break;
            }

            return compareResult;
        }