The GetNamedSecurityInfo function retrieves a copy of the security descriptor for an object specified by name.
DWORD GetNamedSecurityInfo(
LPTSTR pObjectName,
// name of the object
SE_OBJECT_TYPE ObjectType,
// type of object
SECURITY_INFORMATION SecurityInfo,
// type of security information to retrieve
PSID *ppsidOwner, // receives a pointer to the owner SID
PSID *ppsidGroup, // receives a pointer to the primary group SID
PACL *ppDacl, // receives a pointer to the DACL
PACL *ppSacl, // receives a pointer to the SACL
PSECURITY_DESCRIPTOR *ppSecurityDescriptor
// receives a pointer to the security descriptor
);
Value | Meaning |
---|---|
OWNER_SECURITY_INFORMATION | If this flag is set, the ppsidOwner parameter receives the security identifier (SID) of the object's owner. |
GROUP_SECURITY_INFORMATION | If this flag is set, the ppsidGroup parameter receives the SID of the object's primary group. |
DACL_SECURITY_INFORMATION | If this flag is set, the ppDacl parameter receives the object's discretionary access-control list (DACL). |
SACL_SECURITY_INFORMATION | If this flag is set, the ppSacl parameter receives the object's system access-control list (SACL).. |
If the function succeeds, the return value is ERROR_SUCCESS.
If the function fails, the return value is a nonzero error code defined in WINERROR.H.
If the ppsidOwner, ppsidGroup, ppDacl, ppSacl parameters are non-NULL, and the SecurityInfo parameter specifies that they be retrieved from the object, those parameters will point to the corresponding parameters in the security descriptor returned in ppSecurityDescriptor.
To read the owner, group, or DACL from the object's security descriptor, the object's DACL must grant READ_CONTROL access to the caller or the caller must be the owner of the object.
To read the system access-control list (SACL) of the object, the SE_SECURITY_NAME privilege must be enabled for the calling process.
Windows NT: Requires version 4.0 or later.
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in aclapi.h.
Import Library: Use advapi32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT.
Windows NT 4.0 Access Control Overview, Windows NT 4.0 Access-Control Functions, ACL, GetSecurityInfo, LocalFree, SE_OBJECT_TYPE, SECURITY_DESCRIPTOR, SECURITY_INFORMATION, SetNamedSecurityInfo, SetSecurityInfo, SID