[FIXED] Task/hook.dll teilweise nicht entladen?

Einen Fehler gefunden? Gleich hier melden!
Post Reply
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

[FIXED] Task/hook.dll teilweise nicht entladen?

Post by Bartman » Fri Apr 27, 2007 7:10 am

Ich hatte es jetzt schon ein paar Mal (aber nicht immer), dass beim Updaten die Meldung kommt, dass die Task\hook.dll nicht ersetzt werden kann.
Abmelden reicht da schon.

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster » Fri Apr 27, 2007 1:02 pm

Ja, das Problem hatte ich auch schon mal. Und dummerweise habe ich dafür noch keine wirkliche Lösung. Irgendwie will Windows sie manchmal nicht freigeben, obwohl sie nicht mehr gebraucht wird. Vielleicht werde ich das beim Installer einfach auf "Ignore" setzen, weil die DLL sich sowieso nicht oft ändern wird.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster » Fri Apr 27, 2007 4:41 pm

Ich hab noch etwas experimentiert und es scheint so zu sein, dass dieser Fehler nur auftritt, wenn EG bei der Ausführung des Updaters läuft. Es kommt dann die Meldung EG zu beenden und wenn man es macht, kommt der "Zugriff verweigert" Fehler für die hook.dll.

Das ist jetzt etwas komisch, denn der Updater ist es selber, der das Handle auf die DLL offen hält. Die DLL nistet sich nämlich in jeden Prozess ein und geht auch anstandslos beim Beenden von EG überall wieder raus. Nur bei dem Updater macht sie es witziger weise nicht.

Also der Workaround zur Zeit:
EG vor dem Ausführen des Updaters beenden.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: [OPEN] Task/hook.dll teilweise nicht entladen?

Post by Bitmonster » Fri Jul 20, 2007 1:44 pm

Ich glaube den Fehler habe ich jetzt gefixt. Nach 0.3.6.1044 sollte das funktionieren. Also beim Update auf 1044 kann es noch passieren, aber danach nicht mehr.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Re: [FIXED] Task/hook.dll teilweise nicht entladen?

Post by Bartman » Sat Aug 04, 2007 2:15 pm

Also ich hatte den Fehler gerade beim Setup von 1058 wieder.

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: [FIXED] Task/hook.dll teilweise nicht entladen?

Post by Bitmonster » Sat Aug 04, 2007 2:27 pm

Hmm, stimmt. Wenn ich 1058 zweimal installiere passiert es wieder.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: [RE-OPENED] Task/hook.dll teilweise nicht entladen?

Post by Bitmonster » Wed Mar 12, 2008 11:18 am

Leider scheint es noch immer nicht möglich zu sein, eine DLL für einen Windows-Hook normal auszutauschen. Nachdem EG sie freigegeben hat, muss jeder Prozess sie ebenfalls noch freigeben, was im Normalfall auch sehr schnell geschieht. Nur der Installer selber scheint während er diese Meldung anzeigt nicht in der Lage dazu zu sein.

Ich versuche das Problem jetzt mal dadurch zu lösen, dass ich der DLL eine Versions-Information gegeben habe. Der Installer versucht jetzt nur dann sie auszutauschen, wenn die DLL-Version sich geändert hat und das kommt bei der DLL bestimmt nur sehr selten vor.

Also nachdem 0.3.6.1308 installiert ist, sollte der Fehler so gut wie nicht mehr auftauchen.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

CHeitkamp
Plugin Developer
Posts: 49
Joined: Sun Jan 27, 2008 12:42 pm
Location: Münster / Germany

Re: [FIXED] Task/hook.dll teilweise nicht entladen?

Post by CHeitkamp » Wed Mar 12, 2008 1:52 pm

Zwei andere mögliche Ansätze:

- Mit dem Installer die DLL umbenennen (dürfte auch gehen, wenn diese noch benutzt wird)
- neue DLL installieren
- Eintrag in HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations, damit die Datei beim nächten Boot gelöscht wird

oder:

- Hook deaktivieren
- Installer startet sich selber neu

Post Reply