RegGetValue返回的数据类型与admx文件中提到的gpo设置的数据类型不同

RegGetValue returned data type differs from the data type mentioned in admx file for the gpo setting

本文关键字:数据类型 gpo 设置 文件 返回 admx RegGetValue      更新时间:2023-10-16

对于gpo设置:"仅在登录/注销时同步的网络目录",在相应的UserProfiles.admx文件中,数据类型被提及为REG_EXPAND_SZ:

<text id="CscSuspendDirectories_Message"valueName="CscuspendDirs"maxLength="4096"可扩展="true"/>

(可扩展="true"表示REG_EXPAND_SZ,而不是此处提到的REG_SZ)

但是当使用RegGetValue方法读取该子键值时,我得到的数据类型为REG_SZ。

我正在使用以下语句:RegGetValue(hKey, NULL, achValue, RRF_RT_ANY, &dataType, NULL, &size);

数据类型和大小为DWORD类型

hKey指向注册表项"Software\Policies\Microsoft\Windows\System"

且achValue指的是"CscSuspendDirs"

当函数调用返回时,我得到dataType为1(REG_SZ),这与admx文件中提到的设置不同。

如何获得正确的数据类型?

我应该在RegGetValue方法中使用RRF_RT_ANY | RRF_NOEXPAND,以防止自动将字符串扩展到REG_SZ。