2010-02-27 19:51:54 +00:00
|
|
|
#ifndef _SMSS_H_INCLUDED_
|
|
|
|
#define _SMSS_H_INCLUDED_
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-07-26 14:00:45 +00:00
|
|
|
#include <stdio.h>
|
2008-10-29 20:06:44 +00:00
|
|
|
#include <stdlib.h>
|
2005-10-19 17:03:38 +00:00
|
|
|
#define WIN32_NO_STATUS
|
2005-06-20 21:16:59 +00:00
|
|
|
#include <windows.h>
|
2005-02-12 09:08:52 +00:00
|
|
|
#define NTOS_MODE_USER
|
2005-06-20 21:16:59 +00:00
|
|
|
#include <ndk/ntndk.h>
|
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
#include <sm/api.h>
|
2005-02-20 02:32:23 +00:00
|
|
|
#include <sm/helper.h>
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-26 23:22:48 +00:00
|
|
|
/* smss.c */
|
2005-05-22 15:54:15 +00:00
|
|
|
extern ULONG SmSsProcessId;
|
2005-02-26 23:22:48 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* init.c */
|
2005-02-13 22:55:28 +00:00
|
|
|
NTSTATUS InitSessionManager(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initheap.c */
|
2005-02-13 22:55:28 +00:00
|
|
|
extern HANDLE SmpHeap;
|
2005-02-12 09:08:52 +00:00
|
|
|
NTSTATUS SmCreateHeap(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initenv.c */
|
|
|
|
extern PWSTR SmSystemEnvironment;
|
|
|
|
NTSTATUS SmCreateEnvironment(VOID);
|
|
|
|
NTSTATUS SmSetEnvironmentVariables(VOID);
|
|
|
|
NTSTATUS SmUpdateEnvironment(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initobdir.c */
|
|
|
|
NTSTATUS SmCreateObjectDirectories(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initdosdev.c */
|
|
|
|
NTSTATUS SmInitDosDevices(VOID);
|
2005-02-06 21:55:07 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initrun.c */
|
|
|
|
extern HANDLE Children[2];
|
|
|
|
NTSTATUS SmRunBootApplications(VOID);
|
2005-02-06 21:55:07 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initmv.c */
|
|
|
|
NTSTATUS SmProcessFileRenameList(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initwkdll.c */
|
|
|
|
NTSTATUS SmLoadKnownDlls(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initpage.c */
|
|
|
|
NTSTATUS SmCreatePagingFiles(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initreg.c */
|
|
|
|
NTSTATUS SmInitializeRegistry(VOID);
|
2002-05-24 07:52:09 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* initss.c */
|
2008-11-30 11:16:55 +00:00
|
|
|
NTSTATUS NTAPI SmRegisterInternalSubsystem(LPWSTR,USHORT,PHANDLE);
|
2005-02-12 09:08:52 +00:00
|
|
|
NTSTATUS SmLoadSubsystems(VOID);
|
2005-02-06 21:55:07 +00:00
|
|
|
|
2005-02-12 09:08:52 +00:00
|
|
|
/* smapi.c */
|
2005-02-19 22:58:18 +00:00
|
|
|
#define SMAPI(n) \
|
|
|
|
NTSTATUS FASTCALL n (PSM_PORT_MESSAGE Request)
|
2005-03-20 22:55:05 +00:00
|
|
|
PSM_CONNECT_DATA FASTCALL SmpGetConnectData (PSM_PORT_MESSAGE);
|
|
|
|
NTSTATUS SmCreateApiPort(VOID);
|
2008-11-30 11:16:55 +00:00
|
|
|
VOID NTAPI SmpApiThread(PVOID);
|
2005-03-20 22:55:05 +00:00
|
|
|
|
2005-02-19 22:58:18 +00:00
|
|
|
|
|
|
|
/* smapiexec.c */
|
2008-09-24 08:12:41 +00:00
|
|
|
#define SM_CREATE_FLAG_WAIT 0x01
|
|
|
|
#define SM_CREATE_FLAG_RESERVE_1MB 0x02
|
2008-11-30 11:16:55 +00:00
|
|
|
NTSTATUS NTAPI SmCreateUserProcess(LPWSTR ImagePath,
|
2005-02-19 22:58:18 +00:00
|
|
|
LPWSTR CommandLine,
|
2008-09-24 08:12:41 +00:00
|
|
|
ULONG Flags,
|
2005-02-19 22:58:18 +00:00
|
|
|
PLARGE_INTEGER Timeout OPTIONAL,
|
2005-07-12 01:56:14 +00:00
|
|
|
PRTL_USER_PROCESS_INFORMATION UserProcessInfo OPTIONAL);
|
2005-02-19 22:58:18 +00:00
|
|
|
NTSTATUS FASTCALL SmExecPgm(PSM_PORT_MESSAGE);
|
|
|
|
|
|
|
|
/* smapicomp.c */
|
|
|
|
NTSTATUS FASTCALL SmCompSes(PSM_PORT_MESSAGE);
|
|
|
|
|
2005-03-20 22:55:05 +00:00
|
|
|
/* smapiquery.c */
|
|
|
|
NTSTATUS FASTCALL SmQryInfo(PSM_PORT_MESSAGE);
|
2005-02-06 21:55:07 +00:00
|
|
|
|
|
|
|
/* client.c */
|
2005-05-22 15:54:15 +00:00
|
|
|
#define SM_CLIENT_FLAG_CANDIDATE 0x8000
|
|
|
|
#define SM_CLIENT_FLAG_INITIALIZED 0x0001
|
|
|
|
#define SM_CLIENT_FLAG_REQUIRED 0x0002
|
2005-02-13 22:55:28 +00:00
|
|
|
typedef struct _SM_CLIENT_DATA
|
|
|
|
{
|
2005-05-22 15:54:15 +00:00
|
|
|
RTL_CRITICAL_SECTION Lock;
|
|
|
|
WCHAR ProgramName [SM_SB_NAME_MAX_LENGTH];
|
|
|
|
USHORT SubsystemId;
|
|
|
|
WORD Flags;
|
|
|
|
WORD Unused;
|
|
|
|
ULONG ServerProcessId;
|
|
|
|
HANDLE ServerProcess;
|
|
|
|
HANDLE ApiPort;
|
|
|
|
HANDLE ApiPortThread;
|
|
|
|
HANDLE SbApiPort;
|
|
|
|
WCHAR SbApiPortName [SM_SB_NAME_MAX_LENGTH];
|
2005-05-08 04:07:56 +00:00
|
|
|
|
2005-02-13 22:55:28 +00:00
|
|
|
} SM_CLIENT_DATA, *PSM_CLIENT_DATA;
|
2005-05-22 15:54:15 +00:00
|
|
|
NTSTATUS SmInitializeClientManagement (VOID);
|
2008-11-30 11:16:55 +00:00
|
|
|
NTSTATUS NTAPI SmCreateClient (PRTL_USER_PROCESS_INFORMATION,PWSTR);
|
|
|
|
NTSTATUS NTAPI SmDestroyClient (ULONG);
|
|
|
|
NTSTATUS NTAPI SmBeginClientInitialization (PSM_PORT_MESSAGE,PSM_CLIENT_DATA*);
|
|
|
|
NTSTATUS NTAPI SmCompleteClientInitialization (ULONG);
|
2005-04-12 21:25:58 +00:00
|
|
|
NTSTATUS FASTCALL SmGetClientBasicInformation (PSM_BASIC_INFORMATION);
|
|
|
|
NTSTATUS FASTCALL SmGetSubSystemInformation (PSM_SUBSYSTEM_INFORMATION);
|
2005-02-06 21:55:07 +00:00
|
|
|
|
|
|
|
/* debug.c */
|
|
|
|
extern HANDLE DbgSsApiPort;
|
|
|
|
extern HANDLE DbgUiApiPort;
|
2005-02-12 09:08:52 +00:00
|
|
|
NTSTATUS SmInitializeDbgSs(VOID);
|
1999-12-01 15:18:54 +00:00
|
|
|
|
2005-02-19 22:58:18 +00:00
|
|
|
/* print.c */
|
2008-11-30 11:16:55 +00:00
|
|
|
VOID NTAPI DisplayString(LPCWSTR lpwString);
|
|
|
|
VOID NTAPI PrintString (char* fmt, ...);
|
2005-02-19 22:58:18 +00:00
|
|
|
|
2010-02-27 19:51:54 +00:00
|
|
|
#endif /* _SMSS_H_INCLUDED_ */
|
|
|
|
|
1999-12-01 15:18:54 +00:00
|
|
|
/* EOF */
|
2010-02-27 19:51:54 +00:00
|
|
|
|