Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / System.ServiceModel.Activation / System / ServiceModel / Activation / Interop / SafeNativeMethods.cs / 1305376 / SafeNativeMethods.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Activation.Interop { using System; using System.Security; using System.Runtime.InteropServices; using System.Security.Principal; using System.Runtime.Versioning; using System.Runtime; [SuppressUnmanagedCodeSecurity] static class SafeNativeMethods { public const int ERROR_NO_TOKEN = 1008; const string ADVAPI32 = "advapi32.dll"; const string KERNEL32 = "kernel32.dll"; [DllImport(ADVAPI32, SetLastError = true, EntryPoint = "OpenThreadToken")] [ResourceExposure(ResourceScope.None)] static extern bool OpenThreadTokenCritical( [In] IntPtr ThreadHandle, [In] TokenAccessLevels DesiredAccess, [In] bool OpenAsSelf, [Out] out SafeCloseHandleCritical TokenHandle); [DllImport(KERNEL32, SetLastError = true)] [ResourceExposure(ResourceScope.None)] static extern IntPtr GetCurrentThread(); [Fx.Tag.SecurityNote(Critical = "Calls two safe native methods: GetCurrentThread and OpenThreadToken." + "Marshal.GetLastWin32Error captures current thread token in a SecurityCritical field.")] [SecurityCritical] internal static bool OpenCurrentThreadTokenCritical(TokenAccessLevels desiredAccess, bool openAsSelf, out SafeCloseHandleCritical tokenHandle, out int error) { bool result = OpenThreadTokenCritical(GetCurrentThread(), desiredAccess, openAsSelf, out tokenHandle); error = Marshal.GetLastWin32Error(); return result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Activation.Interop { using System; using System.Security; using System.Runtime.InteropServices; using System.Security.Principal; using System.Runtime.Versioning; using System.Runtime; [SuppressUnmanagedCodeSecurity] static class SafeNativeMethods { public const int ERROR_NO_TOKEN = 1008; const string ADVAPI32 = "advapi32.dll"; const string KERNEL32 = "kernel32.dll"; [DllImport(ADVAPI32, SetLastError = true, EntryPoint = "OpenThreadToken")] [ResourceExposure(ResourceScope.None)] static extern bool OpenThreadTokenCritical( [In] IntPtr ThreadHandle, [In] TokenAccessLevels DesiredAccess, [In] bool OpenAsSelf, [Out] out SafeCloseHandleCritical TokenHandle); [DllImport(KERNEL32, SetLastError = true)] [ResourceExposure(ResourceScope.None)] static extern IntPtr GetCurrentThread(); [Fx.Tag.SecurityNote(Critical = "Calls two safe native methods: GetCurrentThread and OpenThreadToken." + "Marshal.GetLastWin32Error captures current thread token in a SecurityCritical field.")] [SecurityCritical] internal static bool OpenCurrentThreadTokenCritical(TokenAccessLevels desiredAccess, bool openAsSelf, out SafeCloseHandleCritical tokenHandle, out int error) { bool result = OpenThreadTokenCritical(GetCurrentThread(), desiredAccess, openAsSelf, out tokenHandle); error = Marshal.GetLastWin32Error(); return result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HtmlHead.cs
- SvcMapFile.cs
- DiagnosticStrings.cs
- BitFlagsGenerator.cs
- Mutex.cs
- HyperLinkField.cs
- MemberInitExpression.cs
- CookieHandler.cs
- DescriptionAttribute.cs
- ReturnType.cs
- AutomationEvent.cs
- BindableTemplateBuilder.cs
- InstanceCreationEditor.cs
- Clipboard.cs
- SafeEventLogWriteHandle.cs
- DataGridHyperlinkColumn.cs
- CollectionChangeEventArgs.cs
- ToolStripPanelCell.cs
- HandlerWithFactory.cs
- GPPOINT.cs
- Vector3DAnimationBase.cs
- ControlType.cs
- Int64AnimationUsingKeyFrames.cs
- WorkflowPageSetupDialog.cs
- XamlSerializationHelper.cs
- GridViewColumnCollection.cs
- OutputCacheSection.cs
- ListArgumentProvider.cs
- PrivateFontCollection.cs
- ResourceIDHelper.cs
- FontNamesConverter.cs
- CompiledELinqQueryState.cs
- SymbolDocumentGenerator.cs
- BinaryCommonClasses.cs
- MimeMapping.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- TCPClient.cs
- AndMessageFilter.cs
- XPathNode.cs
- ProtocolsSection.cs
- StructuralType.cs
- FreezableDefaultValueFactory.cs
- DataGridViewAutoSizeModeEventArgs.cs
- peersecurityelement.cs
- CompiledAction.cs
- FullTrustAssemblyCollection.cs
- SmtpNegotiateAuthenticationModule.cs
- XmlSchemaChoice.cs
- DataPagerFieldItem.cs
- TextCompositionManager.cs
- ExpressionParser.cs
- externdll.cs
- ParameterBuilder.cs
- EntityDataSource.cs
- MissingFieldException.cs
- NativeMethods.cs
- mediaclock.cs
- VectorCollection.cs
- ComplexBindingPropertiesAttribute.cs
- RecognizedPhrase.cs
- DefaultAsyncDataDispatcher.cs
- TagPrefixAttribute.cs
- VisualTreeFlattener.cs
- SerializationInfo.cs
- WorkBatch.cs
- BitmapEffectState.cs
- EmptyStringExpandableObjectConverter.cs
- NamespaceMapping.cs
- HelpProvider.cs
- IsolatedStorageFilePermission.cs
- Int64KeyFrameCollection.cs
- LockedActivityGlyph.cs
- TextModifier.cs
- BitmapEffectvisualstate.cs
- IBuiltInEvidence.cs
- ChannelPoolSettings.cs
- Thickness.cs
- EnumerableRowCollection.cs
- XmlSchemaComplexContentExtension.cs
- MetaForeignKeyColumn.cs
- PropertyGrid.cs
- PeerDuplexChannel.cs
- ADConnectionHelper.cs
- ClientScriptManager.cs
- _RegBlobWebProxyDataBuilder.cs
- OrderedDictionaryStateHelper.cs
- WebDescriptionAttribute.cs
- ColumnCollection.cs
- EntityTransaction.cs
- MappingException.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- IconHelper.cs
- HTTPNotFoundHandler.cs
- ScrollPattern.cs
- PreviewPrintController.cs
- WebEventTraceProvider.cs
- StreamGeometryContext.cs
- EventMappingSettingsCollection.cs
- PerformanceCounterPermissionEntry.cs
- HebrewCalendar.cs