Laden...

Mutex createdNew immer false

Erstellt von rollerfreak2 vor 13 Jahren Letzter Beitrag vor 13 Jahren 727 Views
rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 13 Jahren
Mutex createdNew immer false

Hallo zusammen,

ich habe eine Problem mit Mutex. Ich nutze eine zugelieferte Assembly und die nutzt ihrer seits Mutex. Ich versuch mal kurz das Problem zu erklären. Vor jedem aufruf einer methode dieser Zulieferung wird gecheckt ob der Mutex "einmalig" ist. Daher Legt die Instanz einen Mutex mit folgenden ctor an.


m_OneInstance=new Mutex(true,m_UniqueName,out m_IsOwned);

Das Problem ist das immer dort m_IsOwned == false zurück kommt, daher es gibt im System schon mal so einen Mutex. Dieser kann aber nicht von der Komponente angelegt worden sein, denn dann hätte ich es ja mit dem Breakpoint gesehen. Was ich nun will ist folgendes. Kann man irgendwie feststellen welcher Prozess diesen Mutex angelegt hat, eventuell sogar welche Klasse?

Ich hab sonst keine Ahnung wie ich heraus bekommen soll wann und wo der Mutex das ERSTE mal erstellt wird!

Again what learned...

1.361 Beiträge seit 2007
vor 13 Jahren

Hi rollerfreak2,

Kann man irgendwie feststellen welcher Prozess diesen Mutex angelegt hat [...]

Ja, mit dem ProcessExplorer.

Dort einfach oben "Find" > "Find Handle or DLL" wählen (bzw. auch gleich Strg+F drücken), den Namen deines Mutexes eingeben, und schon siehst du wer alles ein Handle auf diesen Mutex hat.

Wenn du nur mal so gucken willst, was alles für Mutexe grad an sind, empfehle ich WinObj. Dort kannst du alle Objekte begutachten - und darunter natürlich auch die Mutexe. Bzw. in Kernelsprache "Mutant".

beste Grüße
zommi

rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 13 Jahren

Danke für die Info mit dem ProzessExplorer. Den hatte ich zwar schon aber wusste gar nicht das der das kann!

Again what learned...