SECURITY_ATTRIBUTES structure
该函数包含了对象的安全描述符,同时也可以用来设定该对象的句柄是否可继承
typedef struct _SECURITY_ATTRIBUTES{
DWORD nLength;
LPVOID IpSecurityDescriptor;
BOOL blnheritHandle;
}SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
Members
nLength
这个结构体的大小(以字节数表示),通常设为sizeof(SECURITY_ATTRIBUTES)
IpSecurityDescriptor
一个指向SECURITY_DESCRIPTOR 结构的指针,这个结构控制了对对象的访间权限
如果这个成员设为NULL,那么这个对象会使用与调用进程的令牌相关的安全描述符。对每 一个人
设定这个成员为NULL,各人的访间权限是不一样的。
(Discretionary access control list(DAC默认情况,一个进程的访间令牌的默认DACL只允许
在访间令牌下对用户的访问)
这句话的英文版:By default,the default DACL in the access token of a process allows access
only to the user represented by the access toen表示难以理解.
bInheritHandle
一个布尔值,决定创建的对象句柄是否可继承.
这个结构体往往是作为一个函数的参数传入的,比如CreateFile中的一个参数
_In_opt_LPSECURITY_ATTRIBUTES IpSecurityAttributes给这个参数传入SECURITY_ATTRIBUTES 结构,
并通过设定blnheritHandle的值决定FILE对象的句柄是否可继承。




