CreateEnclave VBS尝试访问无效地址

时间:2018-06-17 19:26:35

标签: c++ enclave

我试图使用去年推出的Hyper-V基于虚拟化的安全性来创建一个简单的Enclave,但是,我发现MSDN上缺少文档。因此,我无法正确诊断我遇到的问题。

这里有enclave == null给我的Attempt to access invalid address.给我失败的代码{I}我并不确定它无法访问的内容。

if (IsEnclaveTypeSupported(ENCLAVE_TYPE_VBS))
{
    DWORD lpError = 0;
    ENCLAVE_CREATE_INFO_VBS vci = { 0 };
    vci.Flags = 1;

    PVOID enclave = CreateEnclave(GetCurrentProcess(),
        NULL,
        4096 * 2,
        NULL,
        ENCLAVE_TYPE_VBS,
        &vci,
        sizeof(ENCLAVE_CREATE_INFO_VBS),
        &lpError);

    if (enclave != NULL)
    {
        printf("Enclave created\n");
    }
    else
    {
        printf(GetLastErrorAsString().c_str());
    }
}
else {
    printf("VBS not supported\n");
}

1 个答案:

答案 0 :(得分:1)

好的,我已经解决了它,似乎dwSize具有最小尺寸,并且它仅适用于均匀数量的Mb。

例如1Mb,3Mb,5Mb等不起作用,返回"尝试访问无效地址。"而2Mb,4Mb,6Mb等按预期工作。