Share via


EApiCategories Enumeration

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

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 .NET Framework System Requirements.

Header: MSCorEE.h

Library: MSCorEE.dll

.NET Framework Versions: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

See Also

Reference

ICLRHostProtectionManager Interface

Other Resources

Hosting Enumerations