IMAGE_ENCLAVE_CONFIG64结构(winnt.h)

为运行 64 位 Windows 的系统定义飞地配置的格式。

语法

typedef struct _IMAGE_ENCLAVE_CONFIG64 {
  DWORD     Size;
  DWORD     MinimumRequiredConfigSize;
  DWORD     PolicyFlags;
  DWORD     NumberOfImports;
  DWORD     ImportList;
  DWORD     ImportEntrySize;
  BYTE      FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
  BYTE      ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
  DWORD     ImageVersion;
  DWORD     SecurityVersion;
  ULONGLONG EnclaveSize;
  DWORD     NumberOfThreads;
  DWORD     EnclaveFlags;
} IMAGE_ENCLAVE_CONFIG64, *PIMAGE_ENCLAVE_CONFIG64;

成员

Size

IMAGE_ENCLAVE_CONFIG64结构的大小(以字节为单位)。

MinimumRequiredConfigSize

图像加载程序必须能够处理的 IMAGE_ENCLAVE_CONFIG64 结构的最小大小,才能使 enclave 可用。 此成员允许 enclave 通知映像加载程序早期版本,映像加载程序可以安全地加载 enclave,并忽略为更高版本的 enclave 添加到 IMAGE_ENCLAVE_CONFIG64 的可选成员。 如果映像加载程序可以处理的 IMAGE_ENCLAVE_CONFIG64 大小小于 MinimumRequiredConfigSize,则无法安全地运行 enclave。

如果 MinimumRequiredConfigSize 为零,则图像加载程序必须能够处理的 IMAGE_ENCLAVE_CONFIG64 结构的最小大小,以便假定 enclave 是结构的大小,包括 MinimumRequiredConfigSize 成员。

PolicyFlags

指示为 enclave 设置的策略的标志。 可以设置这些标志以指示 enclave 是否允许调试,以及 enclave 是否限制为使用自己的内存空间。

价值 含义
0x00000000 enclave 不允许调试。
IMAGE_ENCLAVE_POLICY_DEBUGGABLE
0x00000001
enclave 允许调试。
IMAGE_ENCLAVE_POLICY_STRICT_MEMORY
0x00000002
此标志通过 enclave 限制其包含进程的地址空间的访问。 此策略适用于 enclave 中的所有线程。 enclave 必须使用 EnclaveCopyIntoEnclaveEnclaveCopyOutOfEnclave API 来访问包含进程内存。

注意: 还可以通过调用 EnclaveRestrictContainingProcessAccess API 来限制对包含进程的地址空间的访问。 此 API 还可用于在运行时放宽此策略,并还原对包含进程内存的访问。

NumberOfImports

ImportList 成员指向的图像数组中的图像数。

ImportList

enclave 映像可以导入的映像数组的相对虚拟地址,以及每个映像的标识信息。

ImportEntrySize

ImportList 成员指向的图像数组中每个图像的大小。

FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

enclave 的作者分配给 enclave 的家庭标识符。

ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

分配给 enclave 的作者的图像标识符。

ImageVersion

enclave 的作者分配给 enclave 的版本号。

SecurityVersion

enclave 的作者分配给 enclave 的安全版本号。

EnclaveSize

enclave 的专用地址范围的预期虚拟大小(以字节为单位)。

NumberOfThreads

可在 enclave 中创建的最大线程数。

EnclaveFlags

一个标志,指示映像是否适合用作 enclave 中的主映像。

价值 含义
0x00000000 该映像不适合用作 enclave 中的主映像。
IMAGE_ENCLAVE_FLAG_PRIMARY_IMAGE
0x00000001
该映像适合用作 enclave 中的主映像。

注解

IMAGE_ENCLAVE_CONFIG结构定义为运行 64 位 Windows 的系统上IMAGE_ENCLAVE_CONFIG64结构的另一个名称。

要求

要求 价值
最低支持的客户端 Windows 10 版本 1709 [仅限桌面应用]
支持的最低服务器 Windows Server 2016 [仅限桌面应用]
标头 winnt.h

另请参阅

Enclave 结构

IMAGE_ENCLAVE_CONFIG32

EnclaveCopyIntoEnclave

EnclaveCopyOutOfEnclave

EnclaveRestrictContainingProcessAccess