internal static uint SNIAddProvider(SNIHandle pConn, ProviderEnum providerEnum, AuthProviderInfo authInfo) { UInt32 ret; uint ERROR_SUCCESS = 0; SNIAuthProviderInfoWrapper sniAuthInfoWrapper; if (authInfo.clientCertificateCallback != null) { sniAuthInfoWrapper.pDelegateContext = authInfo.clientCertificateCallbackContext; sniAuthInfoWrapper.pSqlClientCertificateDelegate = authInfo.clientCertificateCallback; authInfo.clientCertificateCallbackContext = sniAuthInfoWrapper; authInfo.clientCertificateCallback = SNIClientCertificateFallbackWrapper; } ret = SNIAddProviderWrapper(pConn, providerEnum, ref authInfo); if (ret == ERROR_SUCCESS) { // added a provider, need to requery for sync over async support bool fSupportsSyncOverAsync; ret = SNIGetInfoWrapper(pConn, QTypes.SNI_QUERY_CONN_SUPPORTS_SYNC_OVER_ASYNC, out fSupportsSyncOverAsync); Debug.Assert(ret == ERROR_SUCCESS, "SNIGetInfo cannot fail with this QType"); } return(ret); }
internal static extern uint SNIAddProviderWrapper(SNIHandle pConn, ProviderEnum ProvNum, [In] ref AuthProviderInfo pInfo);
internal static uint SNIAddProviderWrapper(SNIHandle pConn, ProviderEnum ProvNum, [In] ref AuthProviderInfo pInfo) { return(s_is64bitProcess ? SNINativeManagedWrapperX64.SNIAddProviderWrapper(pConn, ProvNum, ref pInfo) : SNINativeManagedWrapperX86.SNIAddProviderWrapper(pConn, ProvNum, ref pInfo)); }