internal static unsafe uint SNIOpenSyncEx(ConsumerInfo consumerInfo, string conString, ref IntPtr pConn, byte[] spnBuffer, byte[] instanceName, bool fOverrideCache, bool fSync, int timeout, bool fParallel) { fixed(byte *pin_instanceName = &instanceName[0]) { var clientConsumerInfo = new SNI_CLIENT_CONSUMER_INFO(); // initialize client ConsumerInfo part first MarshalConsumerInfo(consumerInfo, ref clientConsumerInfo.ConsumerInfo); clientConsumerInfo.wszConnectionString = conString; clientConsumerInfo.networkLibrary = PrefixEnum.UNKNOWN_PREFIX; clientConsumerInfo.szInstanceName = pin_instanceName; clientConsumerInfo.cchInstanceName = (uint)instanceName.Length; clientConsumerInfo.fOverrideLastConnectCache = fOverrideCache; clientConsumerInfo.fSynchronousConnection = fSync; clientConsumerInfo.timeout = timeout; clientConsumerInfo.fParallel = fParallel; clientConsumerInfo.transparentNetworkResolution = TransparentNetworkResolutionMode.DisabledMode; clientConsumerInfo.totalTimeout = SniOpenTimeOut; clientConsumerInfo.isAzureSqlServerEndpoint = ADP.IsAzureSqlServerEndpoint(conString); if (spnBuffer != null) fixed(byte *pin_spnBuffer = &spnBuffer[0]) { clientConsumerInfo.szSPN = pin_spnBuffer; clientConsumerInfo.cchSPN = (uint)spnBuffer.Length; return(SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn)); } return(SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn)); } }
internal static unsafe uint SNIOpenSyncEx(ConsumerInfo consumerInfo, string constring, ref IntPtr pConn, byte[] spnBuffer, byte[] instanceName, bool fOverrideCache, bool fSync, int timeout, bool fParallel) { fixed(byte *pin_instanceName = &instanceName[0]) { SNI_CLIENT_CONSUMER_INFO clientConsumerInfo = new SNI_CLIENT_CONSUMER_INFO(); // initialize client ConsumerInfo part first MarshalConsumerInfo(consumerInfo, ref clientConsumerInfo.ConsumerInfo); clientConsumerInfo.wszConnectionString = constring; clientConsumerInfo.networkLibrary = PrefixEnum.UNKNOWN_PREFIX; clientConsumerInfo.szInstanceName = pin_instanceName; clientConsumerInfo.cchInstanceName = (uint)instanceName.Length; clientConsumerInfo.fOverrideLastConnectCache = fOverrideCache; clientConsumerInfo.fSynchronousConnection = fSync; clientConsumerInfo.timeout = timeout; clientConsumerInfo.fParallel = fParallel; if (spnBuffer != null) { fixed(byte *pin_spnBuffer = &spnBuffer[0]) { clientConsumerInfo.szSPN = pin_spnBuffer; clientConsumerInfo.cchSPN = (uint)spnBuffer.Length; return(SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn)); } } else { // else leave szSPN null (SQL Auth) return(SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn)); } } }
internal static unsafe uint SNIOpenSyncEx(ConsumerInfo consumerInfo, string constring, ref IntPtr pConn, byte[] spnBuffer, byte[] instanceName, bool fOverrideCache, bool fSync, int timeout, bool fParallel, Int32 transparentNetworkResolutionStateNo, Int32 totalTimeout, Boolean isAzureSqlServerEndpoint, SQLDNSInfo cachedDNSInfo) { fixed(byte *pin_instanceName = &instanceName[0]) { SNI_CLIENT_CONSUMER_INFO clientConsumerInfo = new SNI_CLIENT_CONSUMER_INFO(); // initialize client ConsumerInfo part first MarshalConsumerInfo(consumerInfo, ref clientConsumerInfo.ConsumerInfo); clientConsumerInfo.wszConnectionString = constring; clientConsumerInfo.networkLibrary = PrefixEnum.UNKNOWN_PREFIX; clientConsumerInfo.szInstanceName = pin_instanceName; clientConsumerInfo.cchInstanceName = (uint)instanceName.Length; clientConsumerInfo.fOverrideLastConnectCache = fOverrideCache; clientConsumerInfo.fSynchronousConnection = fSync; clientConsumerInfo.timeout = timeout; clientConsumerInfo.fParallel = fParallel; clientConsumerInfo.isAzureSqlServerEndpoint = ADP.IsAzureSqlServerEndpoint(constring); switch (transparentNetworkResolutionStateNo) { case (0): clientConsumerInfo.transparentNetworkResolution = TransparentNetworkResolutionMode.DisabledMode; break; case (1): clientConsumerInfo.transparentNetworkResolution = TransparentNetworkResolutionMode.SequentialMode; break; case (2): clientConsumerInfo.transparentNetworkResolution = TransparentNetworkResolutionMode.ParallelMode; break; } ; clientConsumerInfo.totalTimeout = totalTimeout; clientConsumerInfo.DNSCacheInfo.wszCachedFQDN = cachedDNSInfo?.FQDN; clientConsumerInfo.DNSCacheInfo.wszCachedTcpIPv4 = cachedDNSInfo?.AddrIPv4; clientConsumerInfo.DNSCacheInfo.wszCachedTcpIPv6 = cachedDNSInfo?.AddrIPv6; clientConsumerInfo.DNSCacheInfo.wszCachedTcpPort = cachedDNSInfo?.Port; if (spnBuffer != null) { fixed(byte *pin_spnBuffer = &spnBuffer[0]) { clientConsumerInfo.szSPN = pin_spnBuffer; clientConsumerInfo.cchSPN = (uint)spnBuffer.Length; return(SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn)); } } else { // else leave szSPN null (SQL Auth) return(SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn)); } } }
private static extern uint SNIOpenSyncExWrapper(ref SNI_CLIENT_CONSUMER_INFO pClientConsumerInfo, out IntPtr ppConn);
private static uint SNIOpenSyncExWrapper(ref SNI_CLIENT_CONSUMER_INFO pClientConsumerInfo, out IntPtr ppConn) { return(s_is64bitProcess ? SNINativeManagedWrapperX64.SNIOpenSyncExWrapper(ref pClientConsumerInfo, out ppConn) : SNINativeManagedWrapperX86.SNIOpenSyncExWrapper(ref pClientConsumerInfo, out ppConn)); }
internal static unsafe uint SNIOpenSyncEx(ConsumerInfo consumerInfo, string constring, ref IntPtr pConn, byte[] spnBuffer, byte[] instanceName, bool fOverrideCache, bool fSync, int timeout, bool fParallel) { fixed (byte* pin_instanceName = &instanceName[0]) { SNI_CLIENT_CONSUMER_INFO clientConsumerInfo = new SNI_CLIENT_CONSUMER_INFO(); // initialize client ConsumerInfo part first MarshalConsumerInfo(consumerInfo, ref clientConsumerInfo.ConsumerInfo); clientConsumerInfo.wszConnectionString = constring; clientConsumerInfo.networkLibrary = PrefixEnum.UNKNOWN_PREFIX; clientConsumerInfo.szInstanceName = pin_instanceName; clientConsumerInfo.cchInstanceName = (uint)instanceName.Length; clientConsumerInfo.fOverrideLastConnectCache = fOverrideCache; clientConsumerInfo.fSynchronousConnection = fSync; clientConsumerInfo.timeout = timeout; clientConsumerInfo.fParallel = fParallel; if (spnBuffer != null) { fixed (byte* pin_spnBuffer = &spnBuffer[0]) { clientConsumerInfo.szSPN = pin_spnBuffer; clientConsumerInfo.cchSPN = (uint)spnBuffer.Length; return SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn); } } else { // else leave szSPN null (SQL Auth) return SNIOpenSyncExWrapper(ref clientConsumerInfo, out pConn); } } }
private static extern uint SNIOpenSyncExWrapper(ref SNI_CLIENT_CONSUMER_INFO pClientConsumerInfo, out IntPtr ppConn);