这周遇到这样一个问题: 在win7下, 一个管理员权限的程序创建的named pipe, 不能被另外一个普通运行的程序使用CreateFile去连接。GetLastError发现是ERROR_ACCESS_DENIED.
网上找来的代码, 创建出来的权限就是每一个人都可以访问的权限:
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;