mspapant / gdipp

Automatically exported from code.google.com/p/gdipp
0 stars 0 forks source link

Windows service won't start #21

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Install x64
2. Go to services manage
3. Start 32bit or 64bit service

What is the expected output? What do you see instead?
Cannot start

What version of gdipp are you using? On what operating system (with
bitness)?
0.6.1 on windows 7 ultimate x64

Please provide any additional information below.
After the service failed to start, the font in Window system(folder, start 
menu, etc) is rendered. However, other applications do not render.

Original issue reported on code.google.com by DCatcher...@gmail.com on 20 Mar 2010 at 2:29

GoogleCodeExporter commented 8 years ago
I cannot reproduce the problem in my computer, but I noticed this in my 
friend's. It
seems be caused because some processes still posses gdimm_xx.dll when the 
service is
about to start. I do not have a neat solution of this problem so far. You can 
kill
those processes (find through Process Explorer) or log off (or restart) or avoid
stopping the service.

Original comment by crendk...@gmail.com on 21 Mar 2010 at 12:28

GoogleCodeExporter commented 8 years ago
I checked your suggestion. After installation, only explorer.exe is injected 
with 
gdimm_64.dll along with m$'s gdi32.dll and gdiplus.dll. Then the service throws 
an 
error and stopped. I can not start the service even if I kill explorer.exe. So 
maybe 
gdimm_64.dll somehow can not be injected to other process?

Program loader works well for other app though.

Original comment by DCatcher...@gmail.com on 21 Mar 2010 at 2:52

GoogleCodeExporter commented 8 years ago
I also notice the excluded process list is empty in setting.xml. Is that right? 
I 
remember gdi++ gets a handful of excluded process.

Original comment by DCatcher...@gmail.com on 21 Mar 2010 at 2:58

GoogleCodeExporter commented 8 years ago
And register mode doesn't work either, probably for the same reason as service 
mode.

Original comment by DCatcher...@gmail.com on 21 Mar 2010 at 3:00

GoogleCodeExporter commented 8 years ago
[Exclude]
;不渲染的字体列表
FIXEDSYS
Marlett

;[ExcludeModule]
[UnloadDll]
;排除的程序列表
agrsmsvc.exe
avp.exe
audiodg.exe
ccApp.exe
conhost.exe
conime.exe
CppIDE.exe
csrss.exe
cstrike.exe
ctfmon.exe
dllhost.exe
dwm.exe
fontview.exe
GoogleUpdate.exe
hpgs2wnf.exe
imejpmgr.exe
jqs.exe
jusched.exe
lsass.exe
lsm.exe
mdm.exe
mencoder.exe
msdev.exe
nvvsvc.exe
nvsvc32.exe
oobechk.exe
peer.exe
peeradapter.exe
PinyinUp.exe
ppsap.exe
QQShell.exe
RichVideo.exe
RTHDCPL.exe
RtHDVCpl.exe
Safari.exe
SearchFilterHost.exe
SREngPS.EXE
SearchProtocolHost.exe
searchindexer.exe
services.exe
scardsvr.exe
smss.exe
smax4pnp.exe
spoolsv.exe
svchost.exe
SynTPEnh.exe
taskeng.exe
taskhost.exe
ThunderService.exe
TXPlatform.exe
unsecapp.exe
userinit.exe
userNetSchedule.exe
VPTray.exe
wininit.exe
wmdc.exe
WMIADAP.exe
wmiprvse.exe
wmpnetwk.exe
winlogon.exe
wscntfy.exe
wudfhost.exe
xdict.exe

Original comment by DCatcher...@gmail.com on 21 Mar 2010 at 3:41

Attachments:

GoogleCodeExporter commented 8 years ago
I seems found the reason of service not restarting. If some processes are 
injected by
the service, then the service stop while these processes still have 
gdimm_xx.dll, the
service cannot restart. I'm working on this problem. It should be fixed in the 
next
release.

The exclusion list in 0.6.1 only contains `excluded\.exe` for example after
installation. There is a minimum recommendation list for excluding, in SETTING.
However, this list only applies to Registry load mode, since the service mode 
only
injects gdimm_xx.dll to newly created processes, and those system process are 
likely
to be already existed when the service process is starting. I may probably add 
these
list to the default setting.xml in the next release.

Original comment by crendk...@gmail.com on 21 Mar 2010 at 9:20

GoogleCodeExporter commented 8 years ago

Original comment by crendk...@gmail.com on 22 Mar 2010 at 9:29

GoogleCodeExporter commented 8 years ago
0.7 release fix the problem partially.

After a fresh install, no error occurs, 64bit service is started normally. But 
32bit is 
not. When I try to start 32bit service, the same error occurs.

However, If I set both service from manual to automatic, after a restart, both 
services start normally. Both services can be stopped and restarted normally.

So I suggest change to service start type to automatic and force a restart 
after 
installation.

Thanks for the great work! You are great tooo~

Original comment by DCatcher...@gmail.com on 23 Mar 2010 at 3:40

GoogleCodeExporter commented 8 years ago
If 64-bit service works fine, I cannot understand why not the 32-bit. You may 
try to
change back to Manual and try more.

It is dangerous to set the service to Automatic. In case if there is a severe 
bug
like 0.6.0, user cannot login Windows again.

Original comment by crendk...@gmail.com on 23 Mar 2010 at 4:56