C 键\值\部分\信息结构数据属性

C 键\值\部分\信息结构数据属性,c,windows,registry,driver,C,Windows,Registry,Driver,我正在编写一个过滤器驱动程序,我想读取存储在注册表项中的字符串(REG_SZ是注册表中字符串的类型)。我使用函数ZwQueryValueKey()读取注册表,使用KEY\u VALUE\u PARTIAL\u信息结构来接收数据。我不知道如何使用data属性,所以我在for循环中打印了它,如下所示: for(int i=0; i<pKeyInfo->DataLength, i++){ DbgPrint("Data from Registry: %C", pK

我正在编写一个过滤器驱动程序,我想读取存储在注册表项中的字符串(REG_SZ是注册表中字符串的类型)。我使用函数ZwQueryValueKey()读取注册表,使用KEY\u VALUE\u PARTIAL\u信息结构来接收数据。我不知道如何使用data属性,所以我在for循环中打印了它,如下所示:

for(int i=0; i<pKeyInfo->DataLength, i++){
    DbgPrint("Data from Registry: %C", pKeyInfo->Data[i]);
}
但实际上我得到了

Data from Registry: F
Data from Registry:
Data from Registry: O
Data from Registry:
Data from Registry: L
Data from Registry:
Data from Registry: D
Data from Registry:
Data from Registry: E
Data from Registry:
Data from Registry: R
Data from Registry:
Data from Registry:
Data from Registry:
Data from Registry:

有人知道为什么要在两者之间添加这些空格吗?我还想将其从UCHAR数组转换为wchar\t字符串或wchar\t数组。谢谢

我从
%d
开始,而不是
%C
,这样你就可以准确地看到数组中的内容了。或者使用调试器查看数组。
Data from Registry: F
Data from Registry:
Data from Registry: O
Data from Registry:
Data from Registry: L
Data from Registry:
Data from Registry: D
Data from Registry:
Data from Registry: E
Data from Registry:
Data from Registry: R
Data from Registry:
Data from Registry:
Data from Registry:
Data from Registry: