EApiCategories Enumeration

Describes the categories of capabilities that the host can block from running in partially trusted code.

Syntax

typedef enum {  
    eNoCategory               = 0,  
    eSynchronization          = 0x1,  
    eSharedState              = 0x2,  
    eExternalProcessMgmt      = 0x4,  
    eSelfAffectingProcessMgmt = 0x8,  
    eExternalThreading        = 0x10,  
    eSelfAffectingThreading   = 0x20,  
    eSecurityInfrastructure   = 0x40,  
    eUI                       = 0x80,  
    eMayLeakOnAbort           = 0x100,  
    eAll                      = 0x1ff  
} EHostProtectionCategories;  

Members

Member Description
eAll Specifies that all managed classes and members that are covered by other EApiCategories fields be blocked from running in partially trusted code.
eExternalProcessMgmt Specifies that managed classes and members that allow the creation, manipulation, and destruction of external processes be blocked from running in partially trusted code.
eExternalThreading Specifies that managed classes and members that allow the creation, manipulation, and destruction of external threads be blocked from running in partially trusted code.
eMayLeakOnAbort Specifies that managed types and members that could potentially leak memory on abort be blocked from running in partially trusted code.
eNoCategory Specifies that no managed code categories be blocked from running in partially trusted code.
eSecurityInfrastructure Specifies that the common language runtime (CLR) security infrastructure be blocked from being used by partially trusted code.
eSelfAffectingProcessMgmt Specifies that managed classes and members whose capabilities can affect the hosted process be blocked from running in partially trusted code.
eSelfAffectingThreading Specifies that managed classes and members whose capabilities can affect threads in the hosted process be blocked from running in partially trusted code.
eSharedState Specifies that managed classes and members that expose shared state be blocked from running in partially trusted code.
eSynchronization Specifies that common language runtime classes and members that allow user code to hold locks be blocked from running in partially trusted code.
eUI Specifies that managed classes and members that allow or require human interaction be blocked from running in partially trusted code.

Remarks

The ICLRHostProtectionManager::SetProtectedCategories method takes a parameter of type EApiCategories.

The EApiCategories enumeration and the SetProtectedCategories method are directly related to the managed System.Security.Permissions.HostProtectionAttribute class. The managed class is used with the System.Security.Permissions.HostProtectionResource enumeration, whose values correspond directly to the EApiCategories values, to mark managed types and members that expose capabilities corresponding to the categories described by EApiCategories.

Requirements

Platforms: See System Requirements.

Header: MSCorEE.h

Library: MSCorEE.dll

.NET Framework Versions: Available since 2.0

See also