SuppressUnmanagedCodeSecurityAttribute SuppressUnmanagedCodeSecurityAttribute SuppressUnmanagedCodeSecurityAttribute SuppressUnmanagedCodeSecurityAttribute Class

定義

スタック ウォークを使用せずにマネージド コードがアンマネージド コードを呼び出すことができるようにします。Allows managed code to call into unmanaged code without a stack walk. このクラスは継承できません。This class cannot be inherited.

public ref class SuppressUnmanagedCodeSecurityAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Interface | System.AttributeTargets.Delegate, AllowMultiple=true, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Interface, AllowMultiple=true, Inherited=false)]
public sealed class SuppressUnmanagedCodeSecurityAttribute : Attribute
type SuppressUnmanagedCodeSecurityAttribute = class
    inherit Attribute
Public NotInheritable Class SuppressUnmanagedCodeSecurityAttribute
Inherits Attribute
継承
SuppressUnmanagedCodeSecurityAttributeSuppressUnmanagedCodeSecurityAttributeSuppressUnmanagedCodeSecurityAttributeSuppressUnmanagedCodeSecurityAttribute
属性

注釈

注意事項

この属性を使用して、十分に注意します。Use this attribute with extreme care. 不適切な使用には、セキュリティ上の弱点を作成できます。Incorrect use can create security weaknesses.

この属性は、そのときに、実行時のセキュリティ チェックのパフォーマンスの低下を発生させずにネイティブ コードへの呼び出しをメソッドに適用できます。This attribute can be applied to methods that want to call into native code without incurring the performance loss of a run-time security check when doing so. 結果としてパフォーマンスが大幅に節約の実行時に、アンマネージ コードを呼び出すときに実行するスタック ウォークが省略されています。The stack walk performed when calling unmanaged code is omitted at run time, resulting in substantial performance savings. クラスでこの属性の使用が含まれているすべてのメソッドに適用します。Using this attribute in a class applies it to all contained methods.

一般に、マネージ コードは、(PInvoke または COM 相互運用をネイティブ コードに) で、アンマネージ コードを呼び出す、ときに必ずはの需要、UnmanagedCodeのアクセス権をすべての呼び出し元がこれを許可するために必要なアクセス許可を持っています。Generally, whenever managed code calls into unmanaged code (by PInvoke or COM interop into native code), there is a demand for the UnmanagedCode permission to ensure all callers have the necessary permission to allow this. この明示的な属性を適用すると、開発者は、実行時に要求を抑制できます。By applying this explicit attribute, developers can suppress the demand at run time. 開発者は、アンマネージ コードへの移行が他の方法で十分に保護されていることを確保するための責任を負う必要があります。The developer must take responsibility for assuring that the transition into unmanaged code is sufficiently protected by other means. 需要、UnmanagedCodeアクセス許可はでもリンク時に実行されます。The demand for the UnmanagedCode permission will still occur at link time. 場合、関数、呼び出しは、関数 B と、関数 B がでマークされたなどSuppressUnmanagedCodeSecurityAttribute関数 A のチェック対象となるアンマネージ ジャストイン タイムのコンパイル時に、実行時にそのコードのアクセス許可。For example, if function A calls function B and function B is marked with SuppressUnmanagedCodeSecurityAttribute, function A will be checked for unmanaged code permission during just-in-time compilation, but not subsequently during run time.

この属性は、効果的なは、PInvoke メソッド (または PInvoke メソッドを含むクラス) に適用される場合のみ、または相互運用呼び出しに使用するインターフェイスの定義。This attribute is only effective when applied to PInvoke methods (or classes that contain PInvoke methods) or the definition of an interface through which interop calls will be made. その他のすべてのコンテキストでは無視されます。It will be ignored in all other contexts.

この属性は、アンマネージ コードによって、システム リソースへのアクセスを提供するクラスを実装する場合に便利です。This attribute is useful for implementing a class that provides access to system resources through unmanaged code. アンマネージ コードへのアクセス許可を持たないコードは、アンマネージ コードにアクセスするには、この属性を持つクラスを呼び出すことができます。Code that does not have permission to access unmanaged code can call a class with this attribute to access unmanaged code. これは、場合、この属性を持つクラスのライターのプログラムは、クラスをセキュリティで保護された安全なだけです。This is only safe if the writer of the class with this attribute has programmed the class to be secure. 存在しない場合、この属性は危険が不正に使用するコードを許可することができます。If not, this attribute is dangerous and can allow the code that uses it to be misused.

これはなく、宣言セキュリティ属性では、標準の属性 (から派生したAttributeではなく、 SecurityAttribute)。This is not a declarative security attribute, but a regular attribute (it derives from Attribute, not SecurityAttribute).

コンストラクター

SuppressUnmanagedCodeSecurityAttribute() SuppressUnmanagedCodeSecurityAttribute() SuppressUnmanagedCodeSecurityAttribute() SuppressUnmanagedCodeSecurityAttribute()

SuppressUnmanagedCodeSecurityAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the SuppressUnmanagedCodeSecurityAttribute class.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

プロパティ

TypeId TypeId TypeId TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

適用対象

こちらもご覧ください