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.
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum HostProtectionResource
- Inheritance
- Attributes
Fields
| All | Exposes all host resources. |
| ExternalProcessMgmt | Might create or destroy other processes. |
| ExternalThreading | Creates or manipulates threads other than its own, which might be harmful to the host. |
| MayLeakOnAbort | 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 | Exposes no host resources. |
| SecurityInfrastructure | Exposes the security infrastructure. |
| SelfAffectingProcessMgmt | Might exit the current process, terminating the server. |
| SelfAffectingThreading | Manipulates threads in a way that only affects user code. |
| SharedState | Exposes state that might be shared between threads. |
| Synchronization | Exposes synchronization. |
| UI | 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 'Exit
Remarks
This enumeration is used by the HostProtectionAttribute attribute.