ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

smss.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.