Chcę zaimplementować IPC przy użyciu nazwanej współużytkowanej pamięci.Błąd systemu 0x5: CreateFileMapping()
Aby to zrobić, jeden z kroków jest coraz uchwyt do mapowania pamięci dla obiektu, używając CreateFileMapping().
to zrobić dokładnie tak, jak strona internetowa MSDN reccommends: http://msdn.microsoft.com/en-us/library/aa366551(v=VS.85).aspx:
hFileMappingHandle = CreateFileMapping
(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
256, // maximum object size (low-order DWORD)
"Global\\MyFileMappingObject" // name of mapping object
);
DWORD dwError = GetLastError();
Jednak uchwyt zwrócony jest zawsze 0x0, a systemu Kod błędu zwrócony jest: 0x5 (Odmowa dostępu.)
- Dzielenie Tylko Nazwany pamięci pożądane (nie udostępnianie plików).
- systemu Windows 7 x64 bitowe OS
- prawa użytkownika Administratora dostępne
- Opracowany Zastosowanie: 64bit Plug-In aplikacji (.dll)
Czy ktoś ma podobne doświadczenia i sposób, aby to naprawić, proszę? Używam witryny MSDN jako mojej referencji, więc nie sądzę, jest problem w kodzie.
Nie jesteś pewien, że to jest powód, ale czy nie musisz ustawić maksymalnego rozmiaru obiektu na wielokrotność strony pamięci (4096 bajtów)? –
Cześć Eugene, nie, problemem było to, że nie ustawiłem SeCreateGlobalPriviledge. –