这两个API非常相似,但是尚不清楚它们之间的区别以及何时应使用它们(除了LoadUserProfile被指定与我未使用的CreateProcessAsUser一起使用外,我只是模仿配置单元访问)。

LoadUserProfile
http://msdn.microsoft.com/en-us/library/bb762281(VS.85).aspx

RegOpenCurrentUser
http://msdn.microsoft.com/en-us/library/ms724894(VS.85).aspx

根据服务和注册表的文章:
http://msdn.microsoft.com/en-us/library/ms685145(VS.85).aspx
模拟时应使用RegOpenCurrentUser。

但是,如果用户配置文件正在漫游,RegOpenCurrentUser会/应该怎么做-是否应该加载它?

据我从这些文档可以看出,这两个API都为线程正在模拟的用户提供了HKEY_CURRENT_USER的句柄。因此,它们都“加载”配置单元,即将其锁定为数据库文件,并为注册表API提供句柄。

似乎LoadUserProfile加载用户配置文件的方式与用户登录时加载用户配置文件的方式相同,而RegOpenCurrentUser不加载-这对吗?这两个API如何安装配置单元的根本区别(如果有)?

如果发生什么之间有什么影响和区别(如果有)

  • 这些模拟句柄中的每一个都已在使用中时,用户是登录还是注销?
  • 调用每个匹配的关闭函数(RegCloseKey和UnloadUserProfile)时,用户已经登录了吗?
  • 最佳答案



    它不会加载配置文件。这样考虑:如果这样做,则必须在完成UnloadUserProfile()的句柄后以某种方式调用HKEY_CURRENT_USER



    是的。



    没有。



    他们将拥有打开和关闭的自己的手柄(使用相同的 key )。



    同上。

    10-01 20:05