[ros-bugs] [Bug 6147] PATCH: Service Control Manager does not set Tags correctly -> Vboxguest.sys shows up several times on boot screen

ReactOS.Bugzilla at reactos.org ReactOS.Bugzilla at reactos.org
Sun May 15 18:07:18 UTC 2011


--- Comment #6 from ThFabba <thfabba at gmx.de>  2011-05-15 18:07:17 CET ---
Created an attachment (id=6354)
 --> (http://www.reactos.org/bugzilla/attachment.cgi?id=6354)
An possible implementation of ScmAssignNewTag that fixes the above tests

Here's my first attempt at implementing ScmAssignNewTag.

It uses a slightly different approach than I originally planned and behaves
more like Windows in that regard.
The function uses the service manager database to look for the smallest free
tag number available within the group, but does not use any tag that is already
contained in the GroupOrderList value for the group. Tests show that Windows
behaves the same (does not assign any tag in GroupOrderList, but assigns a tag
added to a service's registry key after system boot).

This fixes the above tests (and hopefully the vboxguest issue, which is not
always reproducible), but currently creates an issue with VirtualBox's mouse
integration. The VboxMouse service is apparently not created.
This appears at first glance to be a race condition that is made apparent by
RCreateServiceW taking a little longer (because of assigning a tag; discarding
the calculated result and assigning 0 as previously raises the same issue). I
do not see any locking of the database being done in that function, which seems
suspicious, but I could not yet investigate further.

As I've been pretty busy recently, and will likely have even less time for this
during the next months, I might not be able to attend to this problem very
much, though, so it might be considered Work in Progress if the problem is
indeed with my code.

Configure bugmail: http://www.reactos.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the Ros-bugs mailing list