LSA プライベートデータ関数は使用しないこと。代わりに CryptProtectData および CryptUnprotectData 関数を使用する。(LsaStorePrivateData)
LsaStorePrivateData PolicyHandle, KeyName, PrivateData
PolicyHandle : [intptr] Policy オブジェクトへのハンドル。KeyName パラメータで指定されたキーの下にデータを格納するのが初めての場合、ハンドルは POLICY_CREATE_SECRET アクセス権を持つ必要がある。詳細は「Opening a Policy Object Handle」を参照。 KeyName : [var] プライベートデータが格納されるキーの名前を含む LSA_UNICODE_STRING 構造体へのポインタ。 PrivateData : [var] 格納するプライベートデータを含む LSA_UNICODE_STRING 構造体へのポインタ。関数は格納前にこのデータを暗号化する。このパラメータが NULL の場合、関数はキーの下に格納されているプライベートデータを削除し、キーを削除する。キーからデータを取得する後続の試みは STATUS_OBJECT_NAME_NOT_FOUND エラーコードを返す。
(プラグイン / モジュール : advapi32.dll)
LSA プライベートデータ関数は使用しないこと。代わりに CryptProtectData および CryptUnprotectData 関数を使用する。(LsaStorePrivateData) [戻り値] 関数が成功した場合、戻り値は STATUS_SUCCESS である。関数が失敗した場合、戻り値は NTSTATUS コードである。詳細は「LSA Policy Function Return Values」を参照。LsaNtStatusToWinError 関数を使用して NTSTATUS コードを Windows エラーコードに変換できる。 [備考] LsaStorePrivateData 関数は、サーバーアプリケーションがクライアントおよびマシンのパスワードを保存するために使用できる。プライベートデータオブジェクトにはローカル、グローバル、マシンの 3 種類の特殊なタイプが含まれる。特殊なオブジェクトはキー名のプレフィックスによって識別される。ローカルオブジェクトは "L$"、グローバルオブジェクトは "G$"、マシンオブジェクトは "M$" である。ローカルオブジェクトはリモートからアクセスできない。マシンオブジェクトはオペレーティングシステムからのみアクセスできる。LsaStorePrivateData 関数によって格納されたデータは絶対的に保護されるわけではない。ただし、データは格納前に暗号化され、キーには作成者と管理者のみがデータを読み取れる DACL がある。LsaStorePrivateData によって格納された値を取得するには LsaRetrievePrivateData 関数を使用する。
| プラグイン / モジュール | advapi32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_advapi32_gen2.hs |