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
,
27 // BasepUpdateVDMEntry,
28 // BasepGetNextVDMCommand,
31 // BasepGetVDMExitCode,
32 // BasepSetReenterCount,
33 BasepSetProcessShutdownParam
,
34 BasepGetProcessShutdownParam
,
35 // BasepNlsSetUserInfo,
36 // BasepNlsSetMultipleUserInfo,
37 // BasepNlsCreateSection,
38 // BasepSetVDMCurDirs,
39 // BasepGetVDMCurDirs,
40 // BasepBatNotification,
41 // BasepRegisterWowExec,
42 BasepSoundSentryNotification
,
43 // BasepRefreshIniFileMapping,
45 // BasepSetTermsrvAppInstallMode,
46 // BasepNlsUpdateCacheCount,
47 // BasepSetTermsrvClientTimeZone,
48 // BasepSxsCreateActivationContext,
49 // BasepRegisterThread,
50 // BasepNlsGetUserInfo,
53 } BASESRV_API_NUMBER
, *PBASESRV_API_NUMBER
;
55 typedef struct _BASE_SXS_CREATEPROCESS_MSG
58 ULONG ProcessParameterFlags
;
60 UNICODE_STRING SxsWin32ExePath
;
61 UNICODE_STRING SxsNtExePath
;
62 SIZE_T OverrideManifestOffset
;
63 ULONG OverrideManifestSize
;
64 SIZE_T OverridePolicyOffset
;
65 ULONG OverridePolicySize
;
66 PVOID PEManifestAddress
;
68 UNICODE_STRING CultureFallbacks
;
70 UNICODE_STRING AssemblyName
;
71 } BASE_SXS_CREATEPROCESS_MSG
, *PBASE_SXS_CREATEPROCESS_MSG
;
76 // NT-type structure (BASE_CREATEPROCESS_MSG)
85 BASE_SXS_CREATEPROCESS_MSG Sxs
;
86 PVOID PebAddressNative
;
87 ULONG PebAddressWow64
;
88 USHORT ProcessorArchitecture
;
89 } BASE_CREATE_PROCESS
, *PBASE_CREATE_PROCESS
;
95 } BASE_CREATE_THREAD
, *PBASE_CREATE_THREAD
;
100 } BASE_EXIT_PROCESS
, *PBASE_EXIT_PROCESS
;
105 } BASE_GET_TEMP_FILE
, *PBASE_GET_TEMP_FILE
;
110 HANDLE ConsoleHandle
;
112 HANDLE WaitObjectForParent
;
117 ULONG dwCreationFlags
;
134 USHORT CurDirectoryLen
;
137 } BASE_CHECK_VDM
, *PBASE_CHECK_VDM
;
143 HANDLE ConsoleHandle
;
144 HANDLE VDMProcessHandle
;
145 HANDLE WaitObjectForParent
;
147 USHORT VDMCreationState
;
148 } BASE_UPDATE_VDM_ENTRY
, *PBASE_UPDATE_VDM_ENTRY
;
152 HANDLE ConsoleHandle
;
155 } BASE_GET_VDM_EXIT_CODE
, *PBASE_GET_VDM_EXIT_CODE
;
161 } BASE_SET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_SET_PROCESS_SHUTDOWN_PARAMS
;
167 } BASE_GET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_GET_PROCESS_SHUTDOWN_PARAMS
;
172 } BASE_SOUND_SENTRY
, *PBASE_SOUND_SENTRY
;
176 UNICODE_STRING DeviceName
;
177 UNICODE_STRING TargetName
;
179 } BASE_DEFINE_DOS_DEVICE
, *PBASE_DEFINE_DOS_DEVICE
;
181 typedef struct _BASE_API_MESSAGE
185 PCSR_CAPTURE_BUFFER CsrCaptureData
;
186 CSR_API_NUMBER ApiNumber
;
191 BASE_CREATE_PROCESS CreateProcessRequest
;
192 BASE_CREATE_THREAD CreateThreadRequest
;
193 BASE_EXIT_PROCESS ExitProcessRequest
;
194 BASE_GET_TEMP_FILE GetTempFile
;
195 BASE_CHECK_VDM CheckVdm
;
196 BASE_UPDATE_VDM_ENTRY UpdateVdmEntry
;
197 BASE_GET_VDM_EXIT_CODE GetVdmExitCode
;
198 BASE_SET_PROCESS_SHUTDOWN_PARAMS SetShutdownParametersRequest
;
199 BASE_GET_PROCESS_SHUTDOWN_PARAMS GetShutdownParametersRequest
;
200 BASE_SOUND_SENTRY SoundSentryRequest
;
201 BASE_DEFINE_DOS_DEVICE DefineDosDeviceRequest
;
203 } BASE_API_MESSAGE
, *PBASE_API_MESSAGE
;
205 // Check that a BASE_API_MESSAGE can hold in a CSR_API_MESSAGE.
206 CHECK_API_MSG_SIZE(BASE_API_MESSAGE
);