GetSecurityInfo 函数也是 Windows API 中用于获取对象安全描述符信息的函数,同样位于 Aclapi.h 头文件中。以下是该函数的基本原型:
DWORD GetSecurityInfo(
  HANDLE               handle,
  SE_OBJECT_TYPE       ObjectType,
  SECURITY_INFORMATION SecurityInfo,
  PSID                 *ppsidOwner,
  PSID                 *ppsidGroup,
  PACL                 *ppDacl,
  PACL                 *ppSacl,
  PSECURITY_DESCRIPTOR *ppSecurityDescriptor
);

参数说明:

  •  handle:指定一个句柄,该句柄与对象相关联(例如文件、目录、进程等)。


  •  ObjectType:指定对象的类型,例如 SE_FILE_OBJECT 表示文件对象。


  •  SecurityInfo:指定要检索的安全信息类型,如所有者、组、DACL(禁止访问控制列表)、SACL(系统访问控制列表)等。


  •  ppsidOwner:接收对象的所有者 SID 的指针。


  •  ppsidGroup:接收对象的组 SID 的指针。


  •  ppDacl:接收对象的 DACL 的指针。


  •  ppSacl:接收对象的 SACL 的指针。


  •  ppSecurityDescriptor:接收整个安全描述符的指针。


函数返回一个 DWORD 类型的值,表示操作是否成功。如果函数成功,返回 ERROR_SUCCESS;否则,返回错误代码。

与 GetNamedSecurityInfoW 不同,GetSecurityInfo 是通过对象的句柄来获取安全信息的,而不是通过对象的名称。这使得它更适用于一些需要直接处理句柄的场景,比如在操作系统内核中。


转载请注明出处:http://www.zyzy.cn/article/detail/23772/Win32 API/Aclapi.h/GetSecurityInfo