RegConnectRegistryW 関数 (winreg.h)
別のコンピューター上の定義済みのレジストリ キーへの接続を確立します。
構文
LSTATUS RegConnectRegistryW(
[in, optional] LPCWSTR lpMachineName,
[in] HKEY hKey,
[out] PHKEY phkResult
);
パラメーター
[in, optional] lpMachineName
リモート コンピューターの名前です。 文字列の形式は次のとおりです。
\\Computername
呼び出し元はリモート コンピューターにアクセスできる必要があります。または、関数が失敗します。
このパラメーターが NULL の場合は、ローカル コンピューター名が使用されます。
[in] hKey
定義済みのレジストリ ハンドル。 このパラメーターには、リモート コンピューター上の次の 定義済みキー のいずれかを指定できます。
HKEY_LOCAL_MACHINEHKEY_PERFORMANCE_DATAHKEY_USERS
[out] phkResult
リモート コンピューター上の定義済みのハンドルを識別するキー ハンドルを受け取る変数へのポインター。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS です。
関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。 FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して FormatMessage 関数を使用すると、エラーの一般的な説明を取得できます。
解説
RegConnectRegistry では、リモート コンピューターでリモート レジストリ サービスが実行されている必要があります。 既定では、このサービスは手動で開始するように構成されています。 リモート レジストリ サービスを自動的に開始するように構成するには、Services.msc を実行し、サービスの [スタートアップの種類] を [自動] に変更します。
Windows Server 2003 および Windows XP/2000: リモート レジストリ サービスは、既定で自動的に開始するように構成されています。
RegConnectRegistry によって返されるハンドルが不要になった場合は、RegCloseKey を呼び出して閉じる必要があります。
コンピューターがワークグループに参加していて、"ローカル アカウントを使用してネットワーク ログオンを強制してゲストとして認証する" ポリシーが有効になっている場合、関数は失敗します。 コンピューターがワークグループに参加している場合、このポリシーは既定で有効になります。
現在のユーザーがリモート コンピューターに適切にアクセスできない場合、 RegConnectRegistry の呼び出しは失敗します。 リモート レジストリに接続するには、RegConnectRegistry を呼び出す前に、LOGON32_LOGON_NEW_CREDENTIALSと ImpersonateLoggedOnUser を使用して LogonUser を呼び出します。
Windows 2000: 考えられる回避策の 1 つは、別の資格情報セットを使用して、IPC$ などの管理共有へのセッションを確立することです。 現在のユーザー以外の資格情報を指定するには、 WNetAddConnection2 関数を使用して共有に接続します。 レジストリへのアクセスが完了したら、接続をキャンセルします。
Windows XP Home Edition: この関数を使用して、Windows XP Home Edition を実行しているリモート コンピューターに接続することはできません。 この関数は、認証レイヤーをバイパスするため、Windows XP Home Edition を実行している場合でも、ローカル コンピューターの名前で動作します。
注意
winreg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RegConnectRegistry を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winreg.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |