Exemplo n.º 1
0
        private static void SetPVToolsVersionOnFirstRun(
            RegistryKey openRegKey)
        {
            string regValName = "PVToolsVersionOnFirstRun";
            int    tmp        = (int)openRegKey.GetValue(regValName, -1);
            string drvVer;

            if (tmp != -1)
            {
                // We can save some indentation..
                goto SetStaticVariable;
            }

            if (xenBusDev == (XenBus.Devs) 0)
            {
                tmp    = 0; // None
                drvVer = "0.0.0.0";
            }
            else
            {
                using (SetupApi.DeviceInfoSet devInfoSet =
                           new SetupApi.DeviceInfoSet(
                               IntPtr.Zero,
                               "PCI",
                               IntPtr.Zero,
                               SetupApi.DiGetClassFlags.DIGCF_ALLCLASSES |
                               SetupApi.DiGetClassFlags.DIGCF_PRESENT))
                {
                    int idx = Helpers.BitIdxFromFlag((uint)xenBusDev);

                    SetupApi.SP_DEVINFO_DATA devInfoData =
                        Device.FindInSystem(
                            XenBus.hwIDs[idx],
                            devInfoSet,
                            true
                            );

                    drvVer = Device.GetDriverVersion(
                        devInfoSet, devInfoData
                        );
                }

                // Split the DriverVersion string on the '.'
                // char and parse the 1st substring (major
                // version number)
                tmp = Int32.Parse(
                    drvVer.Split(new char[] { '.' })[0]
                    );

                if (tmp != 8) // Eight
                {
                    tmp = 7;  // LessThanEight
                }
            }

            Trace.WriteLine(
                "XenBus driver version on first run: \'" + drvVer + "\'"
                );

            openRegKey.SetValue(
                regValName,
                tmp,
                RegistryValueKind.DWord
                );

SetStaticVariable:
            pvToolsVer = (PVToolsVersion)Enum.Parse(
                typeof(PVToolsVersion), tmp.ToString()
                );
        }
Exemplo n.º 2
0
        private static void SetPVToolsVersionOnFirstRun(
            RegistryKey openRegKey)
        {
            string regValName = "PVToolsVersionOnFirstRun";
            int tmp = (int)openRegKey.GetValue(regValName, -1);
            string drvVer;

            if (tmp != -1)
            {
                // We can save some indentation..
                goto SetStaticVariable;
            }

            if (xenBusDev == (XenBus.Devs)0)
            {
                tmp = 0; // None
                drvVer = "0.0.0.0";
            }
            else
            {
                using (SetupApi.DeviceInfoSet devInfoSet =
                    new SetupApi.DeviceInfoSet(
                        IntPtr.Zero,
                        "PCI",
                        IntPtr.Zero,
                        SetupApi.DiGetClassFlags.DIGCF_ALLCLASSES |
                        SetupApi.DiGetClassFlags.DIGCF_PRESENT))
                {
                    int idx = Helpers.BitIdxFromFlag((uint)xenBusDev);

                    SetupApi.SP_DEVINFO_DATA devInfoData =
                        Device.FindInSystem(
                            XenBus.hwIDs[idx],
                            devInfoSet,
                            true
                        );

                    drvVer = Device.GetDriverVersion(
                        devInfoSet, devInfoData
                    );
                }

                // Split the DriverVersion string on the '.'
                // char and parse the 1st substring (major
                // version number)
                tmp = Int32.Parse(
                    drvVer.Split(new char[] { '.' })[0]
                );

                if (tmp != 8) // Eight
                {
                    tmp = 7; // LessThanEight
                }

            }

            Trace.WriteLine(
                "XenBus driver version on first run: \'" + drvVer + "\'"
            );

            openRegKey.SetValue(
                regValName,
                tmp,
                RegistryValueKind.DWord
            );

            SetStaticVariable:
            pvToolsVer = (PVToolsVersion)Enum.Parse(
                typeof(PVToolsVersion), tmp.ToString()
            );
        }