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
- ScriptIgnoreAttribute.cs
- TaskFormBase.cs
- OperationParameterInfoCollection.cs
- FontEditor.cs
- IdentifierCreationService.cs
- HttpTransportBindingElement.cs
- PhoneCallDesigner.cs
- UpdatableWrapper.cs
- TemplateAction.cs
- FillErrorEventArgs.cs
- FormViewInsertEventArgs.cs
- Geometry.cs
- SwitchElementsCollection.cs
- Quaternion.cs
- RsaKeyIdentifierClause.cs
- Monitor.cs
- XmlUtf8RawTextWriter.cs
- ArrangedElementCollection.cs
- Script.cs
- ClickablePoint.cs
- WebPartManager.cs
- KnownTypes.cs
- X509CertificateChain.cs
- InputQueue.cs
- SystemParameters.cs
- AttachmentService.cs
- ApplicationSecurityManager.cs
- ProcessModelInfo.cs
- ValueType.cs
- MembershipAdapter.cs
- BitmapPalettes.cs
- Registry.cs
- System.Data.OracleClient_BID.cs
- DiscoveryReference.cs
- PackageController.cs
- Hex.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- CompareInfo.cs
- TemplatePropertyEntry.cs
- Converter.cs
- ButtonPopupAdapter.cs
- SpotLight.cs
- GroupBoxAutomationPeer.cs
- _CookieModule.cs
- Int64Converter.cs
- Root.cs
- LingerOption.cs
- DataGrid.cs
- LocalFileSettingsProvider.cs
- Win32SafeHandles.cs
- Visual.cs
- ParallelTimeline.cs
- LabelEditEvent.cs
- Clock.cs
- CheckBoxAutomationPeer.cs
- UnionCodeGroup.cs
- GradientBrush.cs
- ByteRangeDownloader.cs
- XmlSerializer.cs
- InputMethodStateChangeEventArgs.cs
- XslNumber.cs
- FrameworkTemplate.cs
- DefinitionUpdate.cs
- RelationshipEntry.cs
- CapacityStreamGeometryContext.cs
- DisplayNameAttribute.cs
- DataPagerFieldCommandEventArgs.cs
- InvariantComparer.cs
- Verify.cs
- RuntimeHandles.cs
- SqlUDTStorage.cs
- Native.cs
- NotifyIcon.cs
- Baml2006KeyRecord.cs
- Closure.cs
- Annotation.cs
- RSAProtectedConfigurationProvider.cs
- ControlUtil.cs
- DataListCommandEventArgs.cs
- TypedReference.cs
- SqlUtils.cs
- WebSysDefaultValueAttribute.cs
- DateTimeConverter2.cs
- ExtensionFile.cs
- ToolStripItemBehavior.cs
- SchemaElement.cs
- MaskedTextBoxTextEditor.cs
- PathParser.cs
- SrgsSubset.cs
- BrowserTree.cs
- HttpVersion.cs
- MenuItemCollection.cs
- DataFormat.cs
- XmlReader.cs
- OleDbPropertySetGuid.cs
- AliasExpr.cs
- PersistChildrenAttribute.cs
- VariantWrapper.cs
- ListParaClient.cs
- Item.cs