/********************************************************************************* Administartors±×·ì ±ÇÇÑÀ» °¡Áø °èÁ¤»ý¼º Çì´õÆÄÀÏ - HsUserUtil.h HsUserUtil V1.0 for Windows 2000, XP, 2003 Copyright (C), AhnLab, Inc. 2002-2008, All rights reserved. ¹ö Àü : ÁÖ ¼® : Administartors±×·ì ±ÇÇÑÀ» °¡Áø °èÁ¤»ý¼º ¹× Æú´õ±ÇÇÑ ¼³Á¤ *********************************************************************************/ #ifndef _HSUSERUTIL_H #define _HSUSERUTIL_H //ERROR CODE #define HSUSERUTIL_ERR_OK 0x00000000 //¼º°ø #define HSUSERUTIL_ERR_UNKNOWN 0x0005A001 //¾Ë¼ö¾ø´Â ¿À·ù #define HSUSERUTIL_ERR_NOT_ADMIN 0x0005A002 //Administrator ±ÇÇÑÀÌ ¾Æ´Ô #define HSUSERUTIL_ERR_NOT_NT 0x0005A003 //NT°è¿­ÀÌ ¾Æ´Ô #define HSUSERUTIL_ERR_LOADDLL_FAIL 0x0005A004 //DLLµ¿Àû ·Îµù ½ÇÆÐ #define HSUSERUTIL_ERR_DELSHADOWACNT_FAIL 0x0005A005 //½¦µµ¿ì°èÁ¤ ÆÐÅÏ»èÁ¦ ½ÇÆÐ #define HSUSERUTIL_ERR_DELHIDEIDINFO_FAIL 0x0005A006 //·Î±×¿Â½Ã À¯Àú°èÁ¤ °¨Ãß±â±â À§ÇÑ Á¤º¸»èÁ¦ ½ÇÆÐ #define HSUSERUTIL_ERR_DELSHADOWACNTINFO_FAIL 0x0005A007 //½¦µµ¿ì°èÁ¤Á¤º¸ »èÁ¦½ÇÆÐ #define HSUSERUTIL_ERR_ADDSHADOWACNT_FAIL 0x0005A008 //½¦µµ¿ì°èÁ¤ »ý¼º½ÇÆÐ #define HSUSERUTIL_ERR_SHADOWACNT_NOT_EXIST 0x0005A009 //½¦µµ¿ì°èÁ¤ Á¸ÀçÇÏÁö ¾ÊÀ½ #define HSUSERUTIL_ERR_STRING_CONVERSION_FAIL 0x0005A00A //¹®ÀÚ¿­ º¯È¯ ½ÇÆÐ #define HSUSERUTIL_ERR_SETFLDRPERMISSION_FAIL 0x0005A10A //Æú´õ±ÇÇÑÁÖ±â ½ÇÆÐ #define HSUSERUTIL_ERR_GETGROUPSID_FAIL 0x0005A10B //±×·ì SID ¾ò±â ½ÇÆÐ #define HSUSERUTIL_ERR_GETSECINFO_FAIL 0x0005A10C //SD¿Í DACLÁ¤º¸ ¾ò±â½ÇÆÐ #define HSUSERUTIL_ERR_ADDNEWACE_FAIL 0x0005A10D //»õ ACE »ý¼º ½ÇÆÐ #define HSUSERUTIL_ERR_ADDNEWDACL_FAIL 0x0005A10E //»õ DACL »ý¼º ½ÇÆÐ #define HSUSERUTIL_ERR_COPYOLDDACL_FAIL 0x0005A10F //»õ DACL¿¡ ±âÁ¸DACL º¹»ç ½ÇÆÐ #define HSUSERUTIL_ERR_ADDNEWACETONEWDACL_FAIL 0x0005A110 //»õ DACL¿¡ »õ ACE Ãß°¡ ½ÇÆÐ #define HSUSERUTIL_ERR_GETVOLUMEINFO_FAIL 0x0005A111 //µå¶óÀ̺ê VOLUME INFO¾ò±â ½ÇÆÐ. // Export API #if defined(__cplusplus) extern "C" { #endif /* @param void @retval DWORD : ERROR_SUCCESS = ¼º°ø ±×¿ÜÀÇ ¸®Åϰª = ¿À·ù @remarks ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤¿¡¼­ Á¤»óÀûÀ¸·Î °ÔÀÓ¹× ÇÙ½¯µå º¸¾È±â´ÉÀ» ±¸µ¿Çϱâ À§ÇØ ÇÙ½¯µå °èÁ¤À» »ý¼ºÇÕ´Ï´Ù. ÇØ´ç ÇÔ¼ö È£ÃâÀÌ ¼º°øÀûÀ¸·Î ¿Ï·áµÇ¾î¾ß ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤¿¡¼­µµ °ÔÀÓÀ» ½ÇÇàÇÏ°í °ÔÀÓ ÇØÅ· ¹æ¾î ±â´ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¶§, ÇØ´ç ÇÔ¼ö´Â °ü¸®ÀÚ °èÁ¤À¸·Î °ÔÀÓ ÇÁ·Î±×·¥, Install-Shield, °ÔÀÓ ·±Ã³µîÀÇ ÇÁ·Î±×·¥¿¡¼­ È£ÃâÇÕ´Ï´Ù. */ DWORD __stdcall _AhnHsUserUtil_CreateUser ( ); /* @param LPTSTR : ±ÇÇÑÀ» ºÎ¿©ÇÒ °æ·Î @retval DWORD : ERROR_SUCCESS = ¼º°ø ±×¿ÜÀÇ ¸®Åϰª = ¿À·ù @remarks °ÔÀÓ ÇÁ·Î±×·¥ÀÌ NTFS º¼·ý¿¡ ¼³Ä¡µÈ °æ¿ì¿¡´Â ÇØ´ç Æú´õ¿¡ ´ëÇØ¼­ ÀÏ¹Ý »ç¿ëÀÚ ±ÇÇÑÀ¸·Î´Â ÆÄÀÏ ¾²±â ±ÇÇÑÀÌ ¾ø¾î °ÔÀÓÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î °ÔÀÓ ¸ðµâ¿¡ ´ëÇÑ ¾÷µ¥ÀÌÆ® ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ¾îµµ °ÔÀÓÀÌ ¼³Ä¡µÈ Æú´õ¿¡ ÃֽŠÆÄÀÏÀ» ¾²Áö ¸øÇÏ´Â »óȲÀÌ ¹ß»ýÇÑ´ÙµçÁö, °ÔÀÓ ½ÇÇà Áß¿¡ °ÔÀÓ µ¥ÀÌÅ͸¦ ÀúÀåÇϴµ¥ ½ÇÆÐÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤¿¡ ´ëÇÏ¿© °ÔÀÓ ¼³Ä¡ Æú´õ¿¡ ÆÄÀÏ ¾²±â ±ÇÇÑÀ» ºÎ¿©ÇÏ·Á¸é ÇØ´ç ÇÔ¼ö¸¦ »ç¿ëÇÔÀ¸·Î½á NTFS ¾²±â ±ÇÇÑÀ» ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù */ DWORD __stdcall _AhnHsUserUtil_SetFolderPermissionA ( char* szPathA ); DWORD __stdcall _AhnHsUserUtil_SetFolderPermissionW ( wchar_t* szPathW ); #if defined(UNICODE) | defined(_UNICODE) #define _AhnHsUserUtil_SetFolderPermission _AhnHsUserUtil_SetFolderPermissionW #else #define _AhnHsUserUtil_SetFolderPermission _AhnHsUserUtil_SetFolderPermissionA #endif // !UNICODE /* @param void @retval DWORD : ERROR_SUCCESS = ¼º°ø ±×¿ÜÀÇ ¸®Åϰª = ¿À·ù @remarks ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤¿¡¼­ Á¤»óÀûÀ¸·Î °ÔÀÓ¹× ÇÙ½¯µå º¸¾È±â´ÉÀ» ±¸µ¿Çϱâ À§ÇØ µî·ÏÇÑ °èÁ¤ Á¤º¸¸¦ »èÁ¦Çϸç, °ÔÀÓ Á¦°Å½Ã¿¡ ÇØ´çÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. */ DWORD __stdcall _AhnHsUserUtil_DeleteUser ( ); /* @param void @retval DWORD : ERROR_SUCCESS = ADMIN ±ÇÇÑÀ̰ųª, ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏ´Â °æ¿ì. ±×¿ÜÀÇ ¸®Åϰª = ¿À·ù @remarks ÇöÀç ·Î±×ÀÎµÈ °èÁ¤ÀÌ ÇÙ½¯µå¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. */ DWORD __stdcall _AhnHsUserUtil_IsEnableHSAdminRights ( ); /* @param void @retval DWORD : ERROR_SUCCESS = ÇÙ½¯µå ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏ´Â °æ¿ì. HSUSERUTIL_ERR_SHADOWACNT_NOT_EXIST = ÇÙ½¯µå ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì. ±×¿ÜÀÇ ¸®Åϰª = ¿À·ù. @remarks ÇöÀç OS ¿¡ ÇÙ½¯µå ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. */ DWORD __stdcall _AhnHsUserUtil_CheckHSShadowAccount( ); /* @param void @retval BOOL : TRUE = ADMIN ±ÇÇÑÀ» °¡Áö°í ÀÖ´Â °æ¿ì. FALSE = ¾îµå¹Î ±ÇÇÑÀ» °¡Áö°í ÀÖÁö ¾ÊÀº °æ¿ì. @remarks ÇöÀç ·Î±×ÀÎµÈ °èÁ¤ÀÌ ¾îµå¹Î ±ÇÇÑÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. */ BOOL __stdcall _AhnHSUserUtil_IsAdmin (); #if defined(__cplusplus) } #endif #endif //_HSUSERUTIL_H