Fungsi CryptUpdateProtectedState (dpapi.h)
Fungsi CryptUpdateProtectedState memigrasikan kunci master pengguna saat ini setelah pengidentifikasi keamanan (SID) pengguna berubah. Fungsi ini dapat digunakan untuk mempertahankan data terenkripsi setelah pengguna dipindahkan dari satu domain ke domain lain.
Sintaks
DPAPI_IMP BOOL CryptUpdateProtectedState(
[in] PSID pOldSid,
[in] LPCWSTR pwszOldPassword,
[in] DWORD dwFlags,
[out] DWORD *pdwSuccessCount,
[out] DWORD *pdwFailureCount
);
Parameter
[in] pOldSid
Alamat struktur SID yang berisi SID pengguna sebelumnya. SID ini digunakan untuk menemukan kunci master lama. Jika parameter ini NULL, kunci master untuk SID pengguna saat ini dimigrasikan.
Baik parameter ini atau parameter pwszOldPassword mungkin NULL, tetapi tidak keduanya.
[in] pwszOldPassword
Penunjuk ke string Unicode yang dihentikan null yang berisi kata sandi pengguna sebelum SID diubah. Kata sandi ini digunakan untuk mendekripsi kunci master lama. Jika parameter ini NULL, kata sandi pengguna saat ini akan digunakan.
Parameter ini atau parameter pOldSid mungkin NULL, tetapi tidak keduanya.
[in] dwFlags
Tidak digunakan. Harus nol.
[out] pdwSuccessCount
Alamat variabel DWORD yang menerima jumlah kunci master yang berhasil dimigrasikan.
[out] pdwFailureCount
Alamat variabel DWORD yang menerima jumlah kunci master yang tidak dapat didekripsi.
Ini belum tentu merupakan kesalahan jika satu atau beberapa kunci master tidak dapat didekripsi. Beberapa pengguna mungkin memiliki kunci master yang stagnan dan tidak dapat didekripsi untuk waktu yang lama. Salah satu cara ini dapat terjadi adalah ketika kata sandi pengguna lokal telah diatur ulang secara administratif.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Beberapa kemungkinan kode kesalahan termasuk yang berikut ini.
Menampilkan kode | Deskripsi |
---|---|
|
Salah satu parameter berisi nilai yang tidak valid. |
|
Terjadi kegagalan alokasi memori. |
|
Kata sandi lama tidak dapat dienkripsi. |
Keterangan
Fungsi ini mendekripsi semua kunci master pengguna di direktori kunci master lama, menggunakan kata sandi sebelumnya, dan menyimpannya di direktori kunci master pengguna saat ini, dienkripsi dengan kata sandi pengguna saat ini.
Fungsi ini harus dipanggil dari akun pengguna tempat kunci dimigrasikan.
Jika fungsi ini berhasil memigrasikan kunci master lama, fungsi ini akan secara otomatis menghapus kunci master lama. Kunci master yang tidak dapat didekripsi tidak dihapus.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | dpapi.h |
Pustaka | Crypt32.lib |
DLL | Crypt32.dll |