GetFileSecurity函数获取有关文件或目录安全性的指定信息。所获得的信息受到呼叫者的访问权限和权限的约束。
BOOL GetFileSecurity(
LPCTSTR 【lpFileName】, | //文件名的字符串地址 |
SECURITY_INFORMATION 【RequestedInformation】, | //请求的信息 |
PSECURITY_DESCRIPTOR 【pSecurityDescriptor】, | //安全描述符的地址 |
DWORD 【nLength】, | //安全描述符缓冲区的大小 |
LPDWORD 【lpnLengthNeeded】 | //缓冲区所需大小的地址 |
); |
参数
【lpFileName】
指向以null结尾的字符串,指定检索安全信息的文件或目录。
【RequestedInformation】
指定一个SECURITY_INFORMATION结构,用于标识正在请求的安全信息。
【pSecurityDescriptor】
指向接收由【lpFileName】参数指定的对象的安全描述符的副本的缓冲区。调用进程必须有权查看对象的安全状态的指定方面。SECURITY_DESCRIPTOR结构以自相关格式返回。
【nLength】
指定由【pSecurityDescriptor】参数指向的缓冲区的大小(以字节为单位)。
【lpnLengthNeeded】
指向变量,如果文件描述符被成功复制,则函数将设置为零。如果缓冲区对于安全描述符来说太小,则该变量将接收所需的字节数。如果函数返回时该变量的值大于【nLength】参数的值,则不会将任何安全描述符复制到缓冲区。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
要读取文件或目录的安全描述符,调用进程必须具有READ_CONTROL访问权限,或者是文件或目录的所有者。
要读取文件或目录的系统访问控制列表(SACL),必须为调用进程启用SE_SECURITY_NAME特权。
也可以看看
GetKernelObjectSecurity, GetPrivateObjectSecurity, GetUserObjectSecurity, SECURITY_DESCRIPTOR, SECURITY_INFORMATION, SetFileSecurity