CreateEnclave VBS пытается получить доступ к неверному адресу

Я пытаюсь создать простой Анклав, используя систему безопасности на основе виртуализации Hyper-V, которая была выпущена в прошлом году, однако я обнаружил, что не хватает документации по MSDN. Из-за этого я не могу правильно диагностировать проблему, которая у меня возникла.

Вот код, который не работает для меня с enclave == null давая мне Attempt to access invalid address. И я не совсем уверен, что это не удается получить доступ.

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 ответ

Решение

Хорошо, я решил это, похоже, dwSize имеет минимальный размер, а также работает только на четных объемах Мб.

Например, 1Mb, 3Mb, 5Mb и т. Д. Не работают, возвращая "Попытка доступа к неверному адресу". в то время как 2Mb, 4Mb, 6Mb и т. д. работают как положено.

Другие вопросы по тегам