MapViewOfFile error 5

MapViewOfFile error 5
2018-03-01T16:23:50+01:00
2018-03-02T15:57:15+01:00
2022-10-15T21:30:20+02:00
*deleted_77141665
Sziasztok!

Windows alatt szeretnék osztott memóriát használni egy szervíz és egy felhasználói program között.
A szerviz megkreálja a leírót, de a felhasználói program MapViewOfFile függvénye mindig elszáll 5-ös hibakóddal.

Különböző forrásokban találtam, hogy a security attribútomot kell beállítani a CreateFileMaping-ban, de hiába próbáltam többféle megoldást, nem segített. Az ide vonatkozó kódrészlet:

security.nLength = sizeof(security); security.bInheritHandle = false; ConvertStringSecurityDescriptorToSecurityDescriptor(L"D:P(A;OICI;GA;;;SY)(A;OICI;GA;;;BA)(A;OICI;GWGRGX;;;AU)", SDDL_REVISION_1, &security.lpSecurityDescriptor, NULL); sMem = OpenFileMapping(PAGE_READWRITE, false, SMAPNAME); if ((sMem == NULL) && (GetLastError() == ERROR_FILE_NOT_FOUND)) { sMem = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, SBUFSIZE, SMAPNAME); if (sMem == NULL) return; } else return; sBuf = (LPTSTR)MapViewOfFile(sMem, FILE_MAP_ALL_ACCESS, 0, 0, SBUFSIZE); if (sBuf == NULL) return; hMux = OpenMutex(SYNCHRONIZE, false, SMUXNAME); if ((hMux == NULL) && (GetLastError() == ERROR_FILE_NOT_FOUND)) { hMux = CreateMutex(NULL, false, SMUXNAME); if (sMem == NULL) return; } else return;
A security stringből próbáltam több félét, persze a CreateFileMapping második paraméterében megadva a &security változót.

Előre is köszönöm a válaszokat.
Mutasd a teljes hozzászólást!
Ez alapján sikerült megcsinálni:

Creating a Security Descriptor for a New Object in C++ (Windows)

Kicsit módosítottam, a mindenkinek adtam teljes jogot.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd