1 /*** Private header for BASESRV ***/
10 #include <ndk/ntndk.h>
13 #include <csrss/server.h>
20 #define BASESRV_SERVERDLL_INDEX 1
21 #define BASESRV_FIRST_API_NUMBER 0
24 // Windows NT 4 table, adapted from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_NT
25 // It is for testing purposes. After that I will update it to 2k3 version and add stubs.
26 typedef enum _BASESRV_API_NUMBER
28 BasepCreateProcess
= BASESRV_FIRST_API_NUMBER
,
35 // BasepGetNextVDMCommand,
39 // BasepSetReenterCount,
40 BasepSetProcessShutdownParam
,
41 BasepGetProcessShutdownParam
,
42 // BasepNlsSetUserInfo,
43 // BasepNlsSetMultipleUserInfo,
44 // BasepNlsCreateSortSection,
45 // BasepNlsPreserveSection,
46 // BasepSetVDMCurDirs,
47 // BasepGetVDMCurDirs,
48 // BasepBatNotification,
49 // BasepRegisterWowExec,
50 BasepSoundSentryNotification
,
51 // BasepRefreshIniFileMapping,
55 } BASESRV_API_NUMBER
, *PBASESRV_API_NUMBER
;
58 typedef struct _BASE_SXS_CREATEPROCESS_MSG
61 ULONG ProcessParameterFlags
;
63 UNICODE_STRING SxsWin32ExePath
;
64 UNICODE_STRING SxsNtExePath
;
65 SIZE_T OverrideManifestOffset
;
66 ULONG OverrideManifestSize
;
67 SIZE_T OverridePolicyOffset
;
68 ULONG OverridePolicySize
;
69 PVOID PEManifestAddress
;
71 UNICODE_STRING CultureFallbacks
;
73 UNICODE_STRING AssemblyName
;
74 } BASE_SXS_CREATEPROCESS_MSG
, *PBASE_SXS_CREATEPROCESS_MSG
;
79 // NT-type structure (BASE_CREATEPROCESS_MSG)
88 BASE_SXS_CREATEPROCESS_MSG Sxs
;
89 PVOID PebAddressNative
;
90 ULONG PebAddressWow64
;
91 USHORT ProcessorArchitecture
;
97 } BASE_CREATE_PROCESS
, *PBASE_CREATE_PROCESS
;
103 } BASE_CREATE_THREAD
, *PBASE_CREATE_THREAD
;
108 } BASE_EXIT_PROCESS
, *PBASE_EXIT_PROCESS
;
113 } BASE_GET_TEMP_FILE
, *PBASE_GET_TEMP_FILE
;
118 HANDLE ConsoleHandle
;
120 HANDLE WaitObjectForParent
;
125 ULONG dwCreationFlags
;
142 USHORT CurDirectoryLen
;
145 } BASE_CHECK_VDM
, *PBASE_CHECK_VDM
;
151 HANDLE ConsoleHandle
;
152 HANDLE VDMProcessHandle
;
153 HANDLE WaitObjectForParent
;
155 USHORT VDMCreationState
;
156 } BASE_UPDATE_VDM_ENTRY
, *PBASE_UPDATE_VDM_ENTRY
;
160 HANDLE ConsoleHandle
;
163 } BASE_GET_VDM_EXIT_CODE
, *PBASE_GET_VDM_EXIT_CODE
;
169 } BASE_SET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_SET_PROCESS_SHUTDOWN_PARAMS
;
175 } BASE_GET_PROCESS_SHUTDOWN_PARAMS
, *PBASE_GET_PROCESS_SHUTDOWN_PARAMS
;
180 } BASE_SOUND_SENTRY
, *PBASE_SOUND_SENTRY
;
184 UNICODE_STRING DeviceName
;
185 UNICODE_STRING TargetName
;
187 } BASE_DEFINE_DOS_DEVICE
, *PBASE_DEFINE_DOS_DEVICE
;
190 typedef struct _BASE_API_MESSAGE
194 PCSR_CAPTURE_BUFFER CsrCaptureData
;
195 CSR_API_NUMBER ApiNumber
;
200 BASE_CREATE_PROCESS CreateProcessRequest
;
201 BASE_CREATE_THREAD CreateThreadRequest
;
202 BASE_EXIT_PROCESS ExitProcessRequest
; // CSRSS_TERMINATE_PROCESS TerminateProcessRequest;
203 BASE_GET_TEMP_FILE GetTempFile
;
204 BASE_CHECK_VDM CheckVdm
;
205 BASE_UPDATE_VDM_ENTRY UpdateVdmEntry
;
206 BASE_GET_VDM_EXIT_CODE GetVdmExitCode
;
207 BASE_SET_PROCESS_SHUTDOWN_PARAMS SetShutdownParametersRequest
; // CSRSS_SET_SHUTDOWN_PARAMETERS
208 BASE_GET_PROCESS_SHUTDOWN_PARAMS GetShutdownParametersRequest
; // CSRSS_GET_SHUTDOWN_PARAMETERS
209 BASE_SOUND_SENTRY SoundSentryRequest
;
210 BASE_DEFINE_DOS_DEVICE DefineDosDeviceRequest
;
212 } BASE_API_MESSAGE
, *PBASE_API_MESSAGE
;
221 typedef struct _NLS_USER_INFO
227 WCHAR iPaperSize
[80];
233 WCHAR iNegNumber
[80];
234 WCHAR sNativeDigits
[80];
235 WCHAR iDigitSubstitution
[80];
237 WCHAR sMonDecSep
[80];
238 WCHAR sMonThouSep
[80];
239 WCHAR sMonGrouping
[80];
240 WCHAR iCurrDigits
[80];
245 WCHAR sTimeFormat
[80];
248 WCHAR sShortDate
[80];
249 WCHAR sYearMonth
[80];
253 WCHAR iFirstWeek
[80];
255 WCHAR sLocaleName
[85];
257 LUID InteractiveUserLuid
;
258 CHAR InteractiveUserSid
[68]; // SECURITY_MAX_SID_SIZE to make ROS happy
259 ULONG ulCacheUpdateCount
;
260 } NLS_USER_INFO
, *PNLS_USER_INFO
;
263 typedef struct _BASE_STATIC_SERVER_DATA
265 UNICODE_STRING WindowsDirectory
;
266 UNICODE_STRING WindowsSystemDirectory
;
267 UNICODE_STRING NamedObjectDirectory
;
268 USHORT WindowsMajorVersion
;
269 USHORT WindowsMinorVersion
;
273 WCHAR CSDVersion
[128];
274 SYSTEM_BASIC_INFORMATION SysInfo
;
275 SYSTEM_TIMEOFDAY_INFORMATION TimeOfDay
;
276 PVOID IniFileMapping
;
277 NLS_USER_INFO NlsUserInfo
;
278 BOOLEAN DefaultSeparateVDM
;
279 BOOLEAN IsWowTaskReady
;
280 UNICODE_STRING WindowsSys32x86Directory
;
281 BOOLEAN fTermsrvAppInstallMode
;
282 TIME_ZONE_INFORMATION tziTermsrvClientTimeZone
;
283 KSYSTEM_TIME ktTermsrvClientBias
;
284 ULONG TermsrvClientTimeZoneId
;
285 BOOLEAN LUIDDeviceMapsEnabled
;
286 ULONG TermsrvClientTimeZoneChangeNum
;
287 } BASE_STATIC_SERVER_DATA
, *PBASE_STATIC_SERVER_DATA
;