Deseo implementar IPC usando memoria compartida con nombre.Error del sistema 0x5: CreateFileMapping()
Para ello, uno de los pasos es conseguir un identificador de un objeto de memoria Mapeo, utilizando CreateFileMapping().
lo hago exactamente como el sitio web de 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();
Sin embargo, el mango devuelto es siempre 0x0, y el código de error Sistema devuelto es: 0x5 (Acceso denegado.)
- Sólo la memoria nombrada Compartiendo deseado (no compartir archivos).
- de Windows 7 x64 OS
- derechos de usuario del administrador de bits disponibles
- aplicación desarrollada: 64 bits aplicación plug-in (.dll)
¿Alguien tiene la misma experiencia, y una forma de arreglarlo, por favor? Utilizo el sitio de MSDN como mi referencia, por lo que no creo que haya un problema en el código.
No estoy seguro de que sea el motivo, pero ¿no necesita establecer el tamaño máximo de objeto para que sea un múltiplo de la página de memoria (4096 bytes)? –
Hola Eugene, no, el problema fue que no configuré SeCreateGlobalPriviledge. –