X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Fwindows%2Ffile.cpp;h=51fe814a5e29b197f8843d3f4ae1d31653718297;hb=292aed8e23ea543b089d5f2a73000de4640befe7;hp=b973375475abe3554296969bb5a19ed836fbbe2f;hpb=609c9a508cfdc7b42c46c4f21d17639204165a00;p=libs%2Fcore.git diff --git a/source/io/windows/file.cpp b/source/io/windows/file.cpp index b973375..51fe814 100644 --- a/source/io/windows/file.cpp +++ b/source/io/windows/file.cpp @@ -33,7 +33,12 @@ void File::platform_init(const string &fn, CreateMode cm) else share_flags = FILE_SHARE_READ; - *handle = CreateFile(fn.c_str(), flags, share_flags, 0, create_flags, FILE_ATTRIBUTE_NORMAL, 0); + SECURITY_ATTRIBUTES sec_attr; + sec_attr.nLength = sizeof(SECURITY_ATTRIBUTES); + sec_attr.lpSecurityDescriptor = 0; + sec_attr.bInheritHandle = !!(mode&M_INHERIT); + + *handle = CreateFile(fn.c_str(), flags, share_flags, 0, create_flags, FILE_ATTRIBUTE_NORMAL, &sec_attr); if(!handle) { int err = GetLastError();