Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / InteropServices / RuntimeEnvironment.cs / 1305376 / RuntimeEnvironment.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================================== ** ** Class: RuntimeEnvironment ** ** ** Purpose: Runtime information ** ** =============================================================================*/ using System; using System.Text; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Reflection; using Microsoft.Win32; using System.Runtime.Versioning; using StackCrawlMark = System.Threading.StackCrawlMark; namespace System.Runtime.InteropServices { [System.Runtime.InteropServices.ComVisible(true)] #if FEATURE_CORECLR static #endif public class RuntimeEnvironment { #if !FEATURE_CORECLR // This should have been a static class, but wasn't as of v3.5. Clearly, this is // broken. We'll keep this in V4 for binary compat, but marked obsolete as error // so migrated source code gets fixed. On Silverlight, this type exists but is // not public. [Obsolete("Do not create instances of the RuntimeEnvironment class. Call the static methods directly on this type instead", true)] public RuntimeEnvironment() { // Should not have been instantiable - here for binary compatibility in V4. } #endif [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetModuleFileName(); [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetDeveloperPath(); [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetHostBindingFile(); #if !FEATURE_CORECLR [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.None)] [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)] [SuppressUnmanagedCodeSecurity] internal static extern void _GetSystemVersion(StringHandleOnStack retVer); #endif //!FEATURE_CORECLR public static bool FromGlobalAccessCache(Assembly a) { return a.GlobalAssemblyCache; } [System.Security.SecuritySafeCritical] // public member [MethodImpl (MethodImplOptions.NoInlining)] public static String GetSystemVersion() { #if FEATURE_CORECLR return Assembly.GetExecutingAssembly().ImageRuntimeVersion; #else // FEATURE_CORECLR String ver = null; _GetSystemVersion(JitHelpers.GetStringHandleOnStack(ref ver)); return ver; #endif // FEATURE_CORECLR } [System.Security.SecuritySafeCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public static String GetRuntimeDirectory() { String dir = GetRuntimeDirectoryImpl(); new FileIOPermission(FileIOPermissionAccess.PathDiscovery, dir).Demand(); return dir; } [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetRuntimeDirectoryImpl(); // Returns the system ConfigurationFile public static String SystemConfigurationFile { [System.Security.SecuritySafeCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] get { StringBuilder sb = new StringBuilder(Path.MAX_PATH); sb.Append(GetRuntimeDirectory()); sb.Append(AppDomainSetup.RuntimeConfigurationFile); String path = sb.ToString(); // Do security check new FileIOPermission(FileIOPermissionAccess.PathDiscovery, path).Demand(); return path; } } #if FEATURE_COMINTEROP [System.Security.SecurityCritical] [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)] [SuppressUnmanagedCodeSecurity] private static extern IntPtr GetRuntimeInterfaceImpl( [In, MarshalAs(UnmanagedType.LPStruct)] Guid clsid, [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid); // // This function does the equivalent of calling GetInterface(clsid, riid) on the // ICLRRuntimeInfo representing this runtime. See MetaHost.idl for a list of // CLSIDs and IIDs supported by this method. // // Returns unmanaged pointer to requested interface on success. Throws // COMException with failed HR if there is a QI failure. // [System.Security.SecurityCritical] // do not allow partial trust callers [ComVisible(false)] [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] public static IntPtr GetRuntimeInterfaceAsIntPtr(Guid clsid, Guid riid) { return GetRuntimeInterfaceImpl(clsid, riid); } // // This function does the equivalent of calling GetInterface(clsid, riid) on the // ICLRRuntimeInfo representing this runtime. See MetaHost.idl for a list of // CLSIDs and IIDs supported by this method. // // Returns an RCW to requested interface on success. Throws // COMException with failed HR if there is a QI failure. // [System.Security.SecurityCritical] // do not allow partial trust callers [ComVisible(false)] [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] public static object GetRuntimeInterfaceAsObject(Guid clsid, Guid riid) { IntPtr p = IntPtr.Zero; try { p = GetRuntimeInterfaceImpl(clsid, riid); return Marshal.GetObjectForIUnknown(p); } finally { if(p != IntPtr.Zero) { Marshal.Release(p); } } } #endif // FEATURE_COMINTEROP } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================================== ** ** Class: RuntimeEnvironment ** ** ** Purpose: Runtime information ** ** =============================================================================*/ using System; using System.Text; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Reflection; using Microsoft.Win32; using System.Runtime.Versioning; using StackCrawlMark = System.Threading.StackCrawlMark; namespace System.Runtime.InteropServices { [System.Runtime.InteropServices.ComVisible(true)] #if FEATURE_CORECLR static #endif public class RuntimeEnvironment { #if !FEATURE_CORECLR // This should have been a static class, but wasn't as of v3.5. Clearly, this is // broken. We'll keep this in V4 for binary compat, but marked obsolete as error // so migrated source code gets fixed. On Silverlight, this type exists but is // not public. [Obsolete("Do not create instances of the RuntimeEnvironment class. Call the static methods directly on this type instead", true)] public RuntimeEnvironment() { // Should not have been instantiable - here for binary compatibility in V4. } #endif [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetModuleFileName(); [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetDeveloperPath(); [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetHostBindingFile(); #if !FEATURE_CORECLR [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.None)] [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)] [SuppressUnmanagedCodeSecurity] internal static extern void _GetSystemVersion(StringHandleOnStack retVer); #endif //!FEATURE_CORECLR public static bool FromGlobalAccessCache(Assembly a) { return a.GlobalAssemblyCache; } [System.Security.SecuritySafeCritical] // public member [MethodImpl (MethodImplOptions.NoInlining)] public static String GetSystemVersion() { #if FEATURE_CORECLR return Assembly.GetExecutingAssembly().ImageRuntimeVersion; #else // FEATURE_CORECLR String ver = null; _GetSystemVersion(JitHelpers.GetStringHandleOnStack(ref ver)); return ver; #endif // FEATURE_CORECLR } [System.Security.SecuritySafeCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public static String GetRuntimeDirectory() { String dir = GetRuntimeDirectoryImpl(); new FileIOPermission(FileIOPermissionAccess.PathDiscovery, dir).Demand(); return dir; } [System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern String GetRuntimeDirectoryImpl(); // Returns the system ConfigurationFile public static String SystemConfigurationFile { [System.Security.SecuritySafeCritical] // auto-generated [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] get { StringBuilder sb = new StringBuilder(Path.MAX_PATH); sb.Append(GetRuntimeDirectory()); sb.Append(AppDomainSetup.RuntimeConfigurationFile); String path = sb.ToString(); // Do security check new FileIOPermission(FileIOPermissionAccess.PathDiscovery, path).Demand(); return path; } } #if FEATURE_COMINTEROP [System.Security.SecurityCritical] [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)] [SuppressUnmanagedCodeSecurity] private static extern IntPtr GetRuntimeInterfaceImpl( [In, MarshalAs(UnmanagedType.LPStruct)] Guid clsid, [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid); // // This function does the equivalent of calling GetInterface(clsid, riid) on the // ICLRRuntimeInfo representing this runtime. See MetaHost.idl for a list of // CLSIDs and IIDs supported by this method. // // Returns unmanaged pointer to requested interface on success. Throws // COMException with failed HR if there is a QI failure. // [System.Security.SecurityCritical] // do not allow partial trust callers [ComVisible(false)] [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] public static IntPtr GetRuntimeInterfaceAsIntPtr(Guid clsid, Guid riid) { return GetRuntimeInterfaceImpl(clsid, riid); } // // This function does the equivalent of calling GetInterface(clsid, riid) on the // ICLRRuntimeInfo representing this runtime. See MetaHost.idl for a list of // CLSIDs and IIDs supported by this method. // // Returns an RCW to requested interface on success. Throws // COMException with failed HR if there is a QI failure. // [System.Security.SecurityCritical] // do not allow partial trust callers [ComVisible(false)] [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] public static object GetRuntimeInterfaceAsObject(Guid clsid, Guid riid) { IntPtr p = IntPtr.Zero; try { p = GetRuntimeInterfaceImpl(clsid, riid); return Marshal.GetObjectForIUnknown(p); } finally { if(p != IntPtr.Zero) { Marshal.Release(p); } } } #endif // FEATURE_COMINTEROP } } // 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
- CodeDirectoryCompiler.cs
- TableCellAutomationPeer.cs
- OSFeature.cs
- FederatedMessageSecurityOverHttp.cs
- Util.cs
- CodeSubDirectoriesCollection.cs
- TreeViewDataItemAutomationPeer.cs
- BindUriHelper.cs
- ScriptingJsonSerializationSection.cs
- SimpleHandlerBuildProvider.cs
- InvariantComparer.cs
- TiffBitmapDecoder.cs
- ItemChangedEventArgs.cs
- DataTableClearEvent.cs
- KeyFrames.cs
- IdentityValidationException.cs
- CompilerParameters.cs
- InputProviderSite.cs
- TableNameAttribute.cs
- ExpressionLexer.cs
- CodeDirectionExpression.cs
- ViewEventArgs.cs
- EmissiveMaterial.cs
- KnownTypes.cs
- TraceHwndHost.cs
- HttpValueCollection.cs
- IPEndPoint.cs
- ContextMenu.cs
- WriteableBitmap.cs
- ImportedNamespaceContextItem.cs
- PageParserFilter.cs
- ADMembershipProvider.cs
- DecimalAnimationUsingKeyFrames.cs
- ProvidersHelper.cs
- PrivilegedConfigurationManager.cs
- DataColumnMapping.cs
- SymbolType.cs
- AncestorChangedEventArgs.cs
- InlineCategoriesDocument.cs
- DataSourceGeneratorException.cs
- AttributeEmitter.cs
- MenuAdapter.cs
- CapabilitiesSection.cs
- BigInt.cs
- CalendarDateRange.cs
- InkCanvasAutomationPeer.cs
- HandlerBase.cs
- BasicHttpMessageCredentialType.cs
- BaseCodePageEncoding.cs
- ByteArrayHelperWithString.cs
- FileSecurity.cs
- ScrollBar.cs
- IisTraceWebEventProvider.cs
- ServiceThrottlingElement.cs
- AsnEncodedData.cs
- XmlCDATASection.cs
- CrossAppDomainChannel.cs
- TextPatternIdentifiers.cs
- TimeManager.cs
- DispatcherExceptionEventArgs.cs
- ObjectStateManagerMetadata.cs
- SmiSettersStream.cs
- BinaryFormatterWriter.cs
- HttpPostLocalhostServerProtocol.cs
- UserUseLicenseDictionaryLoader.cs
- ConstraintEnumerator.cs
- PrintPreviewGraphics.cs
- OutputScope.cs
- ImageSourceConverter.cs
- CSharpCodeProvider.cs
- Parser.cs
- PairComparer.cs
- Duration.cs
- ColorConvertedBitmap.cs
- SiteOfOriginPart.cs
- ZeroOpNode.cs
- SQLUtility.cs
- TimersDescriptionAttribute.cs
- PageRanges.cs
- TextRenderer.cs
- ToolBar.cs
- TypeDescriptionProvider.cs
- PackWebResponse.cs
- WindowsHyperlink.cs
- DeobfuscatingStream.cs
- BitmapSource.cs
- ParseElement.cs
- Sql8ExpressionRewriter.cs
- EventSinkHelperWriter.cs
- ValueTypeFixupInfo.cs
- WebServiceEnumData.cs
- FileDetails.cs
- SiteMapNode.cs
- AncestorChangedEventArgs.cs
- XmlSchemaExporter.cs
- OutputCacheModule.cs
- TypeConverters.cs
- ScopedMessagePartSpecification.cs
- WhiteSpaceTrimStringConverter.cs
- ActivityMarkupSerializationProvider.cs