2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Base API Server DLL
4 * FILE: include/reactos/subsys/win/basemsg.h
5 * PURPOSE: Public definitions for communication
6 * between Base API Clients and Servers
7 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
15 #define BASESRV_SERVERDLL_INDEX 1
16 #define BASESRV_FIRST_API_NUMBER 0
18 // Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
19 typedef enum _BASESRV_API_NUMBER
21 BasepCreateProcess
= BASESRV_FIRST_API_NUMBER
,
28 BasepGetNextVDMCommand
,
33 BasepSetProcessShutdownParam
,
34 BasepGetProcessShutdownParam
,
36 BasepNlsSetMultipleUserInfo
,
37 BasepNlsCreateSection
,
42 BasepSoundSentryNotification
,
43 BasepRefreshIniFileMapping
,
45 BasepSetTermsrvAppInstallMode
,
46 BasepNlsUpdateCacheCount
,
47 BasepSetTermsrvClientTimeZone
,
48 BasepSxsCreateActivationContext
,
53 } BASESRV_API_NUMBER
, *PBASESRV_API_NUMBER
;
56 typedef struct _BASESRV_API_CONNECTINFO
58 ULONG ExpectedVersion
;
59 HANDLE DefaultObjectDirectory
;
63 WCHAR WindowsDirectory
[MAX_PATH
];
64 WCHAR WindowsSystemDirectory
[MAX_PATH
];
65 } BASESRV_API_CONNECTINFO
, *PBASESRV_API_CONNECTINFO
;
67 #define BASESRV_VERSION 0x10000
70 typedef struct _BASE_SXS_CREATEPROCESS_MSG
73 ULONG ProcessParameterFlags
;
75 UNICODE_STRING SxsWin32ExePath
;
76 UNICODE_STRING SxsNtExePath
;
77 SIZE_T OverrideManifestOffset
;
78 ULONG OverrideManifestSize
;
79 SIZE_T OverridePolicyOffset
;
80 ULONG OverridePolicySize
;
81 PVOID PEManifestAddress
;
83 UNICODE_STRING CultureFallbacks
;
85 UNICODE_STRING AssemblyName
;
86 } BASE_SXS_CREATEPROCESS_MSG
, *PBASE_SXS_CREATEPROCESS_MSG
;
91 // NT-type structure (BASE_CREATEPROCESS_MSG)
100 BASE_SXS_CREATEPROCESS_MSG Sxs
;
101 PVOID PebAddressNative
;
102 ULONG PebAddressWow64
;
103 USHORT ProcessorArchitecture
;
104 } BASE_CREATE_PROCESS
, *PBASE_CREATE_PROCESS
;
110 } BASE_CREATE_THREAD
, *PBASE_CREATE_THREAD
;
115 } BASE_GET_TEMP_FILE
, *PBASE_GET_TEMP_FILE
;
120 } BASE_EXIT_PROCESS
, *PBASE_EXIT_PROCESS
;
125 HANDLE ConsoleHandle
;
127 HANDLE WaitObjectForParent
;
132 ULONG dwCreationFlags
;
139 LPSTARTUPINFOA StartupInfo
;
149 USHORT CurDirectoryLen
;
152 } BASE_CHECK_VDM
, *PBASE_CHECK_VDM
;
158 HANDLE ConsoleHandle
;
159 HANDLE VDMProcessHandle
;
160 HANDLE WaitObjectForParent
;
162 USHORT VDMCreationState
;
163 } BASE_UPDATE_VDM_ENTRY
, *PBASE_UPDATE_VDM_ENTRY
;
168 HANDLE ConsoleHandle
;
169 HANDLE WaitObjectForVDM
;
174 ULONG dwCreationFlags
;
182 LPSTARTUPINFOA StartupInfo
;
193 USHORT CurDirectoryLen
;
195 ULONG fComingFromBat
;
196 } BASE_GET_NEXT_VDM_COMMAND
, *PBASE_GET_NEXT_VDM_COMMAND
;
200 HANDLE ConsoleHandle
;
202 HANDLE WaitObjectForVDM
;
203 } BASE_EXIT_VDM
, *PBASE_EXIT_VDM
;
208 } BASE_IS_FIRST_VDM
, *PBASE_IS_FIRST_VDM
;
212 HANDLE ConsoleHandle
;
215 } BASE_GET_VDM_EXIT_CODE
, *PBASE_GET_VDM_EXIT_CODE
;
219 HANDLE ConsoleHandle
;
221 } BASE_SET_REENTER_COUNT
, *PBASE_SET_REENTER_COUNT
;
227 } BASE_GETSET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_GETSET_PROCESS_SHUTDOWN_PARAMS
;
231 HANDLE ConsoleHandle
;
234 } BASE_GETSET_VDM_CURDIRS
, *PBASE_GETSET_VDM_CURDIRS
;
238 HANDLE ConsoleHandle
;
240 } BASE_BAT_NOTIFICATION
, *PBASE_BAT_NOTIFICATION
;
245 } BASE_REGISTER_WOWEXEC
, *PBASE_REGISTER_WOWEXEC
;
250 } BASE_SOUND_SENTRY
, *PBASE_SOUND_SENTRY
;
254 UNICODE_STRING IniFileName
;
255 } BASE_REFRESH_INIFILE_MAPPING
, *PBASE_REFRESH_INIFILE_MAPPING
;
260 UNICODE_STRING DeviceName
;
261 UNICODE_STRING TargetPath
;
262 } BASE_DEFINE_DOS_DEVICE
, *PBASE_DEFINE_DOS_DEVICE
;
266 HANDLE SectionHandle
;
269 } BASE_NLS_CREATE_SECTION
, *PBASE_NLS_CREATE_SECTION
;
273 PVOID
/*PNLS_USER_INFO*/ NlsUserInfo
;
275 } BASE_NLS_GET_USER_INFO
, *PBASE_NLS_GET_USER_INFO
;
277 typedef struct _BASE_API_MESSAGE
281 PCSR_CAPTURE_BUFFER CsrCaptureData
;
282 CSR_API_NUMBER ApiNumber
;
287 BASE_CREATE_PROCESS CreateProcessRequest
;
288 BASE_CREATE_THREAD CreateThreadRequest
;
289 BASE_GET_TEMP_FILE GetTempFileRequest
;
290 BASE_EXIT_PROCESS ExitProcessRequest
;
291 BASE_CHECK_VDM CheckVDMRequest
;
292 BASE_UPDATE_VDM_ENTRY UpdateVDMEntryRequest
;
293 BASE_GET_NEXT_VDM_COMMAND GetNextVDMCommandRequest
;
294 BASE_EXIT_VDM ExitVDMRequest
;
295 BASE_IS_FIRST_VDM IsFirstVDMRequest
;
296 BASE_GET_VDM_EXIT_CODE GetVDMExitCodeRequest
;
297 BASE_SET_REENTER_COUNT SetReenterCountRequest
;
298 BASE_GETSET_PROCESS_SHUTDOWN_PARAMS ShutdownParametersRequest
;
299 BASE_GETSET_VDM_CURDIRS VDMCurrentDirsRequest
;
300 BASE_BAT_NOTIFICATION BatNotificationRequest
;
301 BASE_REGISTER_WOWEXEC RegisterWowExecRequest
;
302 BASE_SOUND_SENTRY SoundSentryRequest
;
303 BASE_REFRESH_INIFILE_MAPPING RefreshIniFileMappingRequest
;
304 BASE_DEFINE_DOS_DEVICE DefineDosDeviceRequest
;
305 BASE_NLS_CREATE_SECTION NlsCreateSection
;
306 BASE_NLS_GET_USER_INFO NlsGetUserInfo
;
308 } BASE_API_MESSAGE
, *PBASE_API_MESSAGE
;
310 // Check that a BASE_API_MESSAGE can hold in a CSR_API_MESSAGE.
311 CHECK_API_MSG_SIZE(BASE_API_MESSAGE
);