Thread View: pl.comp.os.ms-windows.winnt
9 messages
9 total messages
Started by radekp
Tue, 20 May 2025 06:45
dllhost.exe
Author: radekp
Date: Tue, 20 May 2025 06:45
Date: Tue, 20 May 2025 06:45
4 lines
1029 bytes
1029 bytes
Jaka jest rola tego programu? Pytam, bo czasem (po crashu programu) nie mogę skasować pliku z dysku, ponieważ ten program go "trzyma". I wtedy muszę najpierw skilować ten proces dllhost.exe
Re: dllhost.exe
Author: Arkadiusz 'Black Fox' Artyszuk
Date: Tue, 20 May 2025 10:26
Date: Tue, 20 May 2025 10:26
12 lines
1383 bytes
1383 bytes
W dniu 20.05.2025 o 08:45, radekp@konto.pl pisze: > Jaka jest rola tego programu? > > Pytam, bo czasem (po crashu programu) nie mogę skasować pliku z dysku, ponieważ > ten program go "trzyma". I wtedy muszę najpierw skilować ten proces dllhost.exe https://pcpro.pl/dllhost-exe-wszystko-co-musisz-wiedziec-o-tym-procesie -- Z poważaniem Arkadiusz 'Black Fox' Artyszuk
Re: dllhost.exe
Author: Grzegorz Niemirowski
Date: Tue, 20 May 2025 11:09
Date: Tue, 20 May 2025 11:09
20 lines
2322 bytes
2322 bytes
Arkadiusz 'Black Fox' Artyszuk <blackfox_pl@protonmail.com> napisał(a): > https://pcpro.pl/dllhost-exe-wszystko-co-musisz-wiedziec-o-tym-procesie Wbrew tytułowi artykuł ten nie tłumaczy wszystkiego, a nawet wprowadza w błąd. Po pierwsze dllhost nie obsługuje klasycznych bibliotek, a jedynie COM. Tekst sugeruje, że każda DLL jest ładowana przez dllhost. Po drugie nawet w przypadku bibliotek COM proces dllhost nie jest niezbędny. Jest on używany przez programistów podejrzewających, że biblioteka może być niestabilna, i niechcących żeby wywalająca się biblioteka pociągnęła za sobą cały program. Przykładem może być explorer.exe i biblioteki różnych firm dodające podgląd plików graficznych. Z pomocą przychodzi tutaj właśnie dllhost, który ładuje daną bibliotekę zamiast właściwego programu i potem pośredniczy między tym programem a biblioteką. W przypadku błędu w bibliotece wywali się proces dllhost.exe, a program będzie mógł działać dalej. Ale czasem może zajść sytuacja odwrotna: to program się wywali, a dllhost zostanie. To właśnie zaobserwował pytający. -- Grzegorz Niemirowski https://www.grzegorz.net/
Re: dllhost.exe
Author: radekp
Date: Tue, 20 May 2025 12:03
Date: Tue, 20 May 2025 12:03
23 lines
2477 bytes
2477 bytes
Tue, 20 May 2025 13:09:50 +0200, w <100hntp$l9p$1@news.chmurka.net>, "Grzegorz Niemirowski" <grzegorz@grzegorz.net> napisał(-a): > Arkadiusz 'Black Fox' Artyszuk <blackfox_pl@protonmail.com> napisał(a): > > https://pcpro.pl/dllhost-exe-wszystko-co-musisz-wiedziec-o-tym-procesie > > Wbrew tytułowi artykuł ten nie tłumaczy wszystkiego, a nawet wprowadza w > błąd. Po pierwsze dllhost nie obsługuje klasycznych bibliotek, a jedynie > COM. Tekst sugeruje, że każda DLL jest ładowana przez dllhost. Po drugie > nawet w przypadku bibliotek COM proces dllhost nie jest niezbędny. Jest on > używany przez programistów podejrzewających, że biblioteka może być > niestabilna, i niechcących żeby wywalająca się biblioteka pociągnęła za sobą > cały program. Przykładem może być explorer.exe i biblioteki różnych firm > dodające podgląd plików graficznych. Z pomocą przychodzi tutaj właśnie > dllhost, który ładuje daną bibliotekę zamiast właściwego programu i potem > pośredniczy między tym programem a biblioteką. W przypadku błędu w > bibliotece wywali się proces dllhost.exe, a program będzie mógł działać > dalej. Ale czasem może zajść sytuacja odwrotna: to program się wywali, a > dllhost zostanie. To właśnie zaobserwował pytający. A w takim przypadku dllhost jako proces podrzędny nie powinien się automatycznie zamknąć? Czy to nie tak działa? I ogólnie -- czy można takiej sytuacji zapobiec modyfikując program?
Re: dllhost.exe
Author: Grzegorz Niemirowski
Date: Tue, 20 May 2025 13:32
Date: Tue, 20 May 2025 13:32
16 lines
1833 bytes
1833 bytes
radekp@konto.pl <radekp@konto.pl> napisał(a): > A w takim przypadku dllhost jako proces podrzędny nie powinien się > automatycznie zamknąć? Czy to nie tak działa? Nie ma czegoś takiego, że procesy potomne zamykają się automatycznie razem z tym, który je uruchomił. A i tak nic by to nie dało, bo dllhost.exe jest uruchamiany przez svchost.exe, a nie przez program chcący użyć DLL. > I ogólnie -- czy można takiej sytuacji zapobiec modyfikując program? Nie wiem, ale raczej nie, skoro to Windows (przez svchost.exe) uruchamia dllhost, a nie dany program. -- Grzegorz Niemirowski https://www.grzegorz.net/
Re: dllhost.exe
Author: radekp
Date: Tue, 20 May 2025 15:47
Date: Tue, 20 May 2025 15:47
17 lines
1852 bytes
1852 bytes
Tue, 20 May 2025 15:32:35 +0200, w <100i09k$skg$1@news.chmurka.net>, "Grzegorz Niemirowski" <grzegorz@grzegorz.net> napisał(-a): > radekp@konto.pl <radekp@konto.pl> napisał(a): > > A w takim przypadku dllhost jako proces podrzędny nie powinien się > > automatycznie zamknąć? Czy to nie tak działa? > > Nie ma czegoś takiego, że procesy potomne zamykają się automatycznie razem z > tym, który je uruchomił. A i tak nic by to nie dało, bo dllhost.exe jest > uruchamiany przez svchost.exe, a nie przez program chcący użyć DLL. Ale rozumiem, że svchost jest uruchamiany przez główny program. > > I ogólnie -- czy można takiej sytuacji zapobiec modyfikując program? > > Nie wiem, ale raczej nie, skoro to Windows (przez svchost.exe) uruchamia > dllhost, a nie dany program.
Re: dllhost.exe
Author: Grzegorz Niemirowski
Date: Tue, 20 May 2025 16:35
Date: Tue, 20 May 2025 16:35
10 lines
1600 bytes
1600 bytes
radekp@konto.pl <radekp@konto.pl> napisał(a): > Ale rozumiem, że svchost jest uruchamiany przez główny program. Nie, svchost.exe jest uruchamiany przez services.exe. Główny program bezpośrednio nie uruchamia niczego związanego z dllhost. Windows tym się zajmuje. -- Grzegorz Niemirowski https://www.grzegorz.net/
Re: dllhost.exe
Author: radekp
Date: Wed, 21 May 2025 08:09
Date: Wed, 21 May 2025 08:09
12 lines
1679 bytes
1679 bytes
Tue, 20 May 2025 18:35:03 +0200, w <100iavm$6r7$1@news.chmurka.net>, "Grzegorz Niemirowski" <grzegorz@grzegorz.net> napisał(-a): > radekp@konto.pl <radekp@konto.pl> napisał(a): > > Ale rozumiem, że svchost jest uruchamiany przez główny program. > > Nie, svchost.exe jest uruchamiany przez services.exe. Główny program > bezpośrednio nie uruchamia niczego związanego z dllhost. Windows tym się > zajmuje. Czyli jak to wygląda? Program główny zgłasza żądanie do services.exe, ten do svchost.exe, który to następnie ładuje dllhost?
Re: dllhost.exe
Author: Grzegorz Niemirowski
Date: Wed, 21 May 2025 21:45
Date: Wed, 21 May 2025 21:45
24 lines
2664 bytes
2664 bytes
radekp@konto.pl <radekp@konto.pl> napisał(a): > Czyli jak to wygląda? Program główny zgłasza żądanie do services.exe, > ten do svchost.exe, który to następnie ładuje dllhost? Celowo podkreślałem, że Windows tym się zajmuje :) Program nie musi sam odwoływać się do tych procesów ani nic o nich wiedzieć. Ogólnie do tworzenia obiektów COM z bibliotek DLL (tych rejestrowanych za pomocą regsvr32) programy najczęściej używają funkcji CoCreateInstance(). Jednym z jej parametrów jest dwClsContext. Jeśli program przekaże w nim flagę CLSCTX_LOCAL_SERVER, wówczas Windows będzie próbował załadować bibliotekę dla tego programu w zewnętrznym procesie. W tym celu w rejestrze, w kluczu klasy danego obiektu, sprawdza wartość DllSurrogate. Jeśli jest ona pusta, używany jest proces dllhost.exe. A jeśli nie jest pusta, to używany jest proces podany w tej wartości. W każdym razie tym zajmuje się system i to już jego sprawa czy po drodze użyje services.exe i svchost.exe czy coś innego. Program ma tylko wywołać CoCreateInstance(). https://learn.microsoft.com/en-us/windows/win32/com/dllsurrogate https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cocreateinstance -- Grzegorz Niemirowski https://www.grzegorz.net/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads