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
- SecurityChannelListener.cs
- CurrencyWrapper.cs
- WindowsStartMenu.cs
- CompositeDispatchFormatter.cs
- RegexParser.cs
- GeneralTransformGroup.cs
- Form.cs
- VisualBrush.cs
- DragDeltaEventArgs.cs
- DataGridViewTopLeftHeaderCell.cs
- RichTextBox.cs
- BindingEditor.xaml.cs
- QueryOperationResponseOfT.cs
- FormViewRow.cs
- Executor.cs
- PersianCalendar.cs
- DiscreteKeyFrames.cs
- BamlWriter.cs
- XPathAxisIterator.cs
- WinInetCache.cs
- Evaluator.cs
- SystemIPGlobalStatistics.cs
- ObjectDataSourceDesigner.cs
- TypeUsage.cs
- PersonalizationDictionary.cs
- sqlnorm.cs
- BrowsableAttribute.cs
- CmsInterop.cs
- RubberbandSelector.cs
- XmlILStorageConverter.cs
- PropertyMetadata.cs
- CssStyleCollection.cs
- PropertyItem.cs
- NamedPipeProcessProtocolHandler.cs
- PeekCompletedEventArgs.cs
- WebPartMenuStyle.cs
- SafeNativeMemoryHandle.cs
- JsonDeserializer.cs
- RequestNavigateEventArgs.cs
- Atom10FormatterFactory.cs
- CellCreator.cs
- EntitySqlQueryCacheKey.cs
- DecoderFallback.cs
- StylusPoint.cs
- GroupDescription.cs
- RegistrySecurity.cs
- SimpleTextLine.cs
- BitmapMetadataEnumerator.cs
- SemanticKeyElement.cs
- RotateTransform3D.cs
- ReversePositionQuery.cs
- CombinedGeometry.cs
- IUnknownConstantAttribute.cs
- GridViewDeleteEventArgs.cs
- ToolStripDropDownClosingEventArgs.cs
- AnimationClock.cs
- PixelShader.cs
- ItemList.cs
- HostedNamedPipeTransportManager.cs
- BoolLiteral.cs
- LiteralSubsegment.cs
- Link.cs
- StructureChangedEventArgs.cs
- ObjRef.cs
- ItemDragEvent.cs
- MultipleViewPattern.cs
- EmptyControlCollection.cs
- DebuggerAttributes.cs
- PropagatorResult.cs
- NavigatingCancelEventArgs.cs
- XmlException.cs
- ColorConvertedBitmapExtension.cs
- WebPartConnectionsCancelVerb.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- DataTableMappingCollection.cs
- ComEventsMethod.cs
- SessionPageStatePersister.cs
- Message.cs
- WebContext.cs
- SafeSecurityHandles.cs
- CreateUserWizardStep.cs
- RsaSecurityToken.cs
- Rule.cs
- ContractInstanceProvider.cs
- TimelineClockCollection.cs
- XmlQualifiedName.cs
- Tracking.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ValueTypeFixupInfo.cs
- DiscoveryProxy.cs
- MethodAccessException.cs
- InputGestureCollection.cs
- MemberInfoSerializationHolder.cs
- ControlCollection.cs
- RelatedImageListAttribute.cs
- WindowsGraphics.cs
- WeakHashtable.cs
- InputLanguageCollection.cs
- CheckBox.cs
- TCPClient.cs