Share via


RegOpenUserClassesRoot 函式 (winreg.h)

擷取指定使用者的 HKEY_CLASSES_ROOT 索引鍵控制碼。 使用者是由存取權杖所識別。 傳回的機碼具有登錄的檢視,該登錄會合並 HKEY_LOCAL_MACHINE\Software\Classes 機碼的內容與使用者登錄區中 Software\Classes 機碼的內容。 如需詳細資訊,請參閱 HKEY_CLASSES_ROOT金鑰

語法

LSTATUS RegOpenUserClassesRoot(
  [in]  HANDLE hToken,
        DWORD  dwOptions,
  [in]  REGSAM samDesired,
  [out] PHKEY  phkResult
);

參數

[in] hToken

主要或模擬存取權杖的控制碼,可識別感興趣的使用者。 這可以是呼叫 LogonUserCreateRestrictedTokenDuplicateToken、DuplicateTokenExOpenProcessTokenOpenThreadToken函式所傳回的權杖控制碼。

控制碼必須具有TOKEN_QUERY存取權。 如需詳細資訊,請參閱 Access-Token 物件的存取權限

dwOptions

此參數是保留的,而且必須是零。

[in] samDesired

指定金鑰所需存取權限的遮罩。 如果金鑰的安全性描述項不允許呼叫進程的要求存取權,則函式會失敗。 如需詳細資訊,請參閱 登錄機碼安全性和存取權限

[out] phkResult

接收已開啟索引鍵控制碼之變數的指標。 當您不再需要傳回的控制碼時,請呼叫 RegCloseKey 函 式來關閉它。

傳回值

如果函式成功,傳回值會ERROR_SUCCESS。

如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。 您可以使用 FormatMessage 函式搭配 FORMAT_MESSAGE_FROM_SYSTEM 旗標,以取得錯誤的一般描述。

備註

RegOpenUserClassesRoot函式可讓您擷取互動式使用者以外的使用者合併HKEY_CLASSES_ROOT資訊。 例如,用戶端/伺服器應用程式的伺服器元件可以使用 RegOpenUserClassesRoot 來擷取用戶端的合併資訊。

如果未載入指定使用者的使用者設定檔,則 RegOpenUserClassesRoot會失敗。 當使用者以互動方式登入時,系統會自動載入使用者的設定檔。 對於其他使用者,您可以呼叫 LoadUserProfile 函式來載入使用者的設定檔。 不過, LoadUserProfile 可能非常耗時,因此請勿為此目的呼叫它,除非絕對需要使用者合併 HKEY_CLASSES_ROOT 資訊。

在互動式登入使用者的安全性內容中執行的應用程式不需要使用 RegOpenUserClassesRoot。 這些應用程式可以呼叫 RegOpenKeyEx 函式,以擷取互動式使用者 HKEY_CLASSES_ROOT 索引鍵的合併檢視。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winreg.h (包含 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

LoadUserProfile

RegCloseKey

RegOpenKeyEx

登錄函式

登錄概觀