Api 关于函数regQueryInfo键的详细信息?

Api 关于函数regQueryInfo键的详细信息?,api,winapi,registry,Api,Winapi,Registry,我现在完全被函数RegQueryInfoKey搞糊涂了。谁能帮我一把吗 在这个函数中,有一个名为“lpClass”的参数,在MSDN中,它被声明为“一个指向接收用户定义的密钥类的缓冲区的指针”。它也可以为null,但我确实想知道这个参数的用法 1.如何为该函数定义“用户定义类”,何时定义 2.如何通过使用regedit.exe查看指定的键而不是调用函数来获取这些参数的值—“lpcMaxSubKeyLen”、“lpcMaxValueNameLen”和“lpcMaxValueLen” 如果您有任何答

我现在完全被函数RegQueryInfoKey搞糊涂了。谁能帮我一把吗

在这个函数中,有一个名为“lpClass”的参数,在MSDN中,它被声明为“一个指向接收用户定义的密钥类的缓冲区的指针”。它也可以为null,但我确实想知道这个参数的用法

1.如何为该函数定义“用户定义类”,何时定义

2.如何通过使用regedit.exe查看指定的键而不是调用函数来获取这些参数的值—“lpcMaxSubKeyLen”、“lpcMaxValueNameLen”和“lpcMaxValueLen”

如果您有任何答复,我们将不胜感激。谢谢

  • 该类是一个带有设置的字符串,它是无意义的(它不被任何其他API使用)。只有不到1%的键设置了它,当设置它时,它通常只是一个字符串,如“Shell”或“Setup”,甚至是字符串“class”

  • 该信息在regedit中并不真正有用,如果应用程序希望在枚举子项之前分配内存,则可以使用该信息(但此处存在线程问题,因此您应该随时准备在需要时分配更大的缓冲区)

  • 该类是一个带有设置的字符串,它是无意义的(它不被任何其他API使用)。只有不到1%的键设置了它,当设置它时,它通常只是一个字符串,如“Shell”或“Setup”,甚至是字符串“class”

  • 该信息在regedit中并不真正有用,如果应用程序希望在枚举子项之前分配内存,则可以使用该信息(但此处存在线程问题,因此您应该随时准备在需要时分配更大的缓冲区)


  • 有一个严重的例外:Class参数与键一起使用

    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Data
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\GBG
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\JD
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Skew1
    
    形成Syskey(用于对用户密码的NT哈希进行编码的值)


    Ref:

    有一个严重的异常:Class参数与键一起使用

    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Data
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\GBG
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\JD
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Skew1
    
    形成Syskey(用于对用户密码的NT哈希进行编码的值)

    参考: