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() ); }
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() ); }