I wrote a simple program like following. I am getting error if adding NCRYPT_MACHINE_KEY_FLAG
The error is :NCryptFinalizeKey Response Code: -2146893808
NCRYPT_PROV_HANDLE prov = NULL;
NCRYPT_KEY_HANDLE key = NULL;
DWORD keyLength = 2048;
DWORD blobLen = 0x1000;
BYTE blobexport[0x1000] = {0};
DWORD policy = NCRYPT_ALLOW_EXPORT_FLAG | NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG;
int errCode = 0;
errCode = NCryptOpenStorageProvider(&prov, MS_KEY_STORAGE_PROVIDER, 0) ;
qDebug()<<"NCryptOpenStorageProvider "<<" Response Code:"<<errCode<<endl;
errCode = NCryptCreatePersistedKey(prov, &key, NCRYPT_RSA_ALGORITHM, L"persist", 0, NCRYPT_MACHINE_KEY_FLAG ) ;
qDebug()<<"NCryptCreatePersistedKey "<<" Response Code:"<<errCode<<endl;
errCode = NCryptSetProperty(key, NCRYPT_LENGTH_PROPERTY, (PBYTE)(&keyLength), sizeof(keyLength), NCRYPT_PERSIST_FLAG) ;
qDebug()<<"NCryptSetProperty "<<" Response Code1:"<<errCode<<endl;
errCode = NCryptSetProperty(key, NCRYPT_EXPORT_POLICY_PROPERTY, (PBYTE)(&policy), sizeof(policy), NCRYPT_PERSIST_FLAG);
qDebug()<<"NCryptSetProperty "<<" Response Code2:"<<errCode<<endl;
errCode = NCryptFinalizeKey(key, 0);
qDebug()<<"NCryptFinalizeKey "<<" Response Code:"<<errCode<<endl;