Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenservices.h
Go to the documentation of this file.
00001 /* 00002 * services.h 00003 */ 00004 00005 #include <stdio.h> 00006 #define WIN32_NO_STATUS 00007 #include <windows.h> 00008 #include <netevent.h> 00009 #define NTOS_MODE_USER 00010 #include <ndk/iofuncs.h> 00011 #include <ndk/obfuncs.h> 00012 #include <ndk/rtlfuncs.h> 00013 #include <services/services.h> 00014 #include "svcctl_s.h" 00015 00016 00017 typedef struct _SERVICE_GROUP 00018 { 00019 LIST_ENTRY GroupListEntry; 00020 LPWSTR lpGroupName; 00021 00022 DWORD dwRefCount; 00023 BOOLEAN ServicesRunning; 00024 ULONG TagCount; 00025 PULONG TagArray; 00026 00027 WCHAR szGroupName[1]; 00028 } SERVICE_GROUP, *PSERVICE_GROUP; 00029 00030 00031 typedef struct _SERVICE_IMAGE 00032 { 00033 LIST_ENTRY ImageListEntry; 00034 DWORD dwImageRunCount; 00035 00036 HANDLE hControlPipe; 00037 HANDLE hProcess; 00038 DWORD dwProcessId; 00039 00040 WCHAR szImagePath[1]; 00041 } SERVICE_IMAGE, *PSERVICE_IMAGE; 00042 00043 00044 typedef struct _SERVICE 00045 { 00046 LIST_ENTRY ServiceListEntry; 00047 LPWSTR lpServiceName; 00048 LPWSTR lpDisplayName; 00049 PSERVICE_GROUP lpGroup; 00050 PSERVICE_IMAGE lpImage; 00051 BOOL bDeleted; 00052 DWORD dwResumeCount; 00053 DWORD dwRefCount; 00054 00055 SERVICE_STATUS Status; 00056 DWORD dwStartType; 00057 DWORD dwErrorControl; 00058 DWORD dwTag; 00059 00060 ULONG Flags; 00061 00062 PSECURITY_DESCRIPTOR lpSecurityDescriptor; 00063 00064 BOOLEAN ServiceVisited; 00065 00066 WCHAR szServiceName[1]; 00067 } SERVICE, *PSERVICE; 00068 00069 00070 /* VARIABLES ***************************************************************/ 00071 00072 extern LIST_ENTRY ServiceListHead; 00073 extern LIST_ENTRY GroupListHead; 00074 extern LIST_ENTRY ImageListHead; 00075 extern BOOL ScmShutdown; 00076 00077 00078 /* FUNCTIONS ***************************************************************/ 00079 00080 /* config.c */ 00081 00082 DWORD ScmOpenServiceKey(LPWSTR lpServiceName, 00083 REGSAM samDesired, 00084 PHKEY phKey); 00085 00086 DWORD ScmCreateServiceKey(LPCWSTR lpServiceName, 00087 REGSAM samDesired, 00088 PHKEY phKey); 00089 00090 DWORD ScmWriteDependencies(HKEY hServiceKey, 00091 LPCWSTR lpDependencies, 00092 DWORD dwDependenciesLength); 00093 00094 DWORD ScmMarkServiceForDelete(PSERVICE pService); 00095 BOOL ScmIsDeleteFlagSet(HKEY hServiceKey); 00096 00097 DWORD ScmReadString(HKEY hServiceKey, 00098 LPWSTR lpValueName, 00099 LPWSTR *lpValue); 00100 00101 DWORD 00102 ScmReadDependencies(HKEY hServiceKey, 00103 LPWSTR *lpDependencies, 00104 DWORD *lpdwDependenciesLength); 00105 00106 00107 /* database.c */ 00108 00109 DWORD ScmCreateServiceDatabase(VOID); 00110 VOID ScmShutdownServiceDatabase(VOID); 00111 VOID ScmGetBootAndSystemDriverState(VOID); 00112 VOID ScmAutoStartServices(VOID); 00113 VOID ScmAutoShutdownServices(VOID); 00114 DWORD ScmStartService(PSERVICE Service, 00115 DWORD argc, 00116 LPWSTR *argv); 00117 00118 PSERVICE ScmGetServiceEntryByName(LPCWSTR lpServiceName); 00119 PSERVICE ScmGetServiceEntryByDisplayName(LPCWSTR lpDisplayName); 00120 PSERVICE ScmGetServiceEntryByResumeCount(DWORD dwResumeCount); 00121 DWORD ScmCreateNewServiceRecord(LPCWSTR lpServiceName, 00122 PSERVICE *lpServiceRecord); 00123 VOID ScmDeleteServiceRecord(PSERVICE lpService); 00124 DWORD ScmMarkServiceForDelete(PSERVICE pService); 00125 00126 DWORD ScmControlService(PSERVICE Service, 00127 DWORD dwControl); 00128 00129 BOOL ScmLockDatabaseExclusive(VOID); 00130 BOOL ScmLockDatabaseShared(VOID); 00131 VOID ScmUnlockDatabase(VOID); 00132 00133 VOID ScmInitNamedPipeCriticalSection(VOID); 00134 VOID ScmDeleteNamedPipeCriticalSection(VOID); 00135 00136 00137 /* driver.c */ 00138 00139 DWORD ScmLoadDriver(PSERVICE lpService); 00140 DWORD ScmUnloadDriver(PSERVICE lpService); 00141 DWORD ScmControlDriver(PSERVICE lpService, 00142 DWORD dwControl, 00143 LPSERVICE_STATUS lpServiceStatus); 00144 00145 00146 /* groupdb.c */ 00147 00148 DWORD ScmCreateGroupList(VOID); 00149 DWORD ScmSetServiceGroup(PSERVICE lpService, 00150 LPCWSTR lpGroupName); 00151 00152 00153 /* rpcserver.c */ 00154 00155 VOID ScmStartRpcServer(VOID); 00156 00157 00158 /* services.c */ 00159 00160 VOID PrintString(LPCSTR fmt, ...); 00161 VOID ScmLogError(DWORD dwEventId, 00162 WORD wStrings, 00163 LPCWSTR *lpStrings); 00164 00165 /* EOF */ 00166 Generated on Sun May 27 2012 04:18:52 for ReactOS by
1.7.6.1
|