Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensmss.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Windows-Compatible Session Manager 00003 * LICENSE: BSD 2-Clause License 00004 * FILE: base/system/smss/smss.h 00005 * PURPOSE: Main SMSS Header 00006 * PROGRAMMERS: Alex Ionescu 00007 */ 00008 00009 /* DEPENDENCIES ***************************************************************/ 00010 #ifndef _SM_ 00011 #define _SM_ 00012 00013 // 00014 // Native Headers 00015 // 00016 #define WIN32_NO_STATUS 00017 #include <windows.h> // Should just be using ntdef.h I think 00018 #define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0])) 00019 #define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A) 00020 #ifdef ENABLE_RTL_NUMBER_OF_V2 00021 #define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V2(A) 00022 #else 00023 #define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A) 00024 #endif 00025 #define NTOS_MODE_USER 00026 #include <ndk/ntndk.h> 00027 00028 // 00029 // SM Protocol Header 00030 // 00031 #include "sm/smmsg.h" 00032 00033 /* DEFINES ********************************************************************/ 00034 00035 #define SMP_DEBUG_FLAG 0x01 00036 #define SMP_ASYNC_FLAG 0x02 00037 #define SMP_AUTOCHK_FLAG 0x04 00038 #define SMP_SUBSYSTEM_FLAG 0x08 00039 #define SMP_INVALID_PATH 0x10 00040 #define SMP_DEFERRED_FLAG 0x20 00041 #define SMP_POSIX_FLAG 0x100 00042 #define SMP_OS2_FLAG 0x200 00043 00044 /* STRUCTURES *****************************************************************/ 00045 00046 typedef struct _SMP_REGISTRY_VALUE 00047 { 00048 LIST_ENTRY Entry; 00049 UNICODE_STRING Name; 00050 UNICODE_STRING Value; 00051 PCHAR AnsiValue; 00052 } SMP_REGISTRY_VALUE, *PSMP_REGISTRY_VALUE; 00053 00054 typedef struct _SMP_SUBSYSTEM 00055 { 00056 LIST_ENTRY Entry; 00057 HANDLE Event; 00058 HANDLE ProcessHandle; 00059 ULONG ImageType; 00060 HANDLE PortHandle; 00061 HANDLE SbApiPort; 00062 CLIENT_ID ClientId; 00063 ULONG MuSessionId; 00064 BOOLEAN Terminating; 00065 ULONG ReferenceCount; 00066 } SMP_SUBSYSTEM, *PSMP_SUBSYSTEM; 00067 00068 /* EXTERNALS ******************************************************************/ 00069 00070 extern RTL_CRITICAL_SECTION SmpKnownSubSysLock; 00071 extern LIST_ENTRY SmpKnownSubSysHead; 00072 extern RTL_CRITICAL_SECTION SmpSessionListLock; 00073 extern LIST_ENTRY SmpSessionListHead; 00074 extern ULONG SmpNextSessionId; 00075 extern ULONG SmpNextSessionIdScanMode; 00076 extern BOOLEAN SmpDbgSsLoaded; 00077 extern HANDLE SmpWindowsSubSysProcess; 00078 extern HANDLE SmpSessionsObjectDirectory; 00079 extern HANDLE SmpWindowsSubSysProcessId; 00080 extern BOOLEAN RegPosixSingleInstance; 00081 extern UNICODE_STRING SmpDebugKeyword, SmpASyncKeyword, SmpAutoChkKeyword; 00082 extern PVOID SmpHeap; 00083 extern ULONG SmBaseTag; 00084 extern UNICODE_STRING SmpSystemRoot; 00085 extern PWCHAR SmpDefaultEnvironment; 00086 extern UNICODE_STRING SmpDefaultLibPath; 00087 extern LIST_ENTRY SmpSetupExecuteList; 00088 extern LIST_ENTRY SmpSubSystemsToLoad; 00089 extern LIST_ENTRY SmpExecuteList; 00090 extern LIST_ENTRY SmpSubSystemList; 00091 extern ULONG AttachedSessionId; 00092 extern BOOLEAN SmpDebug; 00093 00094 /* FUNCTIONS ******************************************************************/ 00095 00096 NTSTATUS 00097 NTAPI 00098 SmpTerminate( 00099 IN PULONG_PTR Parameters, 00100 IN ULONG ParameterMask, 00101 IN ULONG ParameterCount 00102 ); 00103 00104 NTSTATUS 00105 NTAPI 00106 SmpCreateSecurityDescriptors( 00107 IN BOOLEAN InitialCall 00108 ); 00109 00110 NTSTATUS 00111 NTAPI 00112 SmpInit( 00113 IN PUNICODE_STRING InitialCommand, 00114 OUT PHANDLE ProcessHandle 00115 ); 00116 00117 NTSTATUS 00118 NTAPI 00119 SmpAcquirePrivilege( 00120 IN ULONG Privilege, 00121 OUT PVOID *PrivilegeStat 00122 ); 00123 00124 VOID 00125 NTAPI 00126 SmpReleasePrivilege( 00127 IN PVOID State 00128 ); 00129 00130 ULONG 00131 NTAPI 00132 SmpApiLoop( 00133 IN PVOID Parameter 00134 ); 00135 00136 NTSTATUS 00137 NTAPI 00138 SmpExecuteCommand( 00139 IN PUNICODE_STRING CommandLine, 00140 IN ULONG MuSessionId, 00141 OUT PHANDLE ProcessId, 00142 IN ULONG Flags 00143 ); 00144 00145 NTSTATUS 00146 NTAPI 00147 SmpLoadSubSystemsForMuSession( 00148 IN PULONG MuSessionId, 00149 OUT PHANDLE ProcessId, 00150 IN PUNICODE_STRING InitialCommand 00151 ); 00152 00153 VOID 00154 NTAPI 00155 SmpPagingFileInitialize( 00156 VOID 00157 ); 00158 00159 NTSTATUS 00160 NTAPI 00161 SmpCreatePagingFileDescriptor( 00162 IN PUNICODE_STRING PageFileToken 00163 ); 00164 00165 NTSTATUS 00166 NTAPI 00167 SmpCreatePagingFiles( 00168 VOID 00169 ); 00170 00171 NTSTATUS 00172 NTAPI 00173 SmpParseCommandLine( 00174 IN PUNICODE_STRING CommandLine, 00175 OUT PULONG Flags, 00176 OUT PUNICODE_STRING FileName, 00177 OUT PUNICODE_STRING Directory, 00178 OUT PUNICODE_STRING Arguments 00179 ); 00180 00181 NTSTATUS 00182 NTAPI 00183 SmpLoadSubSystem( 00184 IN PUNICODE_STRING FileName, 00185 IN PUNICODE_STRING Directory, 00186 IN PUNICODE_STRING CommandLine, 00187 IN ULONG MuSessionId, 00188 OUT PHANDLE ProcessId, 00189 IN ULONG Flags 00190 ); 00191 00192 NTSTATUS 00193 NTAPI 00194 SmpSetProcessMuSessionId( 00195 IN HANDLE ProcessHandle, 00196 IN ULONG SessionId 00197 ); 00198 00199 BOOLEAN 00200 NTAPI 00201 SmpQueryRegistrySosOption( 00202 VOID 00203 ); 00204 00205 BOOLEAN 00206 NTAPI 00207 SmpSaveAndClearBootStatusData( 00208 OUT PBOOLEAN BootOkay, 00209 OUT PBOOLEAN ShutdownOkay 00210 ); 00211 00212 VOID 00213 NTAPI 00214 SmpRestoreBootStatusData( 00215 IN BOOLEAN BootOkay, 00216 IN BOOLEAN ShutdownOkay 00217 ); 00218 00219 BOOLEAN 00220 NTAPI 00221 SmpCheckForCrashDump( 00222 IN PUNICODE_STRING FileName 00223 ); 00224 00225 VOID 00226 NTAPI 00227 SmpTranslateSystemPartitionInformation( 00228 VOID 00229 ); 00230 00231 PSMP_SUBSYSTEM 00232 NTAPI 00233 SmpLocateKnownSubSysByCid( 00234 IN PCLIENT_ID ClientId 00235 ); 00236 00237 PSMP_SUBSYSTEM 00238 NTAPI 00239 SmpLocateKnownSubSysByType( 00240 IN ULONG MuSessionId, 00241 IN ULONG ImageType 00242 ); 00243 00244 NTSTATUS 00245 NTAPI 00246 SmpGetProcessMuSessionId( 00247 IN HANDLE ProcessHandle, 00248 OUT PULONG SessionId 00249 ); 00250 00251 VOID 00252 NTAPI 00253 SmpDereferenceSubsystem( 00254 IN PSMP_SUBSYSTEM SubSystem 00255 ); 00256 00257 NTSTATUS 00258 NTAPI 00259 SmpSbCreateSession( 00260 IN PVOID Reserved, 00261 IN PSMP_SUBSYSTEM OtherSubsystem, 00262 IN PRTL_USER_PROCESS_INFORMATION ProcessInformation, 00263 IN ULONG MuSessionId, 00264 IN PCLIENT_ID DbgClientId 00265 ); 00266 00267 ULONG 00268 NTAPI 00269 SmpAllocateSessionId( 00270 IN PSMP_SUBSYSTEM Subsystem, 00271 IN PSMP_SUBSYSTEM OtherSubsystem 00272 ); 00273 00274 VOID 00275 NTAPI 00276 SmpDeleteSession( 00277 IN ULONG SessionId 00278 ); 00279 00280 BOOLEAN 00281 NTAPI 00282 SmpCheckDuplicateMuSessionId( 00283 IN ULONG MuSessionId 00284 ); 00285 00286 NTSTATUS 00287 NTAPI 00288 SmpExecuteImage( 00289 IN PUNICODE_STRING FileName, 00290 IN PUNICODE_STRING Directory, 00291 IN PUNICODE_STRING CommandLine, 00292 IN ULONG MuSessionId, 00293 IN ULONG Flags, 00294 IN PRTL_USER_PROCESS_INFORMATION ProcessInformation 00295 ); 00296 00297 #endif Generated on Sat May 26 2012 04:17:45 for ReactOS by
1.7.6.1
|