private static IEnumerable <string> LocalInstances(uint flag)
{
// Get local instances for us
var mssqlKey = UIntPtr.Zero;
try
{
Win32.RegOpenKeyEx(Win32.HKEY_LOCAL_MACHINE, @"Software\Microsoft\Microsoft SQL Server", 0, Win32.KEY_QUERY_VALUE | flag, out mssqlKey);
if (mssqlKey == UIntPtr.Zero)
{
return(new List <string>());
}
var instances = Win32.RegQueryValue(mssqlKey, "InstalledInstances") as string[];
if (instances == null)
{
return(new List <string>());
}
return(new List <string>(instances));
}
finally
{
if (mssqlKey != UIntPtr.Zero)
{
Win32.RegCloseKey(mssqlKey);
}
}
}