GetKernelObjectSecurity

カーネル オブジェクトを保護するセキュリティ記述子のコピーを取得する。

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