Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / Msmq.cs / 1 / Msmq.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Threading; using System.Net.Security; internal static class Msmq { static Version longhornVersion = new Version(4, 0); static Version version; static bool activeDirectoryEnabled; static object xpSendLock = null; static UriPrefixTabletransportManagerTable = new UriPrefixTable (); static object staticLock = new object(); static SafeLibraryHandle errorStrings = null; static Msmq() { MsmqQueue.GetMsmqInformation(ref version, ref activeDirectoryEnabled); MsmqDiagnostics.MsmqDetected(version); Version osVersion = System.Environment.OSVersion.Version; if (osVersion.Major == 5 && osVersion.Minor == 1) xpSendLock = new object(); } internal static bool ActiveDirectoryEnabled { get { return activeDirectoryEnabled; } } internal static Version Version { get { return version; } } internal static bool IsPerAppDeadLetterQueueSupported { get { return Msmq.Version >= longhornVersion; } } internal static bool IsAdvancedPoisonHandlingSupported { get { return Msmq.Version >= longhornVersion; } } internal static bool IsRejectMessageSupported { get { return Msmq.Version >= longhornVersion; } } internal static UriPrefixTable StaticTransportManagerTable { get { return transportManagerTable; } } internal static IPoisonHandlingStrategy CreatePoisonHandler(MsmqReceiveHelper receiver) { if (receiver.Transactional) { if (Msmq.Version < longhornVersion) { return new Msmq3PoisonHandler(receiver); } else { if (receiver.ListenUri.AbsoluteUri.Contains(";")) return new Msmq4SubqueuePoisonHandler(receiver); else return new Msmq4PoisonHandler(receiver); } } else { return new MsmqNonTransactedPoisonHandler(receiver); } } internal static SafeLibraryHandle ErrorStrings { get { if (null == errorStrings) { lock (staticLock) { if (null == errorStrings) { #pragma warning suppress 56523 // Callers (there is only one) handle an invalid handle returned from here. errorStrings = UnsafeNativeMethods.LoadLibrary("MQUTIL.DLL"); } } } return errorStrings; } } internal static void EnterXPSendLock(out bool lockHeld, ProtectionLevel protectionLevel) { lockHeld = false; if (null != xpSendLock && (ProtectionLevel.None != protectionLevel)) { try { } finally { Monitor.Enter(xpSendLock); lockHeld = true; } } } internal static void LeaveXPSendLock() { Monitor.Exit(xpSendLock); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectSelectorEditor.cs
- XmlReaderSettings.cs
- DataBoundControlDesigner.cs
- FaultDesigner.cs
- SByte.cs
- TabletDevice.cs
- UnsafeNativeMethods.cs
- FacetDescription.cs
- DecimalKeyFrameCollection.cs
- XPathChildIterator.cs
- TableDetailsCollection.cs
- DataControlField.cs
- DockPanel.cs
- BinHexEncoder.cs
- SystemEvents.cs
- SingleConverter.cs
- XXXInfos.cs
- TimersDescriptionAttribute.cs
- HtmlWindowCollection.cs
- SqlConnectionFactory.cs
- StringBuilder.cs
- ProcessRequestArgs.cs
- BrowserCapabilitiesFactory.cs
- CompareInfo.cs
- ServerValidateEventArgs.cs
- PageContentAsyncResult.cs
- FileDialogCustomPlace.cs
- GcSettings.cs
- WebPartEventArgs.cs
- ExpressionDumper.cs
- DataGridViewElement.cs
- PropertyMapper.cs
- HttpWebRequest.cs
- GridErrorDlg.cs
- ConstructorExpr.cs
- JsonReader.cs
- Visitor.cs
- DbProviderFactoriesConfigurationHandler.cs
- BuildProviderUtils.cs
- DataServiceResponse.cs
- LabelTarget.cs
- FloaterBaseParaClient.cs
- StreamReader.cs
- ImageList.cs
- RewritingSimplifier.cs
- VoiceSynthesis.cs
- MultiByteCodec.cs
- DataBindingCollection.cs
- SourceSwitch.cs
- StringFormat.cs
- LiteralTextParser.cs
- WinFormsComponentEditor.cs
- ellipse.cs
- SqlConnectionPoolGroupProviderInfo.cs
- DetailsViewDeletedEventArgs.cs
- ProgressChangedEventArgs.cs
- ContentPosition.cs
- GPPOINTF.cs
- FrameworkObject.cs
- DetailsViewRow.cs
- WindowsRebar.cs
- LoginView.cs
- MatchingStyle.cs
- CngKeyCreationParameters.cs
- AsyncPostBackErrorEventArgs.cs
- DataRecordInternal.cs
- SqlBuilder.cs
- TableRowGroup.cs
- PropertyDescriptorCollection.cs
- RequestCachePolicyConverter.cs
- DrawListViewColumnHeaderEventArgs.cs
- UserControlBuildProvider.cs
- dtdvalidator.cs
- NGCPageContentCollectionSerializerAsync.cs
- validation.cs
- WorkflowOperationFault.cs
- IndentTextWriter.cs
- PresentationTraceSources.cs
- WorkflowControlClient.cs
- GridViewRowEventArgs.cs
- DocumentGridPage.cs
- CompositeControl.cs
- HttpCookiesSection.cs
- Visual.cs
- AbsoluteQuery.cs
- SimpleRecyclingCache.cs
- PolyBezierSegment.cs
- XXXInfos.cs
- ReferencedType.cs
- EntityDataSourceChangingEventArgs.cs
- CultureTableRecord.cs
- CodeLinePragma.cs
- AuthenticationManager.cs
- Effect.cs
- ViewManager.cs
- WebPartMovingEventArgs.cs
- ZoneButton.cs
- LabelLiteral.cs
- Exceptions.cs
- ButtonAutomationPeer.cs