<Return[G]><Top>

GetNamedSecurityInfo

Declare Function Api_GetNamedSecurityInfo& Lib "Advapi32" Alias "GetNamedSecurityInfoA" (ByVal ObjName$, ByVal SE_OBJECT_TYPE&, ByVal SecInfo&, ByVal pSid&, ByVal pSidGroup&, pDacl&, ByVal pSacl&, pSecurityDescriptor&)

Declare Function Api_GetNamedSecurityInfo& Lib "advapi32" Alias "GetNamedSecurityInfo" (ByVal pObjectName$, ByRef ObjectType As SE_OBJECT_TYPE, ByVal SecurityInfo&, ByRef ppsidOwner As Sid, ByRef ppsidGroup As Sid, ByRef ppDacl As pAcl, ByRef ppSacl As pAcl, ByRef ppSecurityDescriptor As SECURITY_DESCRIPTOR)

名前を指定されたオブジェクトのセキュリティ記述子のコピーを取得する。

パラメータ
pObjectName
    セキュリティ情報を取得するオブジェクトの名前を指定する、NULL で終わる文字列へのポインタを指定する。
ObjectType
    pObjectName パラメータが指定するオブジェクトのタイプを示すために、SE_OBJECT_TYPE 列挙型のいずれかの値を指定する。
SecurityInfo
    取得するセキュリティ情報のタイプを示す一連の ビットフラグを指定する。このパラメータには、次の値を任意に組み合わせて指定することが

    できる。

    値                                                         

意味                                                                                                                  

    OWNER_SECURITY_INFORMATION

 

このフラグがセットされている場合、ppsidOwner パラメータは、オブジェクトの所有者を示す(セキュリティ ID)を受け取る。

    GROUP_SECURITY_INFORMATION

 

このフラグがセットされている場合、ppsidGroup パラメータは、オブジェクトのプライマリグループを示す SID を受け取る。

    DACL_SECURITY_INFORMATION

 

このフラグがセットされている場合、ppDacl パラメータは、オブジェクトの DACL(随意アクセス制御リスト)を受け取る。

    SACL_SECURITY_INFORMATION

 

このフラグがセットされている場合、ppSacl パラメータは、オブジェクトの SACL(システムアクセス制御リスト)を受け取る。

ppsidOwner
    ppSecurityDescriptor 内に返されたセキュリティ記述子内の所有者 SID へのポインタを受け取る、変数へのポインタを指定する。

    OWNER_SECURITY_INFORMATION フラグをセットしていた場合にのみ、返されたポインタは有効である。所有者 SID が必要ない場

    合、このパラメータは NULL でもかまわない。
ppsidGroup
    返されたセキュリティ記述子内のプライマリグループ SID へのポインタを受け取る、変数へのポインタである。

    GROUP_SECURITY_INFORMATION フラグをセットしていた場合にのみ、返されたポインタは有効である。グループ SID が必要ない場

    合、このパラメータは NULL でもかまわない。
ppDacl
    返されたセキュリティ記述子内の DACL へのポインタを受け取る変数へのポインタを指定する。DACL_SECURITY_INFORMATION フラ

    グをセットしていた場合にのみ、返されたポインタは有効である。DACL が必要ない場合、このパラメータは NULL でもかまわない。
ppSacl
    返されたセキュリティ記述子内の SACL へのポインタを受け取る、変数へのポインタを指定する。SACL_SECURITY_INFORMATION フ

    ラグをセットしていた場合にのみ、返されたポインタは有効である。SACL が必要ない場合、このパラメータは NULL でもかまわない。
ppSecurityDescriptor
    オブジェクトのセキュリティ記述子へのポインタを受け取る変数へのポインタを指定する。 関数を呼び出して、返されたバッファを解放する必

    要がある。


戻り値
    関数が成功すると、ERROR_SUCCESS が返る。
    関数が失敗すると、WINERROR.H 内で定義されている 0 以外のエラーコードが返る。

解説
    パラメータ ppsidOwner、ppsidGroup、ppDacl、ppSacl が NULL ではなく、SecurityInfo パラメータがオブジェクトからこれらを取得するよ

    う指示している場合、これらのパラメータは ppSecurityDescriptor 内に返されたセキュリティ記述子の中の、対応するパラメータを指す。
    オブジェクトのセキュリティ記述子から所有者、グループ、DACL のいずれかを読み取るには、オブジェクトの DACL が呼び出し側に対して

    READ_CONTROL アクセス権を許可しているか、呼び出し側がオブジェクトの所有者でなければならない。
    オブジェクトの SACL を読み取るには、呼び出し側のプロセスで SE_SECURITY_NAME 特権を有効にしておかなければならない。