#ifndef __HSUSERUTILDLL_H__ #define __HSUSERUTILDLL_H__ #ifdef HSUSERUTILDLL_EXPORTS #define HSUSERUTILDLL_API __declspec(dllexport) #else #define HSUSERUTILDLL_API __declspec(dllimport) #endif // error codes #define HSUSERUTIL_ERR_CREATE_USER_FAILED 0x01 #define HSUSERUTIL_ERR_SET_FOLDER_PERMISSION_FAILED 0x02 #define HSUSERUTIL_ERR_DELETE_USER_FAILED 0x03 #define HSUSERUTIL_ERR_ENABLE_HSADMIN_RIGHTS 0x04 #define HSUSERUTIL_ERR_HSUSER_ACCOUNT_NOT_EXIST 0x05 // exported functions #ifdef __cplusplus extern "C" { #endif /* @param void @retval DWORD : ERROR_SUCCESS = ¼º°ø HSUSERUTIL_ERR_CREATE_USER_FAILED = ¿À·ù @remarks ÇØ´ç ÇÔ¼ö È£ÃâÀÌ ¼º°øÀûÀ¸·Î ¿Ï·áµÇ¾î¾ß ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤¿¡¼­µµ °ÔÀÓÀ» ½ÇÇàÇÏ°í °ÔÀÓ ÇØÅ· ¹æ¾î ±â´ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¶§, ÇØ´ç ÇÔ¼ö´Â °ü¸®ÀÚ °èÁ¤À¸·Î °ÔÀÓ ÇÁ·Î±×·¥, Install-Shield, °ÔÀÓ ·±Ã³µîÀÇ ÇÁ·Î±×·¥¿¡¼­ È£ÃâÇÕ´Ï´Ù. */ HSUSERUTILDLL_API DWORD __stdcall HsUserUtil_ExecUserCreate(); /* @param LPTSTR : ±ÇÇÑÀ» ºÎ¿©ÇÒ °æ·Î @retval DWORD : ERROR_SUCCESS = ¼º°ø HSUSERUTIL_ERR_SET_FOLDER_PERMISSION_FAILED = ¿À·ù @remarks °ÔÀÓ ÇÁ·Î±×·¥ÀÌ NTFS º¼·ý¿¡ ¼³Ä¡µÈ °æ¿ì¿¡´Â ÇØ´ç Æú´õ¿¡ ´ëÇØ¼­ ÀÏ¹Ý »ç¿ëÀÚ ±ÇÇÑÀ¸·Î´Â ÆÄÀÏ ¾²±â ±ÇÇÑÀÌ ¾ø¾î °ÔÀÓÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î °ÔÀÓ ¸ðµâ¿¡ ´ëÇÑ ¾÷µ¥ÀÌÆ® ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ¾îµµ °ÔÀÓÀÌ ¼³Ä¡µÈ Æú´õ¿¡ ÃֽŠÆÄÀÏÀ» ¾²Áö ¸øÇÏ´Â »óȲÀÌ ¹ß»ýÇÑ´ÙµçÁö, °ÔÀÓ ½ÇÇà Áß¿¡ °ÔÀÓ µ¥ÀÌÅ͸¦ ÀúÀåÇϴµ¥ ½ÇÆÐÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤¿¡ ´ëÇÏ¿© °ÔÀÓ ¼³Ä¡ Æú´õ¿¡ ÆÄÀÏ ¾²±â ±ÇÇÑÀ» ºÎ¿©ÇÏ·Á¸é ÇØ´ç ÇÔ¼ö¸¦ »ç¿ëÇÔÀ¸·Î½á NTFS ¾²±â ±ÇÇÑÀ» ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù */ HSUSERUTILDLL_API DWORD __stdcall HsUserUtil_ExecSetFolderPermissionA(LPSTR szInstallDirA); HSUSERUTILDLL_API DWORD __stdcall HsUserUtil_ExecSetFolderPermissionW(LPWSTR szInstallDirW); /* @param void @retval DWORD : ERROR_SUCCESS = ¼º°ø HSUSERUTIL_ERR_DELETE_USER_FAILED = ¿À·ù @remarks ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤¿¡¼­ Á¤»óÀûÀ¸·Î °ÔÀÓ¹× ÇÙ½¯µå º¸¾È±â´ÉÀ» ±¸µ¿Çϱâ À§ÇØ µî·ÏÇÑ °èÁ¤ Á¤º¸¸¦ »èÁ¦Çϸç, °ÔÀÓ Á¦°Å½Ã¿¡ ÇØ´çÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. */ HSUSERUTILDLL_API DWORD __stdcall HsUserUtil_ExecUserDelete(); /* @param void @retval DWORD : ERROR_SUCCESS = ADMIN ±ÇÇÑÀ̰ųª, ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏ´Â °æ¿ì. HSUSERUTIL_ERR_ENABLE_HSADMIN_RIGHTS = ¿À·ù @remarks ÇöÀç °èÁ¤ÀÌ ÇÙ½¯µå¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. */ HSUSERUTILDLL_API DWORD __stdcall HsUserUtil_IsEnableHSAdminRights(); /* @param void @retval DWORD : ERROR_SUCCESS = ÇÙ½¯µå ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏ´Â °æ¿ì. HSUSERUTIL_ERR_HSUSER_ACCOUNT_NOT_EXIST = ÇÙ½¯µå ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì. ±×¿ÜÀÇ ¸®Åϰª = ¿À·ù. @remarks ÇöÀç OS ¿¡ ÇÙ½¯µå ½¦µµ¿ì °èÁ¤ÀÌ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. */ HSUSERUTILDLL_API DWORD __stdcall HsUserUtil_CheckHSShadowAccount( ); /* @param void @retval BOOL : TRUE = ADMIN ±ÇÇÑÀ» °¡Áö°í ÀÖ´Â °æ¿ì. FALSE = ¾îµå¹Î ±ÇÇÑÀ» °¡Áö°í ÀÖÁö ¾ÊÀº °æ¿ì. @remarks ÇöÀç ·Î±×ÀÎµÈ °èÁ¤ÀÌ ¾îµå¹Î ±ÇÇÑÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. */ HSUSERUTILDLL_API BOOL __stdcall HsUserUtil_IsAdmin(); #ifdef __cplusplus } #endif #endif