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
- OperatingSystem.cs
- MatrixAnimationUsingPath.cs
- TextBoxAutoCompleteSourceConverter.cs
- ValueOfAction.cs
- SemaphoreSecurity.cs
- CodeArgumentReferenceExpression.cs
- WebPartUtil.cs
- ToolStripProgressBar.cs
- MultiTouchSystemGestureLogic.cs
- AmbiguousMatchException.cs
- GroupDescription.cs
- AnnotationService.cs
- WorkflowPersistenceService.cs
- ListControl.cs
- XNodeNavigator.cs
- PageAdapter.cs
- SynchronizedPool.cs
- Closure.cs
- ExpressionCopier.cs
- NetworkInformationPermission.cs
- DiscoveryClientProtocol.cs
- ConfigurationElement.cs
- ContextMenu.cs
- InputProviderSite.cs
- OAVariantLib.cs
- CategoryList.cs
- SqlNotificationEventArgs.cs
- ReadOnlyNameValueCollection.cs
- PolicyManager.cs
- DataTransferEventArgs.cs
- ExceptionDetail.cs
- DoubleCollectionConverter.cs
- ObjectContext.cs
- TreePrinter.cs
- DataGridView.cs
- Executor.cs
- Context.cs
- Token.cs
- SchemaAttDef.cs
- PrtCap_Public_Simple.cs
- basecomparevalidator.cs
- ErrorLog.cs
- DesignerDataStoredProcedure.cs
- ControlDesigner.cs
- MetabaseServerConfig.cs
- WebConfigurationHost.cs
- DetailsViewPageEventArgs.cs
- ControlFilterExpression.cs
- EncodingInfo.cs
- ApplicationActivator.cs
- WebPartConnectionsCloseVerb.cs
- SqlClientPermission.cs
- AuthenticatingEventArgs.cs
- ListChangedEventArgs.cs
- MD5CryptoServiceProvider.cs
- GeometryHitTestParameters.cs
- QueryCacheKey.cs
- httpserverutility.cs
- ExitEventArgs.cs
- Converter.cs
- SystemResourceKey.cs
- HttpResponse.cs
- HttpResponse.cs
- RemoteWebConfigurationHostServer.cs
- ResolveMatchesMessage11.cs
- FilterElement.cs
- DelegateBodyWriter.cs
- XmlEncodedRawTextWriter.cs
- ExpressionWriter.cs
- jithelpers.cs
- Geometry.cs
- SqlConnectionManager.cs
- HyperLinkColumn.cs
- SqlRecordBuffer.cs
- BlockingCollection.cs
- AnnotationDocumentPaginator.cs
- DragDrop.cs
- AnnotationResourceCollection.cs
- WorkflowApplication.cs
- MonthCalendarDesigner.cs
- InputLanguageEventArgs.cs
- PropertyItemInternal.cs
- CompositeFontFamily.cs
- MetadataItemSerializer.cs
- ComplexPropertyEntry.cs
- TypeInitializationException.cs
- ChannelEndpointElement.cs
- ContractMethodInfo.cs
- OrderedParallelQuery.cs
- TableTextElementCollectionInternal.cs
- Rijndael.cs
- EditingCoordinator.cs
- BuilderInfo.cs
- FieldAccessException.cs
- SessionStateItemCollection.cs
- SchemaRegistration.cs
- ScriptManager.cs
- FixedDocument.cs
- SizeConverter.cs
- ExceptionValidationRule.cs