カーネル オブジェクトを保護するセキュリティ記述子のコピーを取得する。
GetKernelObjectSecurity Handle, RequestedInformation, pSecurityDescriptor, nLength, lpnLengthNeeded
Handle : [intptr] カーネル オブジェクトへのハンドル。 RequestedInformation : [int] 要求するセキュリティ情報を識別する SECURITY_INFORMATION 値を指定する。 pSecurityDescriptor : [int] 関数が指定したオブジェクトのセキュリティ記述子のコピーで埋めるバッファへのポインタ。呼び出し元プロセスは、オブジェクトのセキュリティ状態の指定された側面を表示する権限を持っている必要がある。SECURITY_DESCRIPTOR 構造体は自己相対形式で返される。 nLength : [int] pSecurityDescriptor パラメータが指すバッファのサイズ (バイト単位) を指定する。 lpnLengthNeeded : [var] pSecurityDescriptor パラメータが指すバッファに必要なバイト数を受け取る変数へのポインタ。この変数の値が関数が戻るときに nLength パラメータの値より大きい場合、セキュリティ記述子はバッファにコピーされない。
(プラグイン / モジュール : advapi32.dll)
カーネル オブジェクトを保護するセキュリティ記述子のコピーを取得する。 [戻り値] 関数が成功した場合、戻り値はゼロ以外となる。失敗した場合、戻り値はゼロとなる。拡張エラー情報を取得するには GetLastError を呼び出す。 [備考] カーネル オブジェクトのセキュリティ記述子から所有者、グループ、または 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 |