内核对象能够得到安全描述符的保护。
安全描述符用于描述谁创建了该对象,谁能够访问或使用该对象,谁无权访问该对象。(安全描述符通常在编写服务器应用程序时使用,如果你编写客户机端的应用程序,那么可以忽略内核对象的这个特性。)
用于创建内核对象的函数几乎都有一个指向SECURITY_ ATTRIBUTES结构的指针作为其参数。
下面显示了CreateFileMapping函数的原型:
HANDLE CreateFileMapping(
HANDLE hFile.
PSECURITY_ATTRIBUTES psa,
DWORD flProtect,
DWORD dwMaximumSizeHigh,
DWORD dwMaximuniSizeLow,
PCTSTR pszNarne);
大多数应用程序只是为该参数传递NULL ,这样就可以创建带有默认安全性的内核对象。(默认安全性意味着对象的管理小组的任何成员和对象的创建者都拥有对该对象的全部访问权,而其他所有人均无权访问该对象。)
SECURITY_ ATTRIBUTES结构
可以指定一个SECURITY_ ATTRIBUTES结构,对它进行初始化,并为该参数传递该结构的地址。SECURITY_ATTRIBUTES结构类似下面的样子:
typedef struct_SECURITY_ATTRIBUTES
{
DWORD nLength,
LPVOID lpSecurityDescriptor;
BOOL bInherttHandle;
}SECURITY_ATTRIBUTES;
该结构包含的与安全性有关的成员实际上只有一个,即lpSecurityDescriptor。
本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/08/31/1813229.html