ChainConfig.cbSize = sizeof(CERT_CHAIN_ENGINE_CONFIG);
ChainConfig.hRestrictedRoot = NULL;
ChainConfig.hRestrictedTrust = NULL;
ChainConfig.hRestrictedOther = NULL;
ChainConfig.cAdditionalStore = 0;
ChainConfig.rghAdditionalStore = NULL;
ChainConfig.dwFlags = CERT_CHAIN_CACHE_END_CERT;
ChainConfig.dwUrlRetrievalTimeout = 0;
ChainConfig.MaximumCachedCertificates = 0;
ChainConfig.CycleDetectionModulus = 0;
//---------------------------------------------------------
// Create the nondefault certificate chain engine.
if (CertCreateCertificateChainEngine(
&ChainConfig,
&hChainEngine)){
printf("A chain engine has been created.n");}
获取错误0x80070057(-2147024809)参数不正确,有人在这里提供帮助吗?
我希望您已经设法解决了这个问题。如果没有,这是我有点晚答案:
看起来您正在使用Microsoft的示例代码来创建证书链。不幸的是,它似乎已经过时了。如果您检查了CERT_CHAIN_ENGINE_CONFIG
的文档,您会发现还有两个成员变量需要在Windows 7,hExclusiveRoot
和hExclusiveTrustedPeople
中初始化。
您可以将它们设置为null(如果您不需要)来照顾错误:
ChainConfig.hExclusiveRoot = NULL;
ChainConfig.hExclusiveTrustedPeople = NULL;