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
,
54 } BASESRV_API_NUMBER
, *PBASESRV_API_NUMBER
;
57 typedef struct _BASESRV_API_CONNECTINFO
59 ULONG ExpectedVersion
;
60 HANDLE DefaultObjectDirectory
;
64 WCHAR WindowsDirectory
[MAX_PATH
];
65 WCHAR WindowsSystemDirectory
[MAX_PATH
];
66 } BASESRV_API_CONNECTINFO
, *PBASESRV_API_CONNECTINFO
;
68 #define BASESRV_VERSION 0x10000
71 typedef struct _BASE_SXS_CREATEPROCESS_MSG
74 ULONG ProcessParameterFlags
;
76 UNICODE_STRING SxsWin32ExePath
;
77 UNICODE_STRING SxsNtExePath
;
78 SIZE_T OverrideManifestOffset
;
79 ULONG OverrideManifestSize
;
80 SIZE_T OverridePolicyOffset
;
81 ULONG OverridePolicySize
;
82 PVOID PEManifestAddress
;
84 UNICODE_STRING CultureFallbacks
;
86 UNICODE_STRING AssemblyName
;
87 } BASE_SXS_CREATEPROCESS_MSG
, *PBASE_SXS_CREATEPROCESS_MSG
;
92 // NT-type structure (BASE_CREATEPROCESS_MSG)
101 BASE_SXS_CREATEPROCESS_MSG Sxs
;
102 PVOID PebAddressNative
;
103 ULONG PebAddressWow64
;
104 USHORT ProcessorArchitecture
;
105 } BASE_CREATE_PROCESS
, *PBASE_CREATE_PROCESS
;
111 } BASE_CREATE_THREAD
, *PBASE_CREATE_THREAD
;
116 } BASE_GET_TEMP_FILE
, *PBASE_GET_TEMP_FILE
;
121 } BASE_EXIT_PROCESS
, *PBASE_EXIT_PROCESS
;
126 HANDLE ConsoleHandle
;
128 HANDLE WaitObjectForParent
;
133 ULONG dwCreationFlags
;
140 LPSTARTUPINFOA StartupInfo
;
150 USHORT CurDirectoryLen
;
153 } BASE_CHECK_VDM
, *PBASE_CHECK_VDM
;
159 HANDLE ConsoleHandle
;
160 HANDLE VDMProcessHandle
;
161 HANDLE WaitObjectForParent
;
163 USHORT VDMCreationState
;
164 } BASE_UPDATE_VDM_ENTRY
, *PBASE_UPDATE_VDM_ENTRY
;
169 HANDLE ConsoleHandle
;
170 HANDLE WaitObjectForVDM
;
175 ULONG dwCreationFlags
;
183 LPSTARTUPINFOA StartupInfo
;
194 USHORT CurDirectoryLen
;
196 ULONG fComingFromBat
;
197 } BASE_GET_NEXT_VDM_COMMAND
, *PBASE_GET_NEXT_VDM_COMMAND
;
201 HANDLE ConsoleHandle
;
203 HANDLE WaitObjectForVDM
;
204 } BASE_EXIT_VDM
, *PBASE_EXIT_VDM
;
209 } BASE_IS_FIRST_VDM
, *PBASE_IS_FIRST_VDM
;
213 HANDLE ConsoleHandle
;
216 } BASE_GET_VDM_EXIT_CODE
, *PBASE_GET_VDM_EXIT_CODE
;
220 HANDLE ConsoleHandle
;
222 } BASE_SET_REENTER_COUNT
, *PBASE_SET_REENTER_COUNT
;
228 } BASE_GETSET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_GETSET_PROCESS_SHUTDOWN_PARAMS
;
232 HANDLE ConsoleHandle
;
235 } BASE_GETSET_VDM_CURDIRS
, *PBASE_GETSET_VDM_CURDIRS
;
239 HANDLE ConsoleHandle
;
241 } BASE_BAT_NOTIFICATION
, *PBASE_BAT_NOTIFICATION
;
246 } BASE_REGISTER_WOWEXEC
, *PBASE_REGISTER_WOWEXEC
;
251 } BASE_SOUND_SENTRY
, *PBASE_SOUND_SENTRY
;
255 UNICODE_STRING IniFileName
;
256 } BASE_REFRESH_INIFILE_MAPPING
, *PBASE_REFRESH_INIFILE_MAPPING
;
261 UNICODE_STRING DeviceName
;
262 UNICODE_STRING TargetPath
;
263 } BASE_DEFINE_DOS_DEVICE
, *PBASE_DEFINE_DOS_DEVICE
;
267 HANDLE SectionHandle
;
270 } BASE_NLS_CREATE_SECTION
, *PBASE_NLS_CREATE_SECTION
;
274 PVOID
/*PNLS_USER_INFO*/ NlsUserInfo
;
276 } BASE_NLS_GET_USER_INFO
, *PBASE_NLS_GET_USER_INFO
;
278 typedef struct _BASE_API_MESSAGE
282 PCSR_CAPTURE_BUFFER CsrCaptureData
;
283 CSR_API_NUMBER ApiNumber
;
288 BASE_CREATE_PROCESS CreateProcessRequest
;
289 BASE_CREATE_THREAD CreateThreadRequest
;
290 BASE_GET_TEMP_FILE GetTempFileRequest
;
291 BASE_EXIT_PROCESS ExitProcessRequest
;
292 BASE_CHECK_VDM CheckVDMRequest
;
293 BASE_UPDATE_VDM_ENTRY UpdateVDMEntryRequest
;
294 BASE_GET_NEXT_VDM_COMMAND GetNextVDMCommandRequest
;
295 BASE_EXIT_VDM ExitVDMRequest
;
296 BASE_IS_FIRST_VDM IsFirstVDMRequest
;
297 BASE_GET_VDM_EXIT_CODE GetVDMExitCodeRequest
;
298 BASE_SET_REENTER_COUNT SetReenterCountRequest
;
299 BASE_GETSET_PROCESS_SHUTDOWN_PARAMS ShutdownParametersRequest
;
300 BASE_GETSET_VDM_CURDIRS VDMCurrentDirsRequest
;
301 BASE_BAT_NOTIFICATION BatNotificationRequest
;
302 BASE_REGISTER_WOWEXEC RegisterWowExecRequest
;
303 BASE_SOUND_SENTRY SoundSentryRequest
;
304 BASE_REFRESH_INIFILE_MAPPING RefreshIniFileMappingRequest
;
305 BASE_DEFINE_DOS_DEVICE DefineDosDeviceRequest
;
306 BASE_NLS_CREATE_SECTION NlsCreateSection
;
307 BASE_NLS_GET_USER_INFO NlsGetUserInfo
;
309 } BASE_API_MESSAGE
, *PBASE_API_MESSAGE
;
311 // Check that a BASE_API_MESSAGE can hold in a CSR_API_MESSAGE.
312 CHECK_API_MSG_SIZE(BASE_API_MESSAGE
);