From c8b67f57b6a49bd20bfc95e01e77ae139e70b032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 16 Dec 2014 21:48:23 +0000 Subject: [PATCH] [KERNEL32][BASESRV] On Windows 2k3, BASESRV_API_CONNECTINFO went under a slimming treatment and now is only 4 bytes. In fact all its information was already existing in the static base data structure (BaseStaticServerData). We should now be more 2k3-compatible :) Fix also the testbots. svn path=/trunk/; revision=65690 --- reactos/dll/win32/kernel32/client/dllmain.c | 10 +++++----- reactos/include/reactos/subsys/win/base.h | 3 ++- reactos/include/reactos/subsys/win/basemsg.h | 13 ++++--------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/reactos/dll/win32/kernel32/client/dllmain.c b/reactos/dll/win32/kernel32/client/dllmain.c index 26c24cf5d43..f48199f64ad 100644 --- a/reactos/dll/win32/kernel32/client/dllmain.c +++ b/reactos/dll/win32/kernel32/client/dllmain.c @@ -88,8 +88,8 @@ DllMain(HANDLE hDll, LPVOID lpReserved) { NTSTATUS Status; - ULONG Dummy; - ULONG DummySize = sizeof(Dummy); + BASESRV_API_CONNECTINFO ConnectInfo; + ULONG ConnectInfoSize = sizeof(ConnectInfo); WCHAR SessionDir[256]; DPRINT("DllMain(hInst %p, dwReason %lu)\n", @@ -133,11 +133,11 @@ DllMain(HANDLE hDll, WIN_OBJ_DIR); } - /* Connect to the base server */ + /* Connect to the Base Server */ Status = CsrClientConnectToServer(SessionDir, BASESRV_SERVERDLL_INDEX, - &Dummy, - &DummySize, + &ConnectInfo, + &ConnectInfoSize, &BaseRunningInServerProcess); if (!NT_SUCCESS(Status)) { diff --git a/reactos/include/reactos/subsys/win/base.h b/reactos/include/reactos/subsys/win/base.h index 3db86bc631c..6667bcbe877 100644 --- a/reactos/include/reactos/subsys/win/base.h +++ b/reactos/include/reactos/subsys/win/base.h @@ -131,7 +131,8 @@ typedef struct _BASE_STATIC_SERVER_DATA BOOLEAN LUIDDeviceMapsEnabled; ULONG TermsrvClientTimeZoneChangeNum; } BASE_STATIC_SERVER_DATA, *PBASE_STATIC_SERVER_DATA; -#ifndef _WIN64 + +#if defined(_M_IX86) C_ASSERT(sizeof(BASE_STATIC_SERVER_DATA) == 0x1AC8); #endif diff --git a/reactos/include/reactos/subsys/win/basemsg.h b/reactos/include/reactos/subsys/win/basemsg.h index d23d22dbbd3..9d0761e2d77 100644 --- a/reactos/include/reactos/subsys/win/basemsg.h +++ b/reactos/include/reactos/subsys/win/basemsg.h @@ -53,19 +53,14 @@ typedef enum _BASESRV_API_NUMBER BasepMaxApiNumber } BASESRV_API_NUMBER, *PBASESRV_API_NUMBER; - typedef struct _BASESRV_API_CONNECTINFO { - ULONG ExpectedVersion; - HANDLE DefaultObjectDirectory; - ULONG WindowsVersion; - ULONG CurrentVersion; - ULONG DebugFlags; - WCHAR WindowsDirectory[MAX_PATH]; - WCHAR WindowsSystemDirectory[MAX_PATH]; + ULONG DebugFlags; } BASESRV_API_CONNECTINFO, *PBASESRV_API_CONNECTINFO; -#define BASESRV_VERSION 0x10000 +#if defined(_M_IX86) +C_ASSERT(sizeof(BASESRV_API_CONNECTINFO) == 0x04); +#endif typedef struct _BASE_SXS_CREATEPROCESS_MSG