ユーザー固有の情報の格納
リモート デスクトップ サービス環境では、アプリケーションはユーザー固有の情報を、すべてのユーザーに適用されるグローバル情報とは別に、ユーザー固有の場所に格納する必要があります。 この規則は、レジストリに格納されている情報と、ファイルに格納されている情報に適用されます。 一般に、1 台のコンピューターが 1 人のユーザーと同等であると想定しないでください。
HKEY_CURRENT_USER レジストリ キーにユーザー固有のレジストリ情報をMicrosoft Storeします。 リモート デスクトップ サービスは、ユーザーがログオンしたときに、現在のユーザーの個人用レジストリ ハイブを HKEY_CURRENT_USER に読み込みます。 もちろん、リモート デスクトップ サービスはレジストリを管理して、ログオンしている各クライアントが HKEY_CURRENT_USERの下で適切なユーザー ハイブを検出するようにします。 レジストリ キーの詳細については、「レジストリ キーのセキュリティとアクセス権とレジストリ ハイブ」を参照してください。
一方、すべてのユーザーが HKEY_LOCAL_MACHINE ハイブを共有します。 HKEY_LOCAL_MACHINEを使用して、ユーザー固有の情報ではなく、コンピューター固有の情報を格納します。
ユーザー設定ファイルまたはその他のユーザー固有のファイルを、ユーザーのルート ディレクトリまたはユーザー指定のディレクトリにMicrosoft Storeします。 この考慮事項は、中間情報 (キャッシュされたデータなど) を格納したり、別のアプリケーションにデータを渡したりするために使用される一時ファイルに適用されます。 ユーザー固有の一時ファイルも、ユーザーごとに格納する必要があります。
SHGetSpecialFolderLocation 関数を CSIDL_PERSONAL フラグと共に使用して、ユーザーの個人用ファイル ディレクトリの場所を取得できます。 GetWindowsDirectory 関数を使用して、Windows ディレクトリのパスを取得することもできます。 リモート デスクトップ サービス環境では、Windows ディレクトリはユーザーごとにプライベートであることが保証されます。 WINDOWS などのシステム ディレクトリや Program Files などのプログラム ディレクトリには、ユーザー固有のファイルを格納しないでください。
ユーザーの情報と設定の競合を回避するために、アプリケーションはユーザー固有の一時ファイルにユーザーごとの一時情報を格納する必要があります。 また、ユーザー固有の一時ファイルは、ファイル ロックの競合によって発生するアプリケーションエラーを防ぎます。 一時情報を格納するためのパスを指定するには、 GetTempPath 関数を使用します。