🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.ms-windows.winnt
9 messages
9 total messages Started by radekp Tue, 20 May 2025 06:45
dllhost.exe
#286478
Author: radekp
Date: Tue, 20 May 2025 06:45
4 lines
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
#286479
Author: Arkadiusz 'Black Fox' Artyszuk
Date: Tue, 20 May 2025 10:26
12 lines
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
#286480
Author: Grzegorz Niemirowski
Date: Tue, 20 May 2025 11:09
20 lines
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
#286481
Author: radekp
Date: Tue, 20 May 2025 12:03
23 lines
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
#286482
Author: Grzegorz Niemirowski
Date: Tue, 20 May 2025 13:32
16 lines
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
#286483
Author: radekp
Date: Tue, 20 May 2025 15:47
17 lines
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
#286484
Author: Grzegorz Niemirowski
Date: Tue, 20 May 2025 16:35
10 lines
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
#286485
Author: radekp
Date: Wed, 21 May 2025 08:09
12 lines
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
#286486
Author: Grzegorz Niemirowski
Date: Wed, 21 May 2025 21:45
24 lines
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