Services - Winlogon and Default Desktop

G

Greg Holmes

I'm using a 3rd party API which runs as a Windows service on the XP Embedded
OS I have developed. The information states that the service starts during
system boot and launches two copies of the same executable. These attach to
the Winlogon and default desktop via Microsoft's SetWindowsHookEx API.

My XPe OS uses the Windows Logon component so I'm okay about that but could
anyone explain about the Default Desktop and how the exe runs under that? Is
it due to seperate accounts being active at the same time?

Many Thanks for your reply
 
S

Sean Liming \(MVP\)

Can you tell use more information on the API and service?

It might be that the service is account based. The Local host sevice runs
first, when you logon to a shell like Explorer shell you are in a different
account so the service might start again.

Regards,

Sean Liming
www.sjjmicro.com / www.seanliming.com
Book Author - XP Embedded Advanced, XP Embedded Supplemental Toolkit
 
K

KM

Greg,

On NT based OS-es (2K, XP, Vista) WinLogon UI runs in a separate Desktop (WinSta0\\Winlogon desktop) from any user account Desktop.
As a matter of fact, Winlogon (GINA, actually) creates 3 desktops - an application desktop (used by the user), a winlogon desktop
(used by the winlogon to display the login UI), and a screensaver desktop (to run the screensavers). This logic has been changed a
little bit in Vista but since we are talking about XPe it doesn't really matter here.

You can launch an executable on any desktop as many times as you'd want it to. It would be a matter of the application itself to
communicate between all its instances (there is an API that allows to cross the user account and Desktop boundaries).

Please take a look at the Windows Station and Desktop API: http://msdn2.microsoft.com/en-us/library/ms687107(VS.85).aspx

My guess is that by Default Desktop you meant the logged user Desktop.
 
G

gregory.holmes

Greg,

On NT based OS-es (2K, XP, Vista) WinLogon UI runs in a separate Desktop (WinSta0\\Winlogon desktop) from any user account Desktop.
As a matter of fact, Winlogon (GINA, actually) creates 3 desktops - an application desktop (used by the user), a winlogon desktop
(used by the winlogon to display the login UI), and a screensaver desktop (to run the screensavers). This logic has been changed a
little bit in Vista but since we are talking about XPe it doesn't really matter here.

You can launch an executable on any desktop as many times as you'd want it to. It would be a matter of the application itself to
communicate between all its instances (there is an API that allows to cross the user account and Desktop boundaries).

Please take a look at the Windows Station and Desktop API:http://msdn2.microsoft.com/en-us/library/ms687107(VS.85).aspx

My guess is that by Default Desktop you meant the logged user Desktop.

Sean, KM

Thanks for your advice. I have found that the service runs on both the
Winlogon Desktop and the user desktop concurrently.
It seems that in my build, including the Windows Logon and Automatic
Logon components created the necessary accounts for the service to
attach to.

Thanks for your help.

Regards

Greg
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top