Windows安全属性的设定

来源:互联网 发布:山东师范大学网络平台 编辑:程序博客网 时间:2024/05/16 06:40
 

在使用CreateFileMappingCreateEventAPI候,常会遇到一个安全属性的定,一般的程序都会置成NULL,用系 的安全属性来定。但是在windows2003 服程序的开发中,用系的安全属性建一个FileMapping,即使是admin 也不能找开这FileMapping错误码5 了能其它用下运行的程序打开这个服程序建的FileMapping,需要作下面的定。

定之前先两个安全属性相API明。
WINADVAPI BOOL WINAPI InitializeSecurityDescriptor (PSECURITY_DESCRIPTORpSecurityDescriptor, DWORD dwRevision );
WINADVAPI BOOL WINAPI SetSecurityDescriptorDacl (PSECURITY_DESCRIPTORpSecurityDescriptor,
  BOOLbDaclPresent,  PACL pDacl, BOOLbDaclDefaulted );

InitializeSecurityDescriptor
API行安全属性描述初始化的,第一个参数pSecurityDescriptor是要行初始化的安全属性描述,第二个参数指定分配安全描述符的修订级别。它必指定SECURITY_DESCRIPTOR_REVISION

SetSecurityDescriptorDacl API安全属性定的
第一个参数:PSECURITY_DESCRIPT指向一个安全描述符
二个参数:bDaclPresent提示DACL是否存在,真的候,PSECURITY_DESCRIPT构造体中的 SE_DACL_PRESENT 志会初始化(用pDaclbDaclDefaulted),用FALSESE_DACL_PRESENT 志会被清除,参数pDaclbDaclDefaulted会被无
第三个参数:pDacl指向ACL构造体,个参数是空的候,会充任何程序访问这象。
第四个参数:bDaclDefaulted 指示标记,是既定的是用指定

想要做成一个任何程序都能访问的共享内存,参照下面代

    SECURITY_ATTRIBUTES sa;
    SECURITY_DESCRIPTOR sd;

    InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
    SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.bInheritHandle = TRUE;
    sa.lpSecurityDescriptor = &sd;

    CreateFileMapping(..,&sa,...);


原创粉丝点击