Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / NetworkInformation / TeredoHelper.cs / 1305376 / TeredoHelper.cs
using System.Collections.Generic; using System.ComponentModel; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Security; using System.Threading; namespace System.Net.NetworkInformation { // This class wraps the native API NotifyStableUnicastIpAddressTable. The native function's behavior is: // // 1. If the address table is already stable, it returns ERROR_SUCCESS and a Mib table handle that we must free. // The passed-in callback will never be called, and the cancelHandle is set to NULL. // // 2. If the address table is not stable, it returns ERROR_IO_PENDING. The table handle is set to NULL, // and the cancelHandle is set to a valid handle. The callback will be called (on a native threadpool thread) // EVERY TIME the address table becomes stable until CancelMibChangeNotify2 is called on the cancelHandle // (via cancelHandle.Dispose()). // // CancelMibChangeNotify2 guarantees that, by the time it returns, all calls to the callback will be complete // and that no new calls to the callback will be issued. // // The major concerns of the class are: 1) making sure none of the managed objects needed to handle a native // callback are GC'd before the callback, and 2) making sure no native callbacks will try to call into an unloaded // AppDomain. [SuppressUnmanagedCodeSecurity] internal class TeredoHelper { // Holds a list of all pending calls to NotifyStableUnicastIpAddressTable. Also used as a lock to protect its // contents and impendingAppDomainUnload. private static ListpendingNotifications; // Flag that gets set when an AppDomain unload is imminent. When this is set, no more calls to // NotifyStableUnicastIpAddressTable are allowed. private static bool impendingAppDomainUnload; private readonly Action
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventDescriptor.cs
- HealthMonitoringSection.cs
- MatrixUtil.cs
- ScrollData.cs
- ClientTarget.cs
- DataColumnChangeEvent.cs
- RowSpanVector.cs
- ConnectionPoint.cs
- CompiledQueryCacheKey.cs
- ConstraintStruct.cs
- GiveFeedbackEventArgs.cs
- FontWeightConverter.cs
- FilteredAttributeCollection.cs
- SocketException.cs
- ColorContextHelper.cs
- RuleRefElement.cs
- ProfileInfo.cs
- FormViewUpdateEventArgs.cs
- xmlfixedPageInfo.cs
- WindowsGraphicsWrapper.cs
- Misc.cs
- FileLogRecordEnumerator.cs
- KoreanLunisolarCalendar.cs
- TraceSwitch.cs
- ScriptReferenceEventArgs.cs
- _UncName.cs
- dsa.cs
- IDQuery.cs
- SecurityContextSecurityTokenAuthenticator.cs
- FrameworkObject.cs
- MainMenu.cs
- ReadOnlyHierarchicalDataSourceView.cs
- CorruptingExceptionCommon.cs
- Misc.cs
- BitmapEffectGeneralTransform.cs
- ModelItemImpl.cs
- ListViewEditEventArgs.cs
- ZeroOpNode.cs
- MetafileHeader.cs
- QilXmlReader.cs
- GridView.cs
- DataControlCommands.cs
- HttpEncoder.cs
- PersistenceIOParticipant.cs
- EmbeddedObject.cs
- ipaddressinformationcollection.cs
- XamlPoint3DCollectionSerializer.cs
- QueryContinueDragEvent.cs
- DataGridViewBand.cs
- TextFormatterContext.cs
- CompiledRegexRunner.cs
- Enum.cs
- ContextMenuService.cs
- WindowsToolbar.cs
- PassportIdentity.cs
- Publisher.cs
- QilInvoke.cs
- ObjectNavigationPropertyMapping.cs
- NetDispatcherFaultException.cs
- XmlTextReaderImpl.cs
- PersonalizationAdministration.cs
- FixedPosition.cs
- FrameworkContentElementAutomationPeer.cs
- MaskedTextBoxDesignerActionList.cs
- OpCellTreeNode.cs
- ToolStripOverflowButton.cs
- IncrementalHitTester.cs
- DropShadowBitmapEffect.cs
- EntityTypeEmitter.cs
- OdbcConnection.cs
- QilXmlReader.cs
- WorkflowMarkupSerializer.cs
- ImmComposition.cs
- shaperfactoryquerycachekey.cs
- AuthenticationModuleElement.cs
- Object.cs
- RemotingConfiguration.cs
- TextEditorParagraphs.cs
- StickyNote.cs
- XmlC14NWriter.cs
- Activity.cs
- FastPropertyAccessor.cs
- SqlException.cs
- printdlgexmarshaler.cs
- SurrogateEncoder.cs
- StructuralCache.cs
- JavascriptCallbackResponseProperty.cs
- PageContent.cs
- OpacityConverter.cs
- BitmapEffect.cs
- IList.cs
- COM2FontConverter.cs
- ApplicationException.cs
- DataPagerFieldCommandEventArgs.cs
- CodeBinaryOperatorExpression.cs
- CodeSubDirectory.cs
- XmlSchemaExternal.cs
- ProgressBar.cs
- HttpConfigurationContext.cs
- OneToOneMappingSerializer.cs