2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Client/Server Runtime SubSystem
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 NT 4 table, adapted from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_NT
19 // It is for testing purposes. After that I will update it to 2k3 version and add stubs.
20 typedef enum _BASESRV_API_NUMBER
22 BasepCreateProcess
= BASESRV_FIRST_API_NUMBER
,
28 // BasepUpdateVDMEntry,
29 // BasepGetNextVDMCommand,
32 // BasepGetVDMExitCode,
33 // BasepSetReenterCount,
34 BasepSetProcessShutdownParam
,
35 BasepGetProcessShutdownParam
,
36 // BasepNlsSetUserInfo,
37 // BasepNlsSetMultipleUserInfo,
38 // BasepNlsCreateSortSection,
39 // BasepNlsPreserveSection,
40 // BasepSetVDMCurDirs,
41 // BasepGetVDMCurDirs,
42 // BasepBatNotification,
43 // BasepRegisterWowExec,
44 BasepSoundSentryNotification
,
45 // BasepRefreshIniFileMapping,
49 } BASESRV_API_NUMBER
, *PBASESRV_API_NUMBER
;
51 typedef struct _BASE_SXS_CREATEPROCESS_MSG
54 ULONG ProcessParameterFlags
;
56 UNICODE_STRING SxsWin32ExePath
;
57 UNICODE_STRING SxsNtExePath
;
58 SIZE_T OverrideManifestOffset
;
59 ULONG OverrideManifestSize
;
60 SIZE_T OverridePolicyOffset
;
61 ULONG OverridePolicySize
;
62 PVOID PEManifestAddress
;
64 UNICODE_STRING CultureFallbacks
;
66 UNICODE_STRING AssemblyName
;
67 } BASE_SXS_CREATEPROCESS_MSG
, *PBASE_SXS_CREATEPROCESS_MSG
;
72 // NT-type structure (BASE_CREATEPROCESS_MSG)
81 BASE_SXS_CREATEPROCESS_MSG Sxs
;
82 PVOID PebAddressNative
;
83 ULONG PebAddressWow64
;
84 USHORT ProcessorArchitecture
;
90 } BASE_CREATE_PROCESS
, *PBASE_CREATE_PROCESS
;
96 } BASE_CREATE_THREAD
, *PBASE_CREATE_THREAD
;
101 } BASE_EXIT_PROCESS
, *PBASE_EXIT_PROCESS
;
106 } BASE_GET_TEMP_FILE
, *PBASE_GET_TEMP_FILE
;
111 HANDLE ConsoleHandle
;
113 HANDLE WaitObjectForParent
;
118 ULONG dwCreationFlags
;
135 USHORT CurDirectoryLen
;
138 } BASE_CHECK_VDM
, *PBASE_CHECK_VDM
;
144 HANDLE ConsoleHandle
;
145 HANDLE VDMProcessHandle
;
146 HANDLE WaitObjectForParent
;
148 USHORT VDMCreationState
;
149 } BASE_UPDATE_VDM_ENTRY
, *PBASE_UPDATE_VDM_ENTRY
;
153 HANDLE ConsoleHandle
;
156 } BASE_GET_VDM_EXIT_CODE
, *PBASE_GET_VDM_EXIT_CODE
;
162 } BASE_SET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_SET_PROCESS_SHUTDOWN_PARAMS
;
168 } BASE_GET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_GET_PROCESS_SHUTDOWN_PARAMS
;
173 } BASE_SOUND_SENTRY
, *PBASE_SOUND_SENTRY
;
177 UNICODE_STRING DeviceName
;
178 UNICODE_STRING TargetName
;
180 } BASE_DEFINE_DOS_DEVICE
, *PBASE_DEFINE_DOS_DEVICE
;
182 typedef struct _BASE_API_MESSAGE
186 PCSR_CAPTURE_BUFFER CsrCaptureData
;
187 CSR_API_NUMBER ApiNumber
;
188 ULONG Status
; // ReturnValue; // NTSTATUS Status
192 BASE_CREATE_PROCESS CreateProcessRequest
;
193 BASE_CREATE_THREAD CreateThreadRequest
;
194 BASE_EXIT_PROCESS ExitProcessRequest
;
195 BASE_GET_TEMP_FILE GetTempFile
;
196 BASE_CHECK_VDM CheckVdm
;
197 BASE_UPDATE_VDM_ENTRY UpdateVdmEntry
;
198 BASE_GET_VDM_EXIT_CODE GetVdmExitCode
;
199 BASE_SET_PROCESS_SHUTDOWN_PARAMS SetShutdownParametersRequest
;
200 BASE_GET_PROCESS_SHUTDOWN_PARAMS GetShutdownParametersRequest
;
201 BASE_SOUND_SENTRY SoundSentryRequest
;
202 BASE_DEFINE_DOS_DEVICE DefineDosDeviceRequest
;
204 } BASE_API_MESSAGE
, *PBASE_API_MESSAGE
;