指定した開かれているレジストリキーを保護しているセキュリティ記述子のコピーを取得する。
RegGetKeySecurity hKey, SecurityInformation, pSecurityDescriptor, lpcbSecurityDescriptor
hKey : [intptr] セキュリティ記述子を取得する対象の、開かれているキーへのハンドル。 SecurityInformation : [int] 要求するセキュリティ情報を示す SECURITY_INFORMATION 値。 pSecurityDescriptor : [int] 要求したセキュリティ記述子のコピーを受け取るバッファへのポインタ。 lpcbSecurityDescriptor : [var] pSecurityDescriptor パラメータが指すバッファのサイズ(バイト単位)を指定する変数へのポインタ。関数が復帰するとき、この変数はバッファに書き込まれたバイト数を格納する。
(プラグイン / モジュール : advapi32.dll)
指定した開かれているレジストリキーを保護しているセキュリティ記述子のコピーを取得する。 [戻り値] 関数が成功した場合、関数は ERROR_SUCCESS を返す。 関数が失敗した場合、WinError.h で定義された 0 以外のエラーコードを返す。FormatMessage 関数に FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して呼び出すと、エラーの一般的な説明を取得できる。 [備考] pSecurityDescriptor パラメータで指定されたバッファが小さすぎる場合、関数は ERROR_INSUFFICIENT_BUFFER を返し、lpcbSecurityDescriptor パラメータには要求したセキュリティ記述子に必要なバイト数が格納される。キーのセキュリティ記述子から所有者、グループ、任意アクセス制御リスト (DACL) を読み取るには、ハンドルを開く際に呼び出し側プロセスに READ_CONTROL アクセスが付与されている必要がある。READ_CONTROL アクセスを取得するには、呼び出し側がキーの所有者であるか、キーの DACL がそのアクセスを許可している必要がある。セキュリティ記述子からシステムアクセス制御リスト (SACL) を読み取るには、キーを開く際に呼び出し側プロセスに ACCESS_SYSTEM_SECURITY アクセスが付与されている必要がある。このアクセスを取得する正しい方法は、呼び出し側の現在のトークンで SE_SECURITY_NAME 特権を有効にし、ACCESS_SYSTEM_SECURITY アクセスでハンドルを開き、その後特権を無効にすることである。
| プラグイン / モジュール | 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 |