advapi32: Fix EnumServicesStatus on Wow64.
commitac0744d4505a583de2cbdc6082f2726393c797df
authorHans Leidekker <hans@codeweavers.com>
Tue, 7 Nov 2017 13:10:39 +0000 (7 14:10 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 8 Nov 2017 20:06:40 +0000 (8 21:06 +0100)
treec3fdebb549a4c00f96d482b718c6fdcb5736df79
parent06d9c7e25e4ff71731c81f172269c8cd81b0c68a
advapi32: Fix EnumServicesStatus on Wow64.

The structures returned by this function contain pointers, which breaks on Wow64 if
the client is 32-bit (the service manager always runs in a 64-bit process).

This patch introduces a variant of ENUM_SERVICE_STATUS with offsets instead of pointers
and converts the structures on the client side.

The downside is that we need to buffer the data, but in return we can get rid of the
dummy buffer pointer.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/advapi32/service.c
include/wine/svcctl.idl
programs/services/rpc.c