名前付き共有メモリを使用して IPC を実装したいと考えています。
これを行うための手順の 1 つは、 CreateFileMapping()を使用してMapping Memory Objectへのハンドルを取得することです。
MSDN Web サイトが推奨するとおりに実行します: 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();
ただし、返されるハンドルは常に0x0で、返されるシステム エラー コードは0x5 (アクセスが拒否されました) です。
- 名前付きメモリ共有のみが必要です (ファイル共有ではありません)。
- Windows 7 x64ビット OS
- 管理者のユーザー権限が利用可能
- 開発アプリケーション: 64bit Plug-In アプリケーション(.dll)
どなたか同じ経験のある方、改善方法を教えてください。私はMSDNのサイトを参考にしているので、コードに問題があるとは思いません。