LoadUserProfileA 関数 (userenv.h)
指定したユーザーのプロファイルを読み込みます。 プロファイルには、ローカル ユーザー プロファイル または ローミング ユーザー プロファイルを指定できます。
構文
USERENVAPI BOOL LoadUserProfileA(
[in] HANDLE hToken,
[in, out] LPPROFILEINFOA lpProfileInfo
);
パラメーター
[in] hToken
型: HANDLE
[in, out] lpProfileInfo
型: LPPROFILEINFO
PROFILEINFO 構造体へのポインター。 loadUserProfile
戻り値
型: BOOL
成功した場合は TRUE を
この関数は失敗し、lpProfileInfo の構造体の
備考
ユーザーが対話形式でログオンすると、システムはユーザーのプロファイルを自動的に読み込みます。 サービスまたはアプリケーションがユーザーを偽装した場合、システムはユーザーのプロファイルを読み込まない。 そのため、サービスまたはアプリケーションは、LoadUserProfileを使用してユーザーのプロファイル
LoadUserProfile
正常に戻ると、PROFILEINFO の hProfile メンバーは、ユーザーのハイブのルートに対して開かれたレジストリ キー ハンドルです。 フル アクセス (KEY_ALL_ACCESS) で開かれています。 ユーザーを偽装しているサービスがユーザーのレジストリ ファイルの読み取りまたは書き込みを行う必要がある場合は、HKEY_CURRENT_USERの代わりにこのハンドルを使用します。
hProfile ハンドルを閉じないでください。 代わりに、UnloadUserProfile 関数に渡します。 この関数はハンドルを閉じます。 ユーザーのレジストリ ハイブ内のキーに対するすべてのハンドルが閉じられるようにする必要があります。 開いているレジストリ ハンドルをすべて閉じなければ、ユーザーのプロファイルのアンロードに失敗します。 詳細については、「レジストリ キーのセキュリティとアクセス権の とレジストリ ハイブの
CreateProcessAsUserを呼び出す前に、
呼び出し元のプロセスには、SE_RESTORE_NAME と SE_BACKUP_NAME の特権が必要です。 詳細については、「特別な特権を使用した実行 」を参照してください。
Windows XP Service Pack 2 (SP2) および Windows Server 2003 以降では、呼び出し元は管理者または LocalSystem アカウントである必要があります。 呼び出し元が管理者または LocalSystem アカウントを偽装するだけでは不十分です。
手記
userenv.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LoadUserProfile を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | userenv.h |
ライブラリ | Userenv.lib |
DLL | Userenv.dll |
関連項目
UnloadUserProfile の