这两个 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)时,用户已经登录?