HostProtectionResource Enum

Definition

Specifies categories of functionality potentially harmful to the host if invoked by a method or class.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

public enum class HostProtectionResource
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum HostProtectionResource
type HostProtectionResource = 
Public Enum HostProtectionResource
Inheritance
HostProtectionResource
Attributes

Fields

All 511

Exposes all host resources.

ExternalProcessMgmt 4

Might create or destroy other processes.

ExternalThreading 16

Creates or manipulates threads other than its own, which might be harmful to the host.

MayLeakOnAbort 256

Might cause a resource leak on termination, if not protected by a safe handle or some other means of ensuring the release of resources.

None 0

Exposes no host resources.

SecurityInfrastructure 64

Exposes the security infrastructure.

SelfAffectingProcessMgmt 8

Might exit the current process, terminating the server.

SelfAffectingThreading 32

Manipulates threads in a way that only affects user code.

SharedState 2

Exposes state that might be shared between threads.

Synchronization 1

Exposes synchronization.

UI 128

Exposes the user interface.

Examples

The following code example shows the use of the HostProtectionResource enumeration with the HostProtectionAttribute attribute. This example is part of a larger example provided for the HostProtectionAttribute class.

// Use the enumeration flags to indicate that this method exposes shared state and 
// self-affecting process management.
// Either of the following attribute statements can be used to set the 
// resource flags.
// Exit the sample when an exception is thrown.

[HostProtection(SharedState=true,SelfAffectingProcessMgmt=true)]
[HostProtection(Resources=HostProtectionResource::SharedState|
HostProtectionResource::SelfAffectingProcessMgmt)]
static void Exit( String^ Message, int Code )
{
   Console::WriteLine( "\nFAILED: {0} {1}", Message, Code );
   Environment::ExitCode = Code;
   Environment::Exit( Code );
}
// Use the enumeration flags to indicate that this method exposes 
// shared state and self-affecting process management.
// Either of the following attribute statements can be used to set the
// resource flags.
[HostProtectionAttribute(SharedState = true, 
    SelfAffectingProcessMgmt = true)]
[HostProtectionAttribute(Resources = HostProtectionResource.SharedState |
     HostProtectionResource.SelfAffectingProcessMgmt)]
private static void Exit(string Message, int Code)
{
    // Exit the sample when an exception is thrown.
    Console.WriteLine("\nFAILED: " + Message + " " + Code.ToString());
    Environment.ExitCode = Code;
    Environment.Exit(Code);
}
' Use the enumeration flags to indicate that this method exposes 
' shared state and self-affecting process management.
' Either of the following attribute statements can be used to set the 
' resource flags.
<HostProtectionAttribute(SharedState := True, _
    SelfAffectingProcessMgmt := True), _
    HostProtectionAttribute( _
    Resources := HostProtectionResource.SharedState Or _
    HostProtectionResource.SelfAffectingProcessMgmt)> _
Private Shared Sub [Exit](ByVal Message As String, ByVal Code As Integer)

    ' Exit the sample when an exception is thrown.
    Console.WriteLine((ControlChars.Lf & "FAILED: " & Message & " " & _
        Code.ToString()))
    Environment.ExitCode = Code
    Environment.Exit(Code)
End Sub

Remarks

This enumeration is used by the HostProtectionAttribute attribute.

Applies to