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
- MenuBindingsEditorForm.cs
- FormViewDeleteEventArgs.cs
- HttpHeaderCollection.cs
- SqlDataSourceConfigureSortForm.cs
- Section.cs
- XamlReaderConstants.cs
- XPathDescendantIterator.cs
- DataGridViewHeaderCell.cs
- QueryOutputWriter.cs
- DataGridTextBoxColumn.cs
- ExtendLockAsyncResult.cs
- UrlAuthFailedErrorFormatter.cs
- HtmlContainerControl.cs
- SqlBulkCopy.cs
- control.ime.cs
- MetabaseSettingsIis7.cs
- ResourceDisplayNameAttribute.cs
- GeneralTransformGroup.cs
- FontStretchConverter.cs
- PartialCachingControl.cs
- ShutDownListener.cs
- BaseAppDomainProtocolHandler.cs
- TextEffect.cs
- SecurityKeyType.cs
- Certificate.cs
- SelectionProviderWrapper.cs
- ComponentManagerBroker.cs
- ParagraphResult.cs
- RuntimeConfigLKG.cs
- HostDesigntimeLicenseContext.cs
- Pen.cs
- Parameter.cs
- ReaderOutput.cs
- ClientApiGenerator.cs
- DataControlHelper.cs
- NumberEdit.cs
- SourceChangedEventArgs.cs
- ComPlusAuthorization.cs
- COM2TypeInfoProcessor.cs
- CancelEventArgs.cs
- EntityModelSchemaGenerator.cs
- InheritedPropertyChangedEventArgs.cs
- TheQuery.cs
- HttpDebugHandler.cs
- ValidatorAttribute.cs
- complextypematerializer.cs
- KeyFrames.cs
- ClockController.cs
- Ops.cs
- AsymmetricKeyExchangeDeformatter.cs
- AliasGenerator.cs
- MetadataItemEmitter.cs
- VirtualizedItemPattern.cs
- HtmlPageAdapter.cs
- ManagedWndProcTracker.cs
- panel.cs
- SessionStateModule.cs
- XsdBuildProvider.cs
- ListenerElementsCollection.cs
- ProcessingInstructionAction.cs
- BufferedGraphicsManager.cs
- UnauthorizedAccessException.cs
- GradientStop.cs
- MessageSecurityOverHttp.cs
- cookiecollection.cs
- FileVersion.cs
- SecurityTokenTypes.cs
- TrackingLocationCollection.cs
- ParamArrayAttribute.cs
- XmlSignatureProperties.cs
- BinHexDecoder.cs
- ImageKeyConverter.cs
- SqlCacheDependencyDatabaseCollection.cs
- XamlHostingConfiguration.cs
- TdsParser.cs
- XmlSchemaSubstitutionGroup.cs
- PolyQuadraticBezierSegment.cs
- HierarchicalDataSourceControl.cs
- DBCommandBuilder.cs
- EncoderNLS.cs
- NavigationProperty.cs
- Freezable.cs
- FilterElement.cs
- ClientOptions.cs
- MetadataItem_Static.cs
- DispatcherSynchronizationContext.cs
- ContainerControl.cs
- ScriptMethodAttribute.cs
- RegexTree.cs
- XmlNodeList.cs
- ChildTable.cs
- HWStack.cs
- PolicyStatement.cs
- TextParagraphProperties.cs
- DtdParser.cs
- DirectoryObjectSecurity.cs
- XmlSchemaObjectCollection.cs
- _ListenerResponseStream.cs
- HttpWriter.cs
- KeyboardDevice.cs