@@ -13,7 +13,6 @@ namespace Microsoft.Data.SqlClient.SNI
13
13
internal sealed class LocalDB
14
14
{
15
15
private static readonly LocalDB Instance = new LocalDB ( ) ;
16
- private const string s_className = nameof ( LocalDB ) ;
17
16
18
17
//HKEY_LOCAL_MACHINE
19
18
private const string LocalDBInstalledVersionRegistryKey = "SOFTWARE\\ Microsoft\\ Microsoft SQL Server Local DB\\ Installed Versions\\ " ;
@@ -103,8 +102,7 @@ internal static string MapLocalDBErrorStateToErrorMessage(LocalDBErrorState erro
103
102
/// </summary>
104
103
private bool LoadUserInstanceDll ( )
105
104
{
106
- long scopeID = SqlClientEventSource . Log . TrySNIScopeEnterEvent ( s_className ) ;
107
- try
105
+ using ( TrySNIEventScope . Create ( nameof ( LocalDB ) ) )
108
106
{
109
107
// Check in a non thread-safe way if the handle is already set for performance.
110
108
if ( _sqlUserInstanceLibraryHandle != null )
@@ -128,15 +126,15 @@ private bool LoadUserInstanceDll()
128
126
if ( dllPath == null )
129
127
{
130
128
SNILoadHandle . SingletonInstance . LastError = new SNIError ( SNIProviders . INVALID_PROV , 0 , MapLocalDBErrorStateToCode ( registryQueryErrorState ) , MapLocalDBErrorStateToErrorMessage ( registryQueryErrorState ) ) ;
131
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "User instance DLL path is null." ) ;
129
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "User instance DLL path is null." ) ;
132
130
return false ;
133
131
}
134
132
135
133
// In case the registry had an empty path for dll
136
134
if ( string . IsNullOrWhiteSpace ( dllPath ) )
137
135
{
138
136
SNILoadHandle . SingletonInstance . LastError = new SNIError ( SNIProviders . INVALID_PROV , 0 , SNICommon . LocalDBInvalidSqlUserInstanceDllPath , Strings . SNI_ERROR_55 ) ;
139
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "User instance DLL path is invalid. DLL path = {0}" , dllPath ) ;
137
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "User instance DLL path is invalid. DLL path = {0}" , dllPath ) ;
140
138
return false ;
141
139
}
142
140
@@ -146,7 +144,7 @@ private bool LoadUserInstanceDll()
146
144
if ( libraryHandle . IsInvalid )
147
145
{
148
146
SNILoadHandle . SingletonInstance . LastError = new SNIError ( SNIProviders . INVALID_PROV , 0 , SNICommon . LocalDBFailedToLoadDll , Strings . SNI_ERROR_56 ) ;
149
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "Library Handle is invalid. Could not load the dll." ) ;
147
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "Library Handle is invalid. Could not load the dll." ) ;
150
148
libraryHandle . Dispose ( ) ;
151
149
return false ;
152
150
}
@@ -157,7 +155,7 @@ private bool LoadUserInstanceDll()
157
155
if ( _startInstanceHandle == IntPtr . Zero )
158
156
{
159
157
SNILoadHandle . SingletonInstance . LastError = new SNIError ( SNIProviders . INVALID_PROV , 0 , SNICommon . LocalDBBadRuntime , Strings . SNI_ERROR_57 ) ;
160
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "Was not able to load the PROC from DLL. Bad Runtime." ) ;
158
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "Was not able to load the PROC from DLL. Bad Runtime." ) ;
161
159
libraryHandle . Dispose ( ) ;
162
160
return false ;
163
161
}
@@ -174,14 +172,10 @@ private bool LoadUserInstanceDll()
174
172
}
175
173
176
174
_sqlUserInstanceLibraryHandle = libraryHandle ;
177
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . INFO , "User Instance DLL was loaded successfully." ) ;
175
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . INFO , "User Instance DLL was loaded successfully." ) ;
178
176
return true ;
179
177
}
180
178
}
181
- finally
182
- {
183
- SqlClientEventSource . Log . TrySNIScopeLeaveEvent ( scopeID ) ;
184
- }
185
179
}
186
180
187
181
/// <summary>
@@ -191,16 +185,15 @@ private bool LoadUserInstanceDll()
191
185
/// <returns></returns>
192
186
private string GetUserInstanceDllPath ( out LocalDBErrorState errorState )
193
187
{
194
- long scopeID = SqlClientEventSource . Log . TrySNIScopeEnterEvent ( s_className ) ;
195
- try
188
+ using ( TrySNIEventScope . Create ( nameof ( LocalDB ) ) )
196
189
{
197
190
string dllPath = null ;
198
191
using ( RegistryKey key = Registry . LocalMachine . OpenSubKey ( LocalDBInstalledVersionRegistryKey ) )
199
192
{
200
193
if ( key == null )
201
194
{
202
195
errorState = LocalDBErrorState . NO_INSTALLATION ;
203
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "No installation found." ) ;
196
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "No installation found." ) ;
204
197
return null ;
205
198
}
206
199
@@ -215,7 +208,7 @@ private string GetUserInstanceDllPath(out LocalDBErrorState errorState)
215
208
if ( ! Version . TryParse ( subKey , out currentKeyVersion ) )
216
209
{
217
210
errorState = LocalDBErrorState . INVALID_CONFIG ;
218
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "Invalid Configuration." ) ;
211
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "Invalid Configuration." ) ;
219
212
return null ;
220
213
}
221
214
@@ -229,7 +222,7 @@ private string GetUserInstanceDllPath(out LocalDBErrorState errorState)
229
222
if ( latestVersion . Equals ( zeroVersion ) )
230
223
{
231
224
errorState = LocalDBErrorState . INVALID_CONFIG ;
232
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "Invalid Configuration." ) ;
225
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "Invalid Configuration." ) ;
233
226
return null ;
234
227
}
235
228
@@ -242,7 +235,7 @@ private string GetUserInstanceDllPath(out LocalDBErrorState errorState)
242
235
if ( instanceAPIPathRegistryObject == null )
243
236
{
244
237
errorState = LocalDBErrorState . NO_SQLUSERINSTANCEDLL_PATH ;
245
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "No SQL user instance DLL. Instance API Path Registry Object Error." ) ;
238
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "No SQL user instance DLL. Instance API Path Registry Object Error." ) ;
246
239
return null ;
247
240
}
248
241
@@ -251,7 +244,7 @@ private string GetUserInstanceDllPath(out LocalDBErrorState errorState)
251
244
if ( valueKind != RegistryValueKind . String )
252
245
{
253
246
errorState = LocalDBErrorState . INVALID_SQLUSERINSTANCEDLL_PATH ;
254
- SqlClientEventSource . Log . TrySNITraceEvent ( s_className , EventType . ERR , "Invalid SQL user instance DLL path. Registry value kind mismatch." ) ;
247
+ SqlClientEventSource . Log . TrySNITraceEvent ( nameof ( LocalDB ) , EventType . ERR , "Invalid SQL user instance DLL path. Registry value kind mismatch." ) ;
255
248
return null ;
256
249
}
257
250
@@ -262,10 +255,6 @@ private string GetUserInstanceDllPath(out LocalDBErrorState errorState)
262
255
}
263
256
}
264
257
}
265
- finally
266
- {
267
- SqlClientEventSource . Log . TrySNIScopeLeaveEvent ( scopeID ) ;
268
- }
269
258
}
270
259
}
271
260
}
0 commit comments