WinNT.nsh 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. !ifndef __WIN_WINNT__INC
  2. !define __WIN_WINNT__INC
  3. !verbose push
  4. !verbose 3
  5. !ifndef __WIN_NOINC_WINNT
  6. #define MINCHAR 0x80
  7. #define MAXCHAR 0x7f
  8. !define MINSHORT 0x8000
  9. !define MAXSHORT 0x7fff
  10. !define MINLONG 0x80000000
  11. !define MAXLONG 0x7fffffff
  12. !define MAXBYTE 0xff
  13. !define MAXWORD 0xffff
  14. !define MAXDWORD 0xffffffff
  15. !ifndef WIN32_NO_STATUS
  16. !define STATUS_WAIT_0 0x00000000
  17. !define STATUS_ABANDONED_WAIT_0 0x00000080
  18. !define STATUS_USER_APC 0x000000C0
  19. !define STATUS_TIMEOUT 0x00000102
  20. !define STATUS_PENDING 0x00000103
  21. !define DBG_EXCEPTION_HANDLED 0x00010001
  22. !define DBG_CONTINUE 0x00010002
  23. !define STATUS_SEGMENT_NOTIFICATION 0x40000005
  24. !define DBG_TERMINATE_THREAD 0x40010003
  25. !define DBG_TERMINATE_PROCESS 0x40010004
  26. !define DBG_CONTROL_C 0x40010005
  27. !define DBG_CONTROL_BREAK 0x40010008
  28. !define DBG_COMMAND_EXCEPTION 0x40010009
  29. !define STATUS_GUARD_PAGE_VIOLATION 0x80000001
  30. !define STATUS_DATATYPE_MISALIGNMENT 0x80000002
  31. !define STATUS_BREAKPOINT 0x80000003
  32. !define STATUS_SINGLE_STEP 0x80000004
  33. !define DBG_EXCEPTION_NOT_HANDLED 0x80010001
  34. !define STATUS_ACCESS_VIOLATION 0xC0000005
  35. !define STATUS_IN_PAGE_ERROR 0xC0000006
  36. !define STATUS_INVALID_HANDLE 0xC0000008
  37. !define STATUS_NO_MEMORY 0xC0000017
  38. !define STATUS_ILLEGAL_INSTRUCTION 0xC000001D
  39. !define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025
  40. !define STATUS_INVALID_DISPOSITION 0xC0000026
  41. !define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C
  42. !define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D
  43. !define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E
  44. !define STATUS_FLOAT_INEXACT_RESULT 0xC000008F
  45. !define STATUS_FLOAT_INVALID_OPERATION 0xC0000090
  46. !define STATUS_FLOAT_OVERFLOW 0xC0000091
  47. !define STATUS_FLOAT_STACK_CHECK 0xC0000092
  48. !define STATUS_FLOAT_UNDERFLOW 0xC0000093
  49. !define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094
  50. !define STATUS_INTEGER_OVERFLOW 0xC0000095
  51. !define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096
  52. !define STATUS_STACK_OVERFLOW 0xC00000FD
  53. !define STATUS_CONTROL_C_EXIT 0xC000013A
  54. !define STATUS_FLOAT_MULTIPLE_FAULTS 0xC00002B4
  55. !define STATUS_FLOAT_MULTIPLE_TRAPS 0xC00002B5
  56. !define STATUS_REG_NAT_CONSUMPTION 0xC00002C9
  57. !define STATUS_SXS_EARLY_DEACTIVATION 0xC015000F
  58. !define STATUS_SXS_INVALID_DEACTIVATION 0xC0150010
  59. !endif /*WIN32_NO_STATUS*/
  60. #define MAXIMUM_WAIT_OBJECTS 64
  61. !define DELETE 0x00010000
  62. !define READ_CONTROL 0x00020000
  63. !define WRITE_DAC 0x00040000
  64. !define WRITE_OWNER 0x00080000
  65. !define SYNCHRONIZE 0x00100000
  66. !define STANDARD_RIGHTS_REQUIRED 0x000F0000
  67. !define STANDARD_RIGHTS_READ ${READ_CONTROL}
  68. !define STANDARD_RIGHTS_WRITE ${READ_CONTROL}
  69. !define STANDARD_RIGHTS_EXECUTE ${READ_CONTROL}
  70. !define STANDARD_RIGHTS_ALL 0x001F0000
  71. !define SPECIFIC_RIGHTS_ALL 0x0000FFFF
  72. !define ACCESS_SYSTEM_SECURITY 0x01000000
  73. !define MAXIMUM_ALLOWED 0x02000000
  74. !define GENERIC_READ 0x80000000
  75. !define GENERIC_WRITE 0x40000000
  76. !define GENERIC_EXECUTE 0x20000000
  77. !define GENERIC_ALL 0x10000000
  78. !define SE_PRIVILEGE_ENABLED_BY_DEFAULT 0x00000001
  79. !define SE_PRIVILEGE_ENABLED 0x00000002
  80. !define SE_PRIVILEGE_REMOVED 0x00000004
  81. !define SE_PRIVILEGE_USED_FOR_ACCESS 0x80000000
  82. !define SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege"
  83. !define SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege"
  84. !define SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege"
  85. !define SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege"
  86. !define SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege"
  87. !define SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege"
  88. !define SE_TCB_NAME "SeTcbPrivilege"
  89. !define SE_SECURITY_NAME "SeSecurityPrivilege"
  90. !define SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege"
  91. !define SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege"
  92. !define SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege"
  93. !define SE_SYSTEMTIME_NAME "SeSystemtimePrivilege"
  94. !define SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege"
  95. !define SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege"
  96. !define SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege"
  97. !define SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege"
  98. !define SE_BACKUP_NAME "SeBackupPrivilege"
  99. !define SE_RESTORE_NAME "SeRestorePrivilege"
  100. !define SE_SHUTDOWN_NAME "SeShutdownPrivilege"
  101. !define SE_DEBUG_NAME "SeDebugPrivilege"
  102. !define SE_AUDIT_NAME "SeAuditPrivilege"
  103. !define SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege"
  104. !define SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege"
  105. !define SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege"
  106. !define SE_UNDOCK_NAME "SeUndockPrivilege"
  107. !define SE_SYNC_AGENT_NAME "SeSyncAgentPrivilege"
  108. !define SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege"
  109. !define SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege"
  110. !define SE_IMPERSONATE_NAME "SeImpersonatePrivilege"
  111. !define SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege"
  112. !define TOKEN_ASSIGN_PRIMARY 0x0001
  113. !define TOKEN_DUPLICATE 0x0002
  114. !define TOKEN_IMPERSONATE 0x0004
  115. !define TOKEN_QUERY 0x0008
  116. !define TOKEN_QUERY_SOURCE 0x0010
  117. !define TOKEN_ADJUST_PRIVILEGES 0x0020
  118. !define TOKEN_ADJUST_GROUPS 0x0040
  119. !define TOKEN_ADJUST_DEFAULT 0x0080
  120. !define TOKEN_ADJUST_SESSIONID 0x0100
  121. !define TOKEN_ALL_ACCESS_P 0xF00FF
  122. !define /math TOKEN_ALL_ACCESS ${TOKEN_ALL_ACCESS_P} | ${TOKEN_ADJUST_SESSIONID}
  123. !define /math TOKEN_READ ${STANDARD_RIGHTS_READ} | ${TOKEN_QUERY}
  124. !define TOKEN_WRITE 0x200E0 ;(STANDARD_RIGHTS_WRITE|TOKEN_ADJUST_PRIVILEGES|TOKEN_ADJUST_GROUPS|TOKEN_ADJUST_DEFAULT)
  125. !define TOKEN_EXECUTE ${STANDARD_RIGHTS_EXECUTE}
  126. !define PROCESS_TERMINATE 0x0001
  127. !define PROCESS_CREATE_THREAD 0x0002
  128. !define PROCESS_SET_SESSIONID 0x0004
  129. !define PROCESS_VM_OPERATION 0x0008
  130. !define PROCESS_VM_READ 0x0010
  131. !define PROCESS_VM_WRITE 0x0020
  132. !define PROCESS_DUP_HANDLE 0x0040
  133. !define PROCESS_CREATE_PROCESS 0x0080
  134. !define PROCESS_SET_QUOTA 0x0100
  135. !define PROCESS_SET_INFORMATION 0x0200
  136. !define PROCESS_QUERY_INFORMATION 0x0400
  137. !define PROCESS_SUSPEND_RESUME 0x0800
  138. !define PROCESS_ALL_ACCESS 0x1F0FFF ;(STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF)
  139. !define THREAD_TERMINATE 0x0001
  140. !define THREAD_SUSPEND_RESUME 0x0002
  141. !define THREAD_GET_CONTEXT 0x0008
  142. !define THREAD_SET_CONTEXT 0x0010
  143. !define THREAD_SET_INFORMATION 0x0020
  144. !define THREAD_QUERY_INFORMATION 0x0040
  145. !define THREAD_SET_THREAD_TOKEN 0x0080
  146. !define THREAD_IMPERSONATE 0x0100
  147. !define THREAD_DIRECT_IMPERSONATION 0x0200
  148. !define THREAD_ALL_ACCESS 0x1F03FF ;(STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF)
  149. !define JOB_OBJECT_ASSIGN_PROCESS 0x0001
  150. !define JOB_OBJECT_SET_ATTRIBUTES 0x0002
  151. !define JOB_OBJECT_QUERY 0x0004
  152. !define JOB_OBJECT_TERMINATE 0x0008
  153. !define JOB_OBJECT_SET_SECURITY_ATTRIBUTES 0x0010
  154. !define JOB_OBJECT_ALL_ACCESS 0x1F001F ;(STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1F )
  155. !define EVENT_MODIFY_STATE 0x0002
  156. !define EVENT_ALL_ACCESS 0x1F0003 ;(STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3)
  157. !define MUTANT_QUERY_STATE 0x0001
  158. !define MUTANT_ALL_ACCESS 0x1F0001 ;(STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|MUTANT_QUERY_STATE)
  159. !define FILE_SHARE_READ 0x00000001
  160. !define FILE_SHARE_WRITE 0x00000002
  161. !define FILE_SHARE_DELETE 0x00000004
  162. !define FILE_ATTRIBUTE_READONLY 0x00000001
  163. !define FILE_ATTRIBUTE_HIDDEN 0x00000002
  164. !define FILE_ATTRIBUTE_SYSTEM 0x00000004
  165. !define FILE_ATTRIBUTE_DIRECTORY 0x00000010
  166. !define FILE_ATTRIBUTE_ARCHIVE 0x00000020
  167. !define FILE_ATTRIBUTE_DEVICE 0x00000040
  168. !define FILE_ATTRIBUTE_NORMAL 0x00000080
  169. !define FILE_ATTRIBUTE_TEMPORARY 0x00000100
  170. !define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
  171. !define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
  172. !define FILE_ATTRIBUTE_COMPRESSED 0x00000800
  173. !define FILE_ATTRIBUTE_OFFLINE 0x00001000
  174. !define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
  175. !define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
  176. !define DUPLICATE_CLOSE_SOURCE 0x00000001
  177. !define DUPLICATE_SAME_ACCESS 0x00000002
  178. !define /ifndef VER_PLATFORM_WIN32s 0
  179. !define /ifndef VER_PLATFORM_WIN32_WINDOWS 1
  180. !define /ifndef VER_PLATFORM_WIN32_NT 2
  181. !ifndef REG_SZ & NSIS_WINDOWS__NO_REGTYPES
  182. !define REG_NONE 0
  183. !define REG_SZ 1
  184. !define REG_EXPAND_SZ 2
  185. !define REG_BINARY 3
  186. !define REG_DWORD 4
  187. !define REG_DWORD_LITTLE_ENDIAN 4
  188. !define REG_DWORD_BIG_ENDIAN 5
  189. !define REG_LINK 6
  190. !define REG_MULTI_SZ 7
  191. !endif
  192. !endif /* __WIN_NOINC_WINNT */
  193. !verbose pop
  194. !endif /* __WIN_WINNT__INC */