为运行 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_DEBUGGABLE0x00000001 |
enclave 允许调试。 |
IMAGE_ENCLAVE_POLICY_STRICT_MEMORY0x00000002 |
此标志通过 enclave 限制其包含进程的地址空间的访问。 此策略适用于 enclave 中的所有线程。
enclave 必须使用 EnclaveCopyIntoEnclave 和 EnclaveCopyOutOfEnclave 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_IMAGE0x00000001 |
该映像适合用作 enclave 中的主映像。 |
注解
IMAGE_ENCLAVE_CONFIG结构定义为运行 64 位 Windows 的系统上IMAGE_ENCLAVE_CONFIG64结构的另一个名称。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 版本 1709 [仅限桌面应用] |
支持的最低服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | winnt.h |