使用CreateDirectory、CreateFile创建目录和文件时,大多数人都将安全描述传NULL,这样有时候就会存在问题。如管理员权限创建的文件和目录,非管理员访问或使用就会失败,因此在使用这两个函数创建文件、目录时,如果有这方面的需求,就应该制定安全描述,或者将创建的文件、目录降低安全级别。
指定安全描述
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;
CreateDirectoryW(lpPathName, &sa );