TDM Rerun #10: Synchronisation Toolkit Revisited
My 10th TDM article returned to my pet theme - synchronisation and communication. First part described some aspects of the NT security model and second implemented shared memory-based queue, capable of transporting messages from a GUI application to a service and back. It looks like I'll have to return to that topic again - I got some reports recently that my approach doesn't (always?) work on Vista :( Links: article (PDF, 54KB), source code (ZIP, 2.2 MB), current GpSync unit Labels: Delphi, source code, The Delphi Magazine |
5 Comments:
"It looks like I'll have to return to that topic again - I got some reports recently that my approach doesn't (always?) work on Vista :("
No it doesn't work in Vista at all in my tests.
Well,
i fixed it like this :
in TGpToken.Create(withPrefix: string) change the line
gtTokenName := withPrefix + Copy(gtTokenName, 2, Length(gtTokenName)-2);
with
gtTokenName := 'Global\' + withPrefix + Copy(gtTokenName, 2, Length(gtTokenName)-2);
Now if you add 'Global\' to your Namespaces strings, the code is working ....
Thanks for the info! I'll incorporate it into the codebase.
The 'Global\' prefix will work in Vista but will not in XP without Terminal Services installed ...
Please read this http://msdn.microsoft.com/en-us/library/aa382954(VS.85).aspx, reg. Kernel Object Namespaces before you make any changes ....
Thanks. Will do. In all cases, I didn't intend to force 'Global\' prefix on all OSes. I know what is the function of 'Global\' and 'Local\'.
Post a Comment
Links to this post:
Create a Link
<< Home