CryptUpdateProtectedState 関数 (dpapi.h)
CryptUpdateProtectedState 関数は、ユーザーのセキュリティ識別子 (SID) が変更された後、現在のユーザーのマスター キーを移行します。 この関数を使用すると、あるドメインから別のドメインにユーザーが移動された後に、暗号化されたデータを保持できます。
構文
DPAPI_IMP BOOL CryptUpdateProtectedState(
[in] PSID pOldSid,
[in] LPCWSTR pwszOldPassword,
[in] DWORD dwFlags,
[out] DWORD *pdwSuccessCount,
[out] DWORD *pdwFailureCount
);
パラメーター
[in] pOldSid
ユーザーの以前の SID を含む SID 構造体のアドレス。 この SID は、古いマスター キーを検索するために使用されます。 このパラメーターが NULL の場合、現在のユーザー SID のマスター キーが移行されます。
このパラメーターまたは pwszOldPassword パラメーターは NULL でもかまいませんが、両方を 指定することはできません。
[in] pwszOldPassword
SID が変更される前にユーザーのパスワードを含む null で終わる Unicode 文字列へのポインター。 このパスワードは、古いマスター キーの暗号化を解除するために使用されます。 このパラメーターが NULL の場合は、現在のユーザーのパスワードが使用されます。
このパラメーターまたは pOldSid パラメーターは NULL でもかまいませんが、両方にすることはできません。
[in] dwFlags
使用されていません。 ゼロを指定してください。
[out] pdwSuccessCount
正常に移行されたマスター キーの数を受け取る DWORD 変数のアドレス。
[out] pdwFailureCount
復号化できなかったマスター キーの数を受け取る DWORD 変数のアドレス。
1 つ以上のマスター キーを暗号化解除できない場合は、必ずしもエラーとは限りません。 一部のユーザーは、マスター キーを所有している可能性があります。このキーは、停滞しており、長い間暗号化を解除できませんでした。 これが発生する 1 つの方法は、ローカル ユーザーのパスワードが管理的にリセットされた場合です。
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードには、次のようなものがあります。
リターン コード | 説明 |
---|---|
|
パラメーターの 1 つに無効な値が含まれています。 |
|
メモリ割り当てエラーが発生しました。 |
|
古いパスワードを暗号化できませんでした。 |
注釈
この関数は、以前のパスワードを使用して、古いマスター キー ディレクトリ内のすべてのユーザーのマスター キーを復号化し、ユーザーの現在のパスワードで暗号化されたユーザーの現在のマスター キー ディレクトリに格納します。
この関数は、キーが移行されるユーザー アカウントから呼び出す必要があります。
この関数が古いマスター キーを正常に移行できる場合は、古いマスター キーが自動的に削除されます。 暗号化を解除できないマスター キーは削除されません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | dpapi.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |