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
,
52 } BASESRV_API_NUMBER
, *PBASESRV_API_NUMBER
;
55 typedef struct _BASESRV_API_CONNECTINFO
57 ULONG ExpectedVersion
;
58 HANDLE DefaultObjectDirectory
;
62 WCHAR WindowsDirectory
[MAX_PATH
];
63 WCHAR WindowsSystemDirectory
[MAX_PATH
];
64 } BASESRV_API_CONNECTINFO
, *PBASESRV_API_CONNECTINFO
;
66 #define BASESRV_VERSION 0x10000
69 typedef struct _BASE_SXS_CREATEPROCESS_MSG
72 ULONG ProcessParameterFlags
;
74 UNICODE_STRING SxsWin32ExePath
;
75 UNICODE_STRING SxsNtExePath
;
76 SIZE_T OverrideManifestOffset
;
77 ULONG OverrideManifestSize
;
78 SIZE_T OverridePolicyOffset
;
79 ULONG OverridePolicySize
;
80 PVOID PEManifestAddress
;
82 UNICODE_STRING CultureFallbacks
;
84 UNICODE_STRING AssemblyName
;
85 } BASE_SXS_CREATEPROCESS_MSG
, *PBASE_SXS_CREATEPROCESS_MSG
;
90 // NT-type structure (BASE_CREATEPROCESS_MSG)
99 BASE_SXS_CREATEPROCESS_MSG Sxs
;
100 PVOID PebAddressNative
;
101 ULONG PebAddressWow64
;
102 USHORT ProcessorArchitecture
;
103 } BASE_CREATE_PROCESS
, *PBASE_CREATE_PROCESS
;
109 } BASE_CREATE_THREAD
, *PBASE_CREATE_THREAD
;
114 } BASE_GET_TEMP_FILE
, *PBASE_GET_TEMP_FILE
;
119 } BASE_EXIT_PROCESS
, *PBASE_EXIT_PROCESS
;
124 HANDLE ConsoleHandle
;
126 HANDLE WaitObjectForParent
;
131 ULONG dwCreationFlags
;
138 LPSTARTUPINFOA StartupInfo
;
148 USHORT CurDirectoryLen
;
151 } BASE_CHECK_VDM
, *PBASE_CHECK_VDM
;
157 HANDLE ConsoleHandle
;
158 HANDLE VDMProcessHandle
;
159 HANDLE WaitObjectForParent
;
161 USHORT VDMCreationState
;
162 } BASE_UPDATE_VDM_ENTRY
, *PBASE_UPDATE_VDM_ENTRY
;
167 HANDLE ConsoleHandle
;
168 HANDLE WaitObjectForVDM
;
173 ULONG dwCreationFlags
;
181 LPSTARTUPINFOA StartupInfo
;
192 USHORT CurDirectoryLen
;
194 ULONG fComingFromBat
;
195 } BASE_GET_NEXT_VDM_COMMAND
, *PBASE_GET_NEXT_VDM_COMMAND
;
199 HANDLE ConsoleHandle
;
201 HANDLE WaitObjectForVDM
;
202 } BASE_EXIT_VDM
, *PBASE_EXIT_VDM
;
207 } BASE_IS_FIRST_VDM
, *PBASE_IS_FIRST_VDM
;
211 HANDLE ConsoleHandle
;
214 } BASE_GET_VDM_EXIT_CODE
, *PBASE_GET_VDM_EXIT_CODE
;
218 HANDLE ConsoleHandle
;
220 } BASE_SET_REENTER_COUNT
, *PBASE_SET_REENTER_COUNT
;
226 } BASE_GETSET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_GETSET_PROCESS_SHUTDOWN_PARAMS
;
230 HANDLE ConsoleHandle
;
233 } BASE_GETSET_VDM_CURDIRS
, *PBASE_GETSET_VDM_CURDIRS
;
237 HANDLE ConsoleHandle
;
239 } BASE_BAT_NOTIFICATION
, *PBASE_BAT_NOTIFICATION
;
244 } BASE_REGISTER_WOWEXEC
, *PBASE_REGISTER_WOWEXEC
;
249 } BASE_SOUND_SENTRY
, *PBASE_SOUND_SENTRY
;
253 UNICODE_STRING IniFileName
;
254 } BASE_REFRESH_INIFILE_MAPPING
, *PBASE_REFRESH_INIFILE_MAPPING
;
259 UNICODE_STRING DeviceName
;
260 UNICODE_STRING TargetPath
;
261 } BASE_DEFINE_DOS_DEVICE
, *PBASE_DEFINE_DOS_DEVICE
;
263 typedef struct _BASE_API_MESSAGE
267 PCSR_CAPTURE_BUFFER CsrCaptureData
;
268 CSR_API_NUMBER ApiNumber
;
273 BASE_CREATE_PROCESS CreateProcessRequest
;
274 BASE_CREATE_THREAD CreateThreadRequest
;
275 BASE_GET_TEMP_FILE GetTempFileRequest
;
276 BASE_EXIT_PROCESS ExitProcessRequest
;
277 BASE_CHECK_VDM CheckVDMRequest
;
278 BASE_UPDATE_VDM_ENTRY UpdateVDMEntryRequest
;
279 BASE_GET_NEXT_VDM_COMMAND GetNextVDMCommandRequest
;
280 BASE_EXIT_VDM ExitVDMRequest
;
281 BASE_IS_FIRST_VDM IsFirstVDMRequest
;
282 BASE_GET_VDM_EXIT_CODE GetVDMExitCodeRequest
;
283 BASE_SET_REENTER_COUNT SetReenterCountRequest
;
284 BASE_GETSET_PROCESS_SHUTDOWN_PARAMS ShutdownParametersRequest
;
285 BASE_GETSET_VDM_CURDIRS VDMCurrentDirsRequest
;
286 BASE_BAT_NOTIFICATION BatNotificationRequest
;
287 BASE_REGISTER_WOWEXEC RegisterWowExecRequest
;
288 BASE_SOUND_SENTRY SoundSentryRequest
;
289 BASE_REFRESH_INIFILE_MAPPING RefreshIniFileMappingRequest
;
290 BASE_DEFINE_DOS_DEVICE DefineDosDeviceRequest
;
292 } BASE_API_MESSAGE
, *PBASE_API_MESSAGE
;
294 // Check that a BASE_API_MESSAGE can hold in a CSR_API_MESSAGE.
295 CHECK_API_MSG_SIZE(BASE_API_MESSAGE
);