LsaStorePrivateData

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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_advapi32_gen2.hs