// ---------------------- // GetInstanceInfo method // ---------------------- /// <summary> /// Gets information for the specified SQL Server Express LocalDB /// instance, such as whether it exists, the LocalDB version it uses, /// whether it is running, and so on. /// </summary> /// <param name="instanceName">Name of the instance.</param> /// <returns>The information about the specified LocalDB instance. /// </returns> public InstanceInfo GetInstanceInfo(string instanceName) { var info = new LocalDBInstanceInfo(); var hr = library.GetFunction(nameof(LocalDBGetInstanceInfo), ref localDBGetInstanceInfo)(instanceName, out info, Marshal.SizeOf(typeof(LocalDBInstanceInfo))); return(ValidateHResult(hr) ? new InstanceInfo(info) : null); }
// ------------ // construction // ------------ internal InstanceInfo(LocalDBInstanceInfo info) { Name = info.InstanceName.ToString(Encoding.Unicode); Exists = info.Exists; ConfigurationCorrupted = info.ConfigurationCorrupted; IsRunning = info.IsRunning; Version = new Version((int)info.Major, (int)info.Minor, (int)info.Build, (int)info.Revision); LastStart = info.LastStartUTC.ToDateTime(); Connection = info.Connection.ToString(Encoding.Unicode); IsShared = info.IsShared; SharedInstanceName = info.SharedInstanceName.ToString(Encoding.Unicode); Owner = info.OwnerSID.ToString(Encoding.Unicode); IsAutomatic = info.IsAutomatic; }