Je souhaite implémenter IPC à l'aide de la mémoire partagée nommée.Erreur système 0x5: CreateFileMapping()
Pour ce faire, l'une des étapes est d'obtenir une poignée à un objet de mémoire Mapping , en utilisant CreateFileMapping().
je le fais exactement comme site 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();
Cependant, la poignée de retour est toujours 0x0, et le code d'erreur système retourné est: 0x5 (Accès refusé.)
- Seulement mémoire nommé Partage souhaité (pas de partage de fichiers).
- de Windows 7 x64 bit OS
- droits de l'utilisateur de l'administrateur disponible
- application développée: 64bit application plug-in (.dll)
Est-ce que quelqu'un a la même expérience, et un moyen de le réparer, s'il vous plaît? J'utilise le site MSDN comme référence, donc je ne pense pas, il y a un problème dans le code.
Vous n'êtes pas sûr que ce soit la raison, mais n'avez-vous pas besoin de définir la taille maximale de l'objet comme multiple de la page de mémoire (4096 octets)? –
Salut Eugene, non, le problème était que je ne dis pas SeCreateGlobalPriviledge. –