Ok, I decided to leave EventLog and do something else until required
widl features will be implemented :)
Are there any undocumented rpc interfaces needed for compatibility with
windows? If yes, I can try to reverse engeneer them.
I've just compared our svcctl.idl to IDA disassembly of advapi32. GUID
and stub order are the same(someone already researched it?). Missing
stubs are:
10 - I_ScSetServiceBitsW
11 - ChangeServiceConfigW
13 - EnumDependentServicesW
14 - EnumServiceGroupW
17 - QueryServiceConfigW
18 - QueryServiceLockStatusW
19 - StartServiceW
20 - GetServiceDisplayNameW
21 - GetServiceKeyNameW
22 - I_ScSetServiceBitsA
23 - ChangeServiceConfigA
24 - CreateServiceA
25 - EnumDependentServicesA
26 - EnumServicesStatusA
29 - QueryServiceConfigA
30 - QueryServiceLockStatusA
31 - StartServiceA
32 - GetServiceDisplayNameA
33 - GetServiceKeyNameA
34 - Unknown
35 - EnumServiceGroupW
36 - ChangeServiceConfig2A
37 - ChangeServiceConfig2W
38 - QueryServiceConfig2A
39 - QueryServiceConfig2W
40 - QueryServiceStatusEx
41 - EnumServicesStatusExA
42 - EnumServicesStatusExW
43 - I_ScSendTSMessage
I didn't looked at parameters yet.
Eric Kohl wrote:
Hello Saveliy!
Hi. I'm implementing an EventLog service now.
I want to make it 100%
compatible with windows. Windows machines will be able to access
reactos eventlog via rpc.
That's great! Thanks for your contribution!
Undocumented rpc interface is almost reversed
now. You can find it in
attached archive with some tests. Ansi functions work very well, but
I have some problems with unicode ones. When I pass initialized with
nulls UNICODE_STRING to a function, it works. When I initialize
structure with some other values, exception is raised on server side
(1783 Stub received bad data). I don't know why this happens. Advapi32
initializes structures with RtlInitUnicodeString, nothing special. Any
ideas?
No, not yet.
And I don't know how to compile this with
widl and gcc. SEH is not
implemented in gcc, right? How rpc exceptions are handled in ROS? Widl
returns strange errors. Somebody familiar with widl please help me =)
WIDL is not ready to compile your attached eventlogrpc.idl because a lot
of required features are not implemented yet. WIDL might crash, return
strange error messages or generate buggy stub code.
WIDL generates SEH-protected stub code. When gcc compiles the stub code
the SEH code gets disabled by rpc.h because gcc does not support SEH.
But we are able to implement support for our ReactOS-specific SEH macros.
Implementing the required features will take several months because I
have very very little time to work on ReactOS.
Regards
Eric Kohl
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.com
http://reactos.com:8080/mailman/listinfo/ros-dev