- - PR -
名前でカーネルオブジェクトの取得
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-08-29 00:21
OS:WinXP sp2
環境:VC++ (MFC) 現在、異なるプロセスで作成したカーネルオブジェクトを取得する勉強をしています。試しに、カーネルオブジェクトとして Mutex を使っています。 CreateMutex() の第3引数の lpName に名前を設定して、他プロセス(他アプリ)からその名前を使って Open することを考えています。 ところが、OpenMutex() を行っても NULL が返ってきます。 そのため、まずは、CreateMutex() を行った直後に、OpenMutex() を行ってみましたら、 「error 5 : アクセスが拒否されました」 のエラーが出てしまいました。 具体的コードは以下の通りです。 ============================================================== #define MUTEX_OBJECT _T("Mutex_Process") ・・・・・略・・・・ { m_hMutex = CreateMutex( NULL, FALSE, MUTEX_OBJECT ); // m_hMutex はHANDLE型のメンバー変数 HANDLE hMutex = OpenMutex( NULL, FALSE, MUTEX_OBJECT ); if( NULL == hMutex ) { //メッセージを表示する。 <== 実行するとここに来る。 } =============================================================== 何が悪いのか教えてください。 よろしくお願いします。 | ||||
|
投稿日時: 2007-08-29 01:26
一切アクセス権のないMutexを開こうとしてるようにみえますよ。 第1引数に MUTEX_ALL_ACCESS を指定してやったらどうです? | ||||
|
投稿日時: 2007-08-30 22:51
ありがとうございます。
即、解決しました。 |
1