Services - Winlogon and Default Desktop

  • Thread starter Thread starter Greg Holmes
  • Start date Start date
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
 
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
 
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.
 
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
 
Back
Top