À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á |
---|
Á¦¸ñ | Service Ãß°¡ 1998/07/20 (21:23) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 36 |
Á¶È¸ | 413 |
º»¹® |
SCM Database¿¡ Service Ãß°¡Çϱâ dwDesiredAccess¸¦ SC_MANAGER_CREATE_SERVICE·Î ÁöÁ¤ÇÑ ´ÙÀ½ OpenSCManager¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. ±×¸®°í, CreateService¸¦ È£Ãâ SC_HANDLE_OpenScManager( LPCTSTR lpMachineName, LPCTSTR lpDatabaseName, DWORD dwDesiredAccess); lpMachineName = NULL --> °°Àº ±â°è lpDatabaseName : SERVICES_ACTIVE_DATA or NULL dwDesiredAccess : SCM Database·Î ¾î¶² ÀÛ¾÷À» ÇÒÁö --> SC_MANAGER_ALL_ACCESS : ¸ðµç ±â´É »ç¿ë --> SC_MANAGER_CONNECT : ¿¬°áÀ» Çã¿ëÇÏ¸ç ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ Ç×»ó ¼±Åà --> SC_MANAGER_CREATE_SERVICE : ¼ºñ½º Ãß°¡ --> SC_MANAGER_FNUMERATE_SERVICE : ¼ºñ½º ¸ñ·ÏÀ» ¾ò±â À§ÇØ --> SC_MANAGER_LOCK : ´õÀÌ»ó ¼ºñ½º°¡ ½ÃÀÛµÇÁö ¾Êµµ·Ï µ¥ÀÌŸº£À̽º¸¦ ÁßÁö --> SC_MANAGER_QUERY_LOCK_STATUS : »ç¿ëÀÚ°¡ SCM DB¸¦ Àá±É´ÂÁö ¾Ë±â À§ÇØ BOOL CloseServiceHandle(SC_HANDLE hSCManager); : SCM DB¿¡ ´ëÇÑ Á¢±ÙÀÌ ¸ðµÎ ³¡³ª¸é ÇÚµéÀ» ´Ý¾Æ¾ß ÇÔ. SC_HANDLE CreateService( SC_HANDLE hSCManager, LPCTSTR lpServiceName, LPCTSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCTSTR lpBinaryPathName, LPCTSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCTSTR lpDependencies, LPCTSTR lpServiceStartName, LPCTSTR lpPassword); --> hSCManager : OpenSCManager°¡ ¹ÝȯÇÑ ÇÚµé --> lpServiceName : internal name : SCMÀÌ registry¿¡ service informationÀ» ÀúÀåÇϱâ À§ÇØ »ç¿ë : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\??? --> lpDisplayName : display name --> dwDesiredAccess --> dwServiceType : ±× ½ÇÇàÆÄÀÏ ³»ºÎ¿¡ ¾ó¸¶³ª ¸¹Àº ¼ºñ½º°¡ Æ÷ÇԵǾî ÀÖ´ÂÁö¸¦ ¾Ë·ÁÁÜ : ÇϳªÀÇ ¼ºñ½º¸¸ Æ÷ÇÔ --> SERVICE_WIN32_OWN_PROCESS : µÎ °³ ÀÌ»ó --> SERVICE_WIN32_SHARE_PROCESS : ÇÁ·Î¼¼½º ³»ÀÇ ¼ºñ½º°¡ »ç¿ëÀÚÀÇ µ¥½ºÅ©Å¾°ú »óÈ£ÀÛ¿ëÇϱ⸦ ¿øÇÑ´Ù¸é : --> SERVICE_INTERACTIVE_PROCESS flag¸¦ Ãß°¡ --> dwStartType : ¼ºñ½º°¡ ½ÃÀÛÇÒ ¶§¸¦ ½Ã½ºÅÛ¿¡ ¾Ë·ÁÁÜ : SERVICE_AUTO_START : ºÎÆõɶ§ ÀÚµ¿À¸·Î ½ÃÀÛ : SERVICE_DEMAND_START : ´Ù¸¥ ¼ºñ½º°¡ ¸ÕÀú ½ÃÀÛµÇ¾ß Çϰųª, ¼öµ¿À¸·Î ½ÃÀÛ : SERVICE_DISABLED --> ½Ã½ºÅÛÀÌ ¼ºñ½º¸¦ ½ÃÀÛÇÒ ¼ö ¾øµµ·Ï ÇÔ. --> dwErrorControl : ¼ºñ½º ½ÃÀÛÀÌ ½ÇÆÐÇßÀ» ¶§ : SERVICE_ERROR_IGNORE --> À̺¥Æ® ·Î±×¿¡ ±â·Ï : SERVICE_ERROR_NORMAL --> À̺¥Æ® ·Î±×¿¡ ±â·Ï, ¿¡·¯ ¸Þ½ÃÁö »óÀÚ¸¦ Ç¥½Ã : SERVICE_ERROR_SERVERE --> ½ÇÆнà ½ÃÀÛ ÀÛ¾÷ Áß´Ü : SERVICE_ERROR_CRITICAL --> ½ÇÆнà ½ÃÀÛ ÀÛ¾÷ Áß´Ü --> lpBinaryPathName : ¼ºñ½º°¡ Æ÷ÇÔµÈ ½ÇÇà ÈÀÏÀÇ Àüü °æ·Î : %SystemRoot%\system32 (´ëºÎºÐ) --> lpLoadOrderGroup --> ¹Ì¸® Á¤ÀÇµÈ ±×·ìÁßÀÇ Çϳª : ¾îµð¿¡µµ ¼ÓÇÏÁö ¾ÊÀ¸¸é(´ëºÎºÐ) NULL --> lpwTagId : Ç×»ó NULL --> lpDependencies : ¾î¶² ¼ºñ½º°¡ ÀÚ½ÅÀÇ ¼ºñ½º¿¡ Á¾¼ÓÀûÀÎÁö¸¦ ¾Ë·ÁÁÜ. : Á¾¼Ó¼ºÀÌ ¾ø´Ù¸é NULL --> lpServiceStartName : °èÁ¤À» ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÜ. : ½Ã½ºÅÛ°èÁ¤ÀÌ ¼ºñ½º¸¦ ½ÇÇàÇÏ·Á¸é(´ëºÎºÐ) NULL --> lpPassword : ½Ã½ºÅÛ°èÁ¤ÀÌ ¼ºñ½º¸¦ ½ÇÇàÇÏ·Á¸é(´ëºÎºÐ) NULL CreateService()°¡ ¼º°øÇϸé 0ÀÌ ¾Æ´Ñ Çڵ鰪 ¹Ýȯ ½ÇÆÐÇÏ´Â ´ëºÎºÐÀÇ °æ¿ì : OpenSCManager°¡ ¹ÝȯÇÑ ÇÚµéÀÌ SC_MANAGER_CREATE_SERVICE Á¢±Ù ±â´ÉÀ» °®Áö ¾Ê°í ÀÖ´Ù. : »õ ¼ºñ½º°¡ ±âÁ¸ ¼ºñ½º¿Í »óÈ£ Á¾¼ÓÀûÀÌ´Ù. : °°Àº display nameÀ» °¡Áø ¼ºñ½º°¡ Á¸ÀçÇÑ´Ù. : ÁöÁ¤ÇÑ ¼ºñ½º À̸§ÀÌ À߸øµÇ¾ú´Ù. : ¸Å°³ º¯¼ö°¡ À߸øµÇ¾ú´Ù. : ÁöÁ¤ÇÑ »ç¿ëÀÚ °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. |