Share via


ユーザー固有の情報の格納

リモート デスクトップ サービス環境では、アプリケーションは、すべてのユーザーに適用されるグローバル情報とは別に、ユーザー固有の場所にユーザー固有の情報を格納する必要があります。 この規則は、レジストリに格納されている情報と、ファイルに格納されている情報に適用されます。 一般に、1 台のコンピューターが 1 人のユーザーと同等であると想定しないでください。

HKEY_CURRENT_USER レジストリ キーの下にユーザー固有のレジストリ情報を格納します。 リモート デスクトップ サービスは、ユーザーがログオンしたときに、現在のユーザーの個人用レジストリ ハイブを HKEY_CURRENT_USER に読み込みます。 もちろん、リモート デスクトップ サービスはレジストリを管理して、ログオンしている各クライアントが 、HKEY_CURRENT_USERの下で正しいユーザー ハイブを検出するようにします。 レジストリ キーの詳細については、「レジストリ キーのセキュリティとアクセス権」および「レジストリ ハイブ」を参照してください。

これに対し、すべてのユーザーが HKEY_LOCAL_MACHINE ハイブを共有します。 HKEY_LOCAL_MACHINEを使用して、ユーザー固有の情報ではなく、コンピューター固有の情報を格納します。

ユーザー設定ファイルまたはその他のユーザー固有のファイルを、ユーザーのルート ディレクトリまたはユーザー指定のディレクトリに格納します。 この考慮事項は、中間情報 (キャッシュされたデータなど) を格納したり、別のアプリケーションにデータを渡したりするために使用される一時ファイルに適用されます。 ユーザー固有の一時ファイルも、ユーザーごとに格納する必要があります。

SHGetSpecialFolderLocation 関数を CSIDL_PERSONAL フラグと共に使用して、ユーザーの個人用ファイル ディレクトリの場所を取得できます。 GetWindowsDirectory 関数を使用して、Windows ディレクトリのパスを取得することもできます。 リモート デスクトップ サービス環境では、Windows ディレクトリはユーザーごとにプライベートであることが保証されます。 WINDOWS などのシステム ディレクトリ、または Program Files などのプログラム ディレクトリの下に、ユーザー固有のファイルを格納しないでください。

ユーザーの情報と設定の競合を回避するために、アプリケーションでは、ユーザー固有の一時ファイルにユーザーごとの一時情報を格納する必要があります。 また、ユーザー固有の一時ファイルは、ファイル ロックの競合によって引き起こされるアプリケーションエラーを防ぎます。 一時的な情報を格納するためのパスを指定するには、 GetTempPath 関数を使用します。