SfcIsKeyProtected 函数 (sfc.h)
确定指定的注册表项是否受到保护。 应用程序应避免替换受保护的注册表项。
语法
BOOL SfcIsKeyProtected(
[in] HKEY KeyHandle,
[in, optional] LPCWSTR SubKeyName,
[in] REGSAM KeySam
);
参数
[in] KeyHandle
根注册表项的句柄。 这必须是以下 预定义键之一的句柄。
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
[in, optional] SubKeyName
包含子项名称的 以 null 结尾的字符串值。 此键必须是 由 hKey 参数标识的键的子项。 有关键名称的详细信息,请参阅 注册表的结构。 如果此参数为 NULL,则函数仅检查根注册表项是否受保护。
[in] KeySam
一个常量,指定在 64 位 Windows 上运行的应用程序应使用的备用注册表视图。 在 x86 平台上忽略此标志。 有关详细信息,请参阅 访问备用注册表视图。
值 | 含义 |
---|---|
|
使用 32 位应用程序中的 32 位注册表项,并使用 64 位应用程序中的 64 位注册表项。 |
|
使用 32 位或 64 位应用程序中的 64 位注册表项。 |
|
使用 32 位或 64 位应用程序中的 32 位注册表项。 |
返回值
如果密钥受到保护,则返回值为非零值。
如果密钥不受保护,则返回值为零。
注解
如果路径存在并且受 WRP 保护,则密钥受 WRP 保护。 SfcIsKeyProtected 函数指示如果子项具有受 WRP 保护的父密钥,则子项受 WRP 保护。
例如,如果系统上存在以下注册表项,并且受 WRP 保护:
HKEY_LOCAL_MACHINE SOFTWARE Classes Microsoft <WinFeature>
SfcIsKeyProtected 函数返回以下子项的非零值。 函数无需存在新的子项,就可确定它受 WRP 保护。
HKEY_LOCAL_MACHINE SOFTWARE Classes Microsoft <WinFeature> <new subkey>
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | sfc.h |
Library | Sfc.lib |
DLL | Sfc.dll |