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
- PiiTraceSource.cs
- ConfigurationException.cs
- VirtualPathProvider.cs
- ApplySecurityAndSendAsyncResult.cs
- WebBrowserHelper.cs
- PropertyPath.cs
- PersonalizationStateQuery.cs
- MouseWheelEventArgs.cs
- _SSPIWrapper.cs
- InputBindingCollection.cs
- KnowledgeBase.cs
- QueryStringHandler.cs
- GeometryHitTestResult.cs
- InvalidCommandTreeException.cs
- CultureInfoConverter.cs
- Scene3D.cs
- EntityEntry.cs
- XmlAttributeCollection.cs
- NeedSkipTokenVisitor.cs
- UnaryNode.cs
- CompressedStack.cs
- ObjectSecurity.cs
- ChannelAcceptor.cs
- BitmapMetadataEnumerator.cs
- Scripts.cs
- NavigatorOutput.cs
- WebPartConnectionsCloseVerb.cs
- FloatMinMaxAggregationOperator.cs
- ConsoleCancelEventArgs.cs
- RegexWorker.cs
- FlowDocumentPageViewerAutomationPeer.cs
- _SpnDictionary.cs
- SchemaNames.cs
- Hashtable.cs
- KeyValuePairs.cs
- InputScopeNameConverter.cs
- Resources.Designer.cs
- ArrangedElement.cs
- ObjectCacheSettings.cs
- Cell.cs
- CircleHotSpot.cs
- SubMenuStyle.cs
- ObjectQuery_EntitySqlExtensions.cs
- _ListenerAsyncResult.cs
- AddInActivator.cs
- XPathScanner.cs
- DetailsViewModeEventArgs.cs
- TryLoadRunnableWorkflowCommand.cs
- COAUTHIDENTITY.cs
- SecurityPolicySection.cs
- DbConnectionStringCommon.cs
- GeneralTransform.cs
- HtmlEncodedRawTextWriter.cs
- SoundPlayer.cs
- StandardOleMarshalObject.cs
- RelationshipDetailsRow.cs
- DBSchemaTable.cs
- SqlDataSourceConnectionPanel.cs
- PeerNameRegistration.cs
- GridViewCommandEventArgs.cs
- PropertyGroupDescription.cs
- PopupRoot.cs
- TypefaceMap.cs
- CodeStatementCollection.cs
- XsltLoader.cs
- Shared.cs
- WebPageTraceListener.cs
- TableLayoutPanelCellPosition.cs
- SafeReversePInvokeHandle.cs
- SecurityElement.cs
- SessionIDManager.cs
- ReadOnlyDataSource.cs
- RelationshipManager.cs
- RawUIStateInputReport.cs
- WindowsIPAddress.cs
- Font.cs
- SafeHandles.cs
- TypePresenter.xaml.cs
- DataSourceXmlSerializationAttribute.cs
- FileUpload.cs
- StringKeyFrameCollection.cs
- PropertyConverter.cs
- ProcessThreadCollection.cs
- XmlIlGenerator.cs
- DataGridLinkButton.cs
- ApplicationBuildProvider.cs
- DocumentSequence.cs
- MultipleViewProviderWrapper.cs
- Scanner.cs
- AsyncInvokeOperation.cs
- CodeCatchClause.cs
- XmlName.cs
- XamlInterfaces.cs
- ImageAttributes.cs
- MemberListBinding.cs
- DiscardableAttribute.cs
- ColumnMapTranslator.cs
- BinaryReader.cs
- XsltException.cs
- Context.cs