查询Windows CNG中NCryptOpenKey的两个VBS相关标志值
关于NCRYPT_REQUIRE_VBS_FLAG和NCRYPT_PREFER_VBS_FLAG的标志值及查询途径
标志数值定义
NCRYPT_REQUIRE_VBS_FLAG=0x00000080
该标志强制要求密钥必须受基于虚拟化的安全性(VBS)保护,若系统不支持VBS或无法创建/打开VBS保护的密钥,NCryptOpenKey调用会直接失败。NCRYPT_PREFER_VBS_FLAG=0x00000100
该标志优先选择受VBS保护的密钥,若系统不支持VBS,则会退回到普通密钥的创建/打开流程,不会触发调用失败。
官方查询途径
这些标志属于Windows CNG的扩展定义,可通过以下方式获取准确信息:
- 查看Windows SDK中的
ncrypt.h头文件:安装完整Windows SDK后,在安装目录的Include\<SDK版本号>\um路径下找到该文件,直接搜索标志名称即可查看官方定义。 - 使用Visual Studio的“转到定义”功能:在代码中输入标志名称,右键选择“转到定义”,前提是项目已正确配置Windows SDK路径。
注意事项
这两个标志仅在Windows 10 1903及以上版本的系统中生效,旧版本Windows不支持此类VBS相关的CNG扩展。
内容的提问来源于stack exchange,提问作者Aleksey Pletnev
相关产品推荐
相关产品推荐

