tcc 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +196 -0
  4. data/ext/tcc/extconf.rb +25 -0
  5. data/ext/tcc/tcc-0.9.26.patch +30 -0
  6. data/ext/tcc/tcc-0.9.26/COPYING +504 -0
  7. data/ext/tcc/tcc-0.9.26/Changelog +396 -0
  8. data/ext/tcc/tcc-0.9.26/Makefile +349 -0
  9. data/ext/tcc/tcc-0.9.26/README +101 -0
  10. data/ext/tcc/tcc-0.9.26/TODO +93 -0
  11. data/ext/tcc/tcc-0.9.26/VERSION +1 -0
  12. data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
  13. data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
  14. data/ext/tcc/tcc-0.9.26/coff.h +446 -0
  15. data/ext/tcc/tcc-0.9.26/config.h +8 -0
  16. data/ext/tcc/tcc-0.9.26/config.mak +28 -0
  17. data/ext/tcc/tcc-0.9.26/config.texi +1 -0
  18. data/ext/tcc/tcc-0.9.26/configure +540 -0
  19. data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
  20. data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
  21. data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
  22. data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
  23. data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
  24. data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
  25. data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
  26. data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
  27. data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
  28. data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
  29. data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
  30. data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
  31. data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
  32. data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
  33. data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
  34. data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
  35. data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
  36. data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
  37. data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
  38. data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
  39. data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
  40. data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
  41. data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
  42. data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
  43. data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
  44. data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
  45. data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
  46. data/ext/tcc/tcc-0.9.26/stab.def +234 -0
  47. data/ext/tcc/tcc-0.9.26/stab.h +17 -0
  48. data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
  49. data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
  50. data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
  51. data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
  52. data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
  53. data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
  54. data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
  55. data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
  56. data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
  57. data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
  58. data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
  59. data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
  60. data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
  61. data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
  62. data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
  63. data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
  64. data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
  65. data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
  66. data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
  67. data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
  68. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
  69. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
  70. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
  71. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
  72. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
  73. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
  74. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
  75. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
  76. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
  77. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
  78. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
  79. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
  80. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
  81. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
  82. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
  83. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
  84. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
  85. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
  86. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
  87. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
  88. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
  89. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
  90. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
  91. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
  92. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
  93. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
  94. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
  95. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
  96. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
  97. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
  98. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
  99. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
  100. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
  101. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
  102. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
  103. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
  104. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
  105. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
  106. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
  107. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
  108. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
  109. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
  110. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
  111. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
  112. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
  113. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
  114. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
  115. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
  116. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
  117. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
  118. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
  119. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
  120. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
  121. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
  122. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
  123. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
  124. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
  125. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
  126. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
  127. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
  128. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
  129. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
  130. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
  131. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
  132. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
  133. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
  134. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
  135. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
  136. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
  137. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
  138. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
  139. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
  140. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
  141. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
  142. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
  143. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
  144. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
  145. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
  146. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
  147. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
  148. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
  149. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
  150. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
  151. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
  152. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
  153. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
  154. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
  155. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
  156. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
  157. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
  158. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
  159. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
  160. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
  161. data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
  162. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
  163. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
  164. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
  165. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
  166. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
  167. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
  168. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
  169. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
  170. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
  171. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
  172. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
  173. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
  174. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
  175. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
  176. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
  177. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
  178. data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
  179. data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
  180. data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
  181. data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
  182. data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
  183. data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
  184. data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
  185. data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
  186. data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
  187. data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
  188. data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
  189. data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
  190. data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
  191. data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
  192. data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
  193. data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
  194. data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
  195. data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
  196. data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
  197. data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
  198. data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
  199. data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
  200. data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
  201. data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
  202. data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
  203. data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
  204. data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
  205. data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
  206. data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
  207. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
  208. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
  209. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
  210. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
  211. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
  212. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
  213. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
  214. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
  215. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
  216. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
  217. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
  218. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
  219. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
  220. data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
  221. data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
  222. data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
  223. data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
  224. data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
  225. data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
  226. data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
  227. data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
  228. data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
  229. data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
  230. data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
  231. data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
  232. data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
  233. data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
  234. data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
  235. data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
  236. data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
  237. data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
  238. data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
  239. data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
  240. data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
  241. data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
  242. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
  243. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
  244. data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
  245. data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
  246. data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
  247. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
  248. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
  249. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
  250. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
  251. data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
  252. data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
  253. data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
  254. data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
  255. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
  256. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
  257. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
  258. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
  259. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
  260. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
  261. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
  262. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
  263. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
  264. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
  265. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
  266. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
  267. data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
  268. data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
  269. data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
  270. data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
  271. data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
  272. data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
  273. data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
  274. data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
  275. data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
  276. data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
  277. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
  278. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
  279. data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
  280. data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
  281. data/lib/tcc.rb +291 -0
  282. data/tcc.gemspec +15 -0
  283. metadata +343 -0
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef __INTRIN_H_
7
+ #define __INTRIN_H_
8
+
9
+ //!__TINYC__: intrinsic stuff removed
10
+
11
+ #endif /* end __INTRIN_H_ */
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #if !(defined(lint) || defined(RC_INVOKED))
7
+ #pragma pack(pop)
8
+ #endif
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #if !(defined(lint) || defined(RC_INVOKED))
7
+ #pragma pack(push,1)
8
+ #endif
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #if !(defined(lint) || defined(RC_INVOKED))
7
+ #pragma pack(push,2)
8
+ #endif
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #if !(defined(lint) || defined(RC_INVOKED))
7
+ #pragma pack(push,4)
8
+ #endif
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #if !(defined(lint) || defined(RC_INVOKED))
7
+ #pragma pack(push,8)
8
+ #endif
@@ -0,0 +1,80 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #if !defined SENTINEL_Reason
7
+ #define SENTINEL_Reason
8
+
9
+ #define SHTDN_REASON_FLAG_COMMENT_REQUIRED 0x01000000
10
+ #define SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED 0x02000000
11
+ #define SHTDN_REASON_FLAG_CLEAN_UI 0x04000000
12
+ #define SHTDN_REASON_FLAG_DIRTY_UI 0x08000000
13
+ #define SHTDN_REASON_FLAG_USER_DEFINED 0x40000000
14
+ #define SHTDN_REASON_FLAG_PLANNED 0x80000000
15
+ #define SHTDN_REASON_MAJOR_OTHER 0x00000000
16
+ #define SHTDN_REASON_MAJOR_NONE 0x00000000
17
+ #define SHTDN_REASON_MAJOR_HARDWARE 0x00010000
18
+ #define SHTDN_REASON_MAJOR_OPERATINGSYSTEM 0x00020000
19
+ #define SHTDN_REASON_MAJOR_SOFTWARE 0x00030000
20
+ #define SHTDN_REASON_MAJOR_APPLICATION 0x00040000
21
+ #define SHTDN_REASON_MAJOR_SYSTEM 0x00050000
22
+ #define SHTDN_REASON_MAJOR_POWER 0x00060000
23
+ #define SHTDN_REASON_MAJOR_LEGACY_API 0x00070000
24
+ #define SHTDN_REASON_MINOR_OTHER 0x00000000
25
+ #define SHTDN_REASON_MINOR_NONE 0x000000ff
26
+ #define SHTDN_REASON_MINOR_MAINTENANCE 0x00000001
27
+ #define SHTDN_REASON_MINOR_INSTALLATION 0x00000002
28
+ #define SHTDN_REASON_MINOR_UPGRADE 0x00000003
29
+ #define SHTDN_REASON_MINOR_RECONFIG 0x00000004
30
+ #define SHTDN_REASON_MINOR_HUNG 0x00000005
31
+ #define SHTDN_REASON_MINOR_UNSTABLE 0x00000006
32
+ #define SHTDN_REASON_MINOR_DISK 0x00000007
33
+ #define SHTDN_REASON_MINOR_PROCESSOR 0x00000008
34
+ #define SHTDN_REASON_MINOR_NETWORKCARD 0x00000009
35
+ #define SHTDN_REASON_MINOR_POWER_SUPPLY 0x0000000a
36
+ #define SHTDN_REASON_MINOR_CORDUNPLUGGED 0x0000000b
37
+ #define SHTDN_REASON_MINOR_ENVIRONMENT 0x0000000c
38
+ #define SHTDN_REASON_MINOR_HARDWARE_DRIVER 0x0000000d
39
+ #define SHTDN_REASON_MINOR_OTHERDRIVER 0x0000000e
40
+ #define SHTDN_REASON_MINOR_BLUESCREEN 0x0000000F
41
+ #define SHTDN_REASON_MINOR_SERVICEPACK 0x00000010
42
+ #define SHTDN_REASON_MINOR_HOTFIX 0x00000011
43
+ #define SHTDN_REASON_MINOR_SECURITYFIX 0x00000012
44
+ #define SHTDN_REASON_MINOR_SECURITY 0x00000013
45
+ #define SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000014
46
+ #define SHTDN_REASON_MINOR_WMI 0x00000015
47
+ #define SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000016
48
+ #define SHTDN_REASON_MINOR_HOTFIX_UNINSTALL 0x00000017
49
+ #define SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL 0x00000018
50
+ #define SHTDN_REASON_MINOR_MMC 0x00000019
51
+ #define SHTDN_REASON_MINOR_SYSTEMRESTORE 0x0000001a
52
+ #define SHTDN_REASON_MINOR_TERMSRV 0x00000020
53
+ #define SHTDN_REASON_MINOR_DC_PROMOTION 0x00000021
54
+ #define SHTDN_REASON_MINOR_DC_DEMOTION 0x00000022
55
+ #define SHTDN_REASON_UNKNOWN SHTDN_REASON_MINOR_NONE
56
+ #define SHTDN_REASON_LEGACY_API (SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED)
57
+ #define SHTDN_REASON_VALID_BIT_MASK 0xc0ffffff
58
+
59
+ #define PCLEANUI (SHTDN_REASON_FLAG_PLANNED | SHTDN_REASON_FLAG_CLEAN_UI)
60
+ #define UCLEANUI (SHTDN_REASON_FLAG_CLEAN_UI)
61
+ #define PDIRTYUI (SHTDN_REASON_FLAG_PLANNED | SHTDN_REASON_FLAG_DIRTY_UI)
62
+ #define UDIRTYUI (SHTDN_REASON_FLAG_DIRTY_UI)
63
+
64
+ #define MAX_REASON_NAME_LEN 64
65
+ #define MAX_REASON_DESC_LEN 256
66
+ #define MAX_REASON_BUGID_LEN 32
67
+ #define MAX_REASON_COMMENT_LEN 512
68
+ #define SHUTDOWN_TYPE_LEN 32
69
+
70
+ #define POLICY_SHOWREASONUI_NEVER 0
71
+ #define POLICY_SHOWREASONUI_ALWAYS 1
72
+ #define POLICY_SHOWREASONUI_WORKSTATIONONLY 2
73
+ #define POLICY_SHOWREASONUI_SERVERONLY 3
74
+
75
+ #define SNAPSHOT_POLICY_NEVER 0
76
+ #define SNAPSHOT_POLICY_ALWAYS 1
77
+ #define SNAPSHOT_POLICY_UNPLANNED 2
78
+
79
+ #define MAX_NUM_REASONS 256
80
+ #endif
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+
7
+ #define __specstrings
@@ -0,0 +1,154 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef __STRALIGN_H_
7
+ #define __STRALIGN_H_
8
+
9
+ #ifndef _STRALIGN_USE_SECURE_CRT
10
+ #define _STRALIGN_USE_SECURE_CRT 0
11
+ #endif
12
+
13
+ #ifdef __cplusplus
14
+ extern "C" {
15
+ #endif
16
+
17
+ #if defined(I_X86_)
18
+ #define WSTR_ALIGNED(s) TRUE
19
+ #define ua_CharUpperW CharUpperW
20
+ #define ua_lstrcmpiW lstrcmpiW
21
+ #define ua_lstrcmpW lstrcmpW
22
+ #define ua_lstrlenW lstrlenW
23
+ #define ua_wcschr wcschr
24
+ #define ua_wcsicmp wcsicmp
25
+ #define ua_wcslen wcslen
26
+ #define ua_wcsrchr wcsrchr
27
+ static __inline PUWSTR ua_wcscpy(PUWSTR Destination,PCUWSTR Source) { return wcscpy(Destination,Source); }
28
+ #else
29
+ #define WSTR_ALIGNED(s) (((DWORD_PTR)(s) & (sizeof(WCHAR)-1))==0)
30
+
31
+ LPUWSTR WINAPI uaw_CharUpperW(LPUWSTR String);
32
+ int WINAPI uaw_lstrcmpW(PCUWSTR String1,PCUWSTR String2);
33
+ int WINAPI uaw_lstrcmpiW(PCUWSTR String1,PCUWSTR String2);
34
+ int WINAPI uaw_lstrlenW(LPCUWSTR String);
35
+ PUWSTR __cdecl uaw_wcschr(PCUWSTR String,WCHAR Character);
36
+ PUWSTR __cdecl uaw_wcscpy(PUWSTR Destination,PCUWSTR Source);
37
+ int __cdecl uaw_wcsicmp(PCUWSTR String1,PCUWSTR String2);
38
+ size_t __cdecl uaw_wcslen(PCUWSTR String);
39
+ PUWSTR __cdecl uaw_wcsrchr(PCUWSTR String,WCHAR Character);
40
+ #ifdef CharUpper
41
+ static __inline LPUWSTR ua_CharUpperW(LPUWSTR String) {
42
+ if(WSTR_ALIGNED(String)) return CharUpperW((PWSTR)String);
43
+ return uaw_CharUpperW(String);
44
+ }
45
+ #endif
46
+
47
+ #ifdef lstrcmp
48
+ static __inline int ua_lstrcmpW(LPCUWSTR String1,LPCUWSTR String2) {
49
+ if(WSTR_ALIGNED(String1) && WSTR_ALIGNED(String2)) return lstrcmpW((LPCWSTR)String1,(LPCWSTR)String2);
50
+ return uaw_lstrcmpW(String1,String2);
51
+ }
52
+ #endif
53
+
54
+ #ifdef lstrcmpi
55
+ static __inline int ua_lstrcmpiW(LPCUWSTR String1,LPCUWSTR String2) {
56
+ if(WSTR_ALIGNED(String1) && WSTR_ALIGNED(String2)) return lstrcmpiW((LPCWSTR)String1,(LPCWSTR)String2);
57
+ return uaw_lstrcmpiW(String1,String2);
58
+ }
59
+ #endif
60
+
61
+ #ifdef lstrlen
62
+ static __inline int ua_lstrlenW(LPCUWSTR String) {
63
+ if(WSTR_ALIGNED(String)) return lstrlenW((PCWSTR)String);
64
+ return uaw_lstrlenW(String);
65
+ }
66
+ #endif
67
+
68
+ #if defined(_WSTRING_DEFINED)
69
+ #ifdef _WConst_return
70
+ typedef _WConst_return WCHAR UNALIGNED *PUWSTR_C;
71
+ #else
72
+ typedef WCHAR UNALIGNED *PUWSTR_C;
73
+ #endif
74
+ static __inline PUWSTR_C ua_wcschr(PCUWSTR String,WCHAR Character) {
75
+ if(WSTR_ALIGNED(String)) return wcschr((PCWSTR)String,Character);
76
+ return (PUWSTR_C)uaw_wcschr(String,Character);
77
+ }
78
+ static __inline PUWSTR_C ua_wcsrchr(PCUWSTR String,WCHAR Character) {
79
+ if(WSTR_ALIGNED(String)) return wcsrchr((PCWSTR)String,Character);
80
+ return (PUWSTR_C)uaw_wcsrchr(String,Character);
81
+ }
82
+ #if defined(__cplusplus) && defined(_WConst_Return)
83
+ static __inline PUWSTR ua_wcschr(PUWSTR String,WCHAR Character) {
84
+ if(WSTR_ALIGNED(String)) return wcscpy((PWSTR)Destination,(PCWSTR)Source);
85
+ return uaw_wcscpy(Destination,Source);
86
+ }
87
+ static __inline PUWSTR ua_wcsrchr(PUWSTR String,WCHAR Character) {
88
+ if(WSTR_ALIGNED(String)) return wcsrchr(String,Character);
89
+ return uaw_wcsrchr((PCUWSTR)String,Character);
90
+ }
91
+ #endif
92
+
93
+ static __inline PUWSTR ua_wcscpy(PUWSTR Destination,PCUWSTR Source) {
94
+ if(WSTR_ALIGNED(Source) && WSTR_ALIGNED(Destination)) return wcscpy((PWSTR)Destination,(PCWSTR)Source);
95
+ return uaw_wcscpy(Destination,Source);
96
+ }
97
+ static __inline size_t ua_wcslen(PCUWSTR String) {
98
+ if(WSTR_ALIGNED(String)) return wcslen((PCWSTR)String);
99
+ return uaw_wcslen(String);
100
+ }
101
+ #endif
102
+
103
+ static __inline int ua_wcsicmp(LPCUWSTR String1,LPCUWSTR String2) {
104
+ if(WSTR_ALIGNED(String1) && WSTR_ALIGNED(String2)) return _wcsicmp((LPCWSTR)String1,(LPCWSTR)String2);
105
+ return uaw_wcsicmp(String1,String2);
106
+ }
107
+ #endif
108
+
109
+ #ifndef __UA_WCSLEN
110
+ #define __UA_WCSLEN ua_wcslen
111
+ #endif
112
+
113
+ #define __UA_WSTRSIZE(s) ((__UA_WCSLEN(s)+1)*sizeof(WCHAR))
114
+ #define __UA_STACKCOPY(p,s) memcpy(_alloca(s),p,s)
115
+
116
+ #ifdef I_X86_
117
+ #define WSTR_ALIGNED_STACK_COPY(d,s) (*(d) = (PCWSTR)(s))
118
+ #else
119
+ #define WSTR_ALIGNED_STACK_COPY(d,s) { PCUWSTR __ua_src; ULONG __ua_size; PWSTR __ua_dst; __ua_src = (s); if(WSTR_ALIGNED(__ua_src)) { __ua_dst = (PWSTR)__ua_src; } else { __ua_size = __UA_WSTRSIZE(__ua_src); __ua_dst = (PWSTR)_alloca(__ua_size); memcpy(__ua_dst,__ua_src,__ua_size); } *(d) = (PCWSTR)__ua_dst; }
120
+ #endif
121
+
122
+ #define ASTR_ALIGNED_STACK_COPY(d,s) (*(d) = (PCSTR)(s))
123
+
124
+ #ifndef I_X86_
125
+ #define __UA_STRUC_ALIGNED(t,s) (((DWORD_PTR)(s) & (TYPE_ALIGNMENT(t)-1))==0)
126
+ #define STRUC_ALIGNED_STACK_COPY(t,s) __UA_STRUC_ALIGNED(t,s) ? ((t const *)(s)) : ((t const *)__UA_STACKCOPY((s),sizeof(t)))
127
+ #else
128
+ #define STRUC_ALIGNED_STACK_COPY(t,s) ((CONST t *)(s))
129
+ #endif
130
+
131
+ #ifdef UNICODE
132
+ #define TSTR_ALIGNED_STACK_COPY(d,s) WSTR_ALIGNED_STACK_COPY(d,s)
133
+ #define TSTR_ALIGNED(x) WSTR_ALIGNED(x)
134
+ #define ua_CharUpper ua_CharUpperW
135
+ #define ua_lstrcmp ua_lstrcmpW
136
+ #define ua_lstrcmpi ua_lstrcmpiW
137
+ #define ua_lstrlen ua_lstrlenW
138
+ #define ua_tcscpy ua_wcscpy
139
+ #else
140
+ #define TSTR_ALIGNED_STACK_COPY(d,s) ASTR_ALIGNED_STACK_COPY(d,s)
141
+ #define TSTR_ALIGNED(x) TRUE
142
+ #define ua_CharUpper CharUpperA
143
+ #define ua_lstrcmp lstrcmpA
144
+ #define ua_lstrcmpi lstrcmpiA
145
+ #define ua_lstrlen lstrlenA
146
+ #define ua_tcscpy strcpy
147
+ #endif
148
+
149
+ #ifdef __cplusplus
150
+ }
151
+ #endif
152
+
153
+ #include <sec_api/stralign_s.h>
154
+ #endif
@@ -0,0 +1,79 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef __TVOUT__
7
+ #define __TVOUT__
8
+
9
+ #include <guiddef.h>
10
+
11
+ typedef struct _VIDEOPARAMETERS {
12
+ GUID Guid;
13
+ ULONG dwOffset;
14
+ ULONG dwCommand;
15
+ ULONG dwFlags;
16
+ ULONG dwMode;
17
+ ULONG dwTVStandard;
18
+ ULONG dwAvailableModes;
19
+ ULONG dwAvailableTVStandard;
20
+ ULONG dwFlickerFilter;
21
+ ULONG dwOverScanX;
22
+ ULONG dwOverScanY;
23
+ ULONG dwMaxUnscaledX;
24
+ ULONG dwMaxUnscaledY;
25
+ ULONG dwPositionX;
26
+ ULONG dwPositionY;
27
+ ULONG dwBrightness;
28
+ ULONG dwContrast;
29
+ ULONG dwCPType;
30
+ ULONG dwCPCommand;
31
+ ULONG dwCPStandard;
32
+ ULONG dwCPKey;
33
+ ULONG bCP_APSTriggerBits;
34
+ UCHAR bOEMCopyProtection[256];
35
+ } VIDEOPARAMETERS,*PVIDEOPARAMETERS,*LPVIDEOPARAMETERS;
36
+
37
+ #define VP_COMMAND_GET 0x0001
38
+ #define VP_COMMAND_SET 0x0002
39
+
40
+ #define VP_FLAGS_TV_MODE 0x0001
41
+ #define VP_FLAGS_TV_STANDARD 0x0002
42
+ #define VP_FLAGS_FLICKER 0x0004
43
+ #define VP_FLAGS_OVERSCAN 0x0008
44
+ #define VP_FLAGS_MAX_UNSCALED 0x0010
45
+ #define VP_FLAGS_POSITION 0x0020
46
+ #define VP_FLAGS_BRIGHTNESS 0x0040
47
+ #define VP_FLAGS_CONTRAST 0x0080
48
+ #define VP_FLAGS_COPYPROTECT 0x0100
49
+
50
+ #define VP_MODE_WIN_GRAPHICS 0x0001
51
+ #define VP_MODE_TV_PLAYBACK 0x0002
52
+
53
+ #define VP_TV_STANDARD_NTSC_M 0x0001
54
+ #define VP_TV_STANDARD_NTSC_M_J 0x0002
55
+ #define VP_TV_STANDARD_PAL_B 0x0004
56
+ #define VP_TV_STANDARD_PAL_D 0x0008
57
+ #define VP_TV_STANDARD_PAL_H 0x0010
58
+ #define VP_TV_STANDARD_PAL_I 0x0020
59
+ #define VP_TV_STANDARD_PAL_M 0x0040
60
+ #define VP_TV_STANDARD_PAL_N 0x0080
61
+ #define VP_TV_STANDARD_SECAM_B 0x0100
62
+ #define VP_TV_STANDARD_SECAM_D 0x0200
63
+ #define VP_TV_STANDARD_SECAM_G 0x0400
64
+ #define VP_TV_STANDARD_SECAM_H 0x0800
65
+ #define VP_TV_STANDARD_SECAM_K 0x1000
66
+ #define VP_TV_STANDARD_SECAM_K1 0x2000
67
+ #define VP_TV_STANDARD_SECAM_L 0x4000
68
+ #define VP_TV_STANDARD_WIN_VGA 0x8000
69
+ #define VP_TV_STANDARD_NTSC_433 0x00010000
70
+ #define VP_TV_STANDARD_PAL_G 0x00020000
71
+ #define VP_TV_STANDARD_PAL_60 0x00040000
72
+ #define VP_TV_STANDARD_SECAM_L1 0x00080000
73
+
74
+ #define VP_CP_TYPE_APS_TRIGGER 0x0001
75
+ #define VP_CP_TYPE_MACROVISION 0x0002
76
+ #define VP_CP_CMD_ACTIVATE 0x0001
77
+ #define VP_CP_CMD_DEACTIVATE 0x0002
78
+ #define VP_CP_CMD_CHANGE 0x0004
79
+ #endif
@@ -0,0 +1,2951 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef _WINBASE_
7
+ #define _WINBASE_
8
+
9
+ #define WINADVAPI DECLSPEC_IMPORT
10
+ #define WINBASEAPI DECLSPEC_IMPORT
11
+ #define ZAWPROXYAPI DECLSPEC_IMPORT
12
+
13
+ #ifdef __cplusplus
14
+ extern "C" {
15
+ #endif
16
+
17
+ #define DefineHandleTable(w) ((w),TRUE)
18
+ #define LimitEmsPages(dw)
19
+ #define SetSwapAreaSize(w) (w)
20
+ #define LockSegment(w) GlobalFix((HANDLE)(w))
21
+ #define UnlockSegment(w) GlobalUnfix((HANDLE)(w))
22
+ #define GetCurrentTime() GetTickCount()
23
+
24
+ #define Yield()
25
+
26
+ #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
27
+ #define INVALID_FILE_SIZE ((DWORD)0xffffffff)
28
+ #define INVALID_SET_FILE_POINTER ((DWORD)-1)
29
+ #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
30
+
31
+ #define FILE_BEGIN 0
32
+ #define FILE_CURRENT 1
33
+ #define FILE_END 2
34
+
35
+ #define TIME_ZONE_ID_INVALID ((DWORD)0xffffffff)
36
+
37
+ #define WAIT_FAILED ((DWORD)0xffffffff)
38
+ #define WAIT_OBJECT_0 ((STATUS_WAIT_0) + 0)
39
+ #define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0) + 0)
40
+ #define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0) + 0)
41
+ #define WAIT_IO_COMPLETION STATUS_USER_APC
42
+ #define STILL_ACTIVE STATUS_PENDING
43
+ #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
44
+ #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
45
+ #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
46
+ #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
47
+ #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
48
+ #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
49
+ #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
50
+ #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
51
+ #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
52
+ #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
53
+ #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
54
+ #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
55
+ #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
56
+ #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
57
+ #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
58
+ #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
59
+ #define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
60
+ #define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
61
+ #define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
62
+ #define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
63
+ #define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
64
+ #define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
65
+ #define EXCEPTION_POSSIBLE_DEADLOCK STATUS_POSSIBLE_DEADLOCK
66
+ #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
67
+ #define MoveMemory RtlMoveMemory
68
+ #define CopyMemory RtlCopyMemory
69
+ #define FillMemory RtlFillMemory
70
+ #define ZeroMemory RtlZeroMemory
71
+ #define SecureZeroMemory RtlSecureZeroMemory
72
+
73
+ #define FILE_FLAG_WRITE_THROUGH 0x80000000
74
+ #define FILE_FLAG_OVERLAPPED 0x40000000
75
+ #define FILE_FLAG_NO_BUFFERING 0x20000000
76
+ #define FILE_FLAG_RANDOM_ACCESS 0x10000000
77
+ #define FILE_FLAG_SEQUENTIAL_SCAN 0x8000000
78
+ #define FILE_FLAG_DELETE_ON_CLOSE 0x4000000
79
+ #define FILE_FLAG_BACKUP_SEMANTICS 0x2000000
80
+ #define FILE_FLAG_POSIX_SEMANTICS 0x1000000
81
+ #define FILE_FLAG_OPEN_REPARSE_POINT 0x200000
82
+ #define FILE_FLAG_OPEN_NO_RECALL 0x100000
83
+ #define FILE_FLAG_FIRST_PIPE_INSTANCE 0x80000
84
+
85
+ #define CREATE_NEW 1
86
+ #define CREATE_ALWAYS 2
87
+ #define OPEN_EXISTING 3
88
+ #define OPEN_ALWAYS 4
89
+ #define TRUNCATE_EXISTING 5
90
+
91
+ #define PROGRESS_CONTINUE 0
92
+ #define PROGRESS_CANCEL 1
93
+ #define PROGRESS_STOP 2
94
+ #define PROGRESS_QUIET 3
95
+
96
+ #define CALLBACK_CHUNK_FINISHED 0x0
97
+ #define CALLBACK_STREAM_SWITCH 0x1
98
+
99
+ #define COPY_FILE_FAIL_IF_EXISTS 0x1
100
+ #define COPY_FILE_RESTARTABLE 0x2
101
+ #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x4
102
+ #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x8
103
+
104
+ #define REPLACEFILE_WRITE_THROUGH 0x1
105
+ #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x2
106
+
107
+ #define PIPE_ACCESS_INBOUND 0x1
108
+ #define PIPE_ACCESS_OUTBOUND 0x2
109
+ #define PIPE_ACCESS_DUPLEX 0x3
110
+
111
+ #define PIPE_CLIENT_END 0x0
112
+ #define PIPE_SERVER_END 0x1
113
+
114
+ #define PIPE_WAIT 0x0
115
+ #define PIPE_NOWAIT 0x1
116
+ #define PIPE_READMODE_BYTE 0x0
117
+ #define PIPE_READMODE_MESSAGE 0x2
118
+ #define PIPE_TYPE_BYTE 0x0
119
+ #define PIPE_TYPE_MESSAGE 0x4
120
+
121
+ #define PIPE_UNLIMITED_INSTANCES 255
122
+
123
+ #define SECURITY_ANONYMOUS (SecurityAnonymous << 16)
124
+ #define SECURITY_IDENTIFICATION (SecurityIdentification << 16)
125
+ #define SECURITY_IMPERSONATION (SecurityImpersonation << 16)
126
+ #define SECURITY_DELEGATION (SecurityDelegation << 16)
127
+
128
+ #define SECURITY_CONTEXT_TRACKING 0x40000
129
+ #define SECURITY_EFFECTIVE_ONLY 0x80000
130
+
131
+ #define SECURITY_SQOS_PRESENT 0x100000
132
+ #define SECURITY_VALID_SQOS_FLAGS 0x1f0000
133
+
134
+ typedef struct _OVERLAPPED {
135
+ ULONG_PTR Internal;
136
+ ULONG_PTR InternalHigh;
137
+ union {
138
+ struct {
139
+ DWORD Offset;
140
+ DWORD OffsetHigh;
141
+ };
142
+ PVOID Pointer;
143
+ };
144
+ HANDLE hEvent;
145
+ } OVERLAPPED,*LPOVERLAPPED;
146
+
147
+ typedef struct _SECURITY_ATTRIBUTES {
148
+ DWORD nLength;
149
+ LPVOID lpSecurityDescriptor;
150
+ WINBOOL bInheritHandle;
151
+ } SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
152
+
153
+ typedef struct _PROCESS_INFORMATION {
154
+ HANDLE hProcess;
155
+ HANDLE hThread;
156
+ DWORD dwProcessId;
157
+ DWORD dwThreadId;
158
+ } PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
159
+
160
+ #ifndef _FILETIME_
161
+ #define _FILETIME_
162
+ typedef struct _FILETIME {
163
+ DWORD dwLowDateTime;
164
+ DWORD dwHighDateTime;
165
+ } FILETIME,*PFILETIME,*LPFILETIME;
166
+ #endif
167
+
168
+ typedef struct _SYSTEMTIME {
169
+ WORD wYear;
170
+ WORD wMonth;
171
+ WORD wDayOfWeek;
172
+ WORD wDay;
173
+ WORD wHour;
174
+ WORD wMinute;
175
+ WORD wSecond;
176
+ WORD wMilliseconds;
177
+ } SYSTEMTIME,*PSYSTEMTIME,*LPSYSTEMTIME;
178
+
179
+ typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter);
180
+ typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
181
+ typedef VOID (WINAPI *PFIBER_START_ROUTINE)(LPVOID lpFiberParameter);
182
+ typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
183
+
184
+ typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
185
+ typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
186
+ typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
187
+ typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
188
+ typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
189
+ typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
190
+
191
+ WINBASEAPI PVOID WINAPI EncodePointer(PVOID Ptr);
192
+ WINBASEAPI PVOID WINAPI DecodePointer(PVOID Ptr);
193
+ WINBASEAPI PVOID WINAPI EncodeSystemPointer(PVOID Ptr);
194
+ WINBASEAPI PVOID WINAPI DecodeSystemPointer(PVOID Ptr);
195
+
196
+ #ifdef I_X86_
197
+ typedef PLDT_ENTRY LPLDT_ENTRY;
198
+ #else
199
+ typedef LPVOID LPLDT_ENTRY;
200
+ #endif
201
+
202
+ #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
203
+ #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
204
+
205
+ #define SP_SERIALCOMM ((DWORD)0x1)
206
+
207
+ #define PST_UNSPECIFIED ((DWORD)0x0)
208
+ #define PST_RS232 ((DWORD)0x1)
209
+ #define PST_PARALLELPORT ((DWORD)0x2)
210
+ #define PST_RS422 ((DWORD)0x3)
211
+ #define PST_RS423 ((DWORD)0x4)
212
+ #define PST_RS449 ((DWORD)0x5)
213
+ #define PST_MODEM ((DWORD)0x6)
214
+ #define PST_FAX ((DWORD)0x21)
215
+ #define PST_SCANNER ((DWORD)0x22)
216
+ #define PST_NETWORK_BRIDGE ((DWORD)0x100)
217
+ #define PST_LAT ((DWORD)0x101)
218
+ #define PST_TCPIP_TELNET ((DWORD)0x102)
219
+ #define PST_X25 ((DWORD)0x103)
220
+
221
+ #define PCF_DTRDSR ((DWORD)0x1)
222
+ #define PCF_RTSCTS ((DWORD)0x2)
223
+ #define PCF_RLSD ((DWORD)0x4)
224
+ #define PCF_PARITY_CHECK ((DWORD)0x8)
225
+ #define PCF_XONXOFF ((DWORD)0x10)
226
+ #define PCF_SETXCHAR ((DWORD)0x20)
227
+ #define PCF_TOTALTIMEOUTS ((DWORD)0x40)
228
+ #define PCF_INTTIMEOUTS ((DWORD)0x80)
229
+ #define PCF_SPECIALCHARS ((DWORD)0x100)
230
+ #define PCF_16BITMODE ((DWORD)0x200)
231
+
232
+ #define SP_PARITY ((DWORD)0x1)
233
+ #define SP_BAUD ((DWORD)0x2)
234
+ #define SP_DATABITS ((DWORD)0x4)
235
+ #define SP_STOPBITS ((DWORD)0x8)
236
+ #define SP_HANDSHAKING ((DWORD)0x10)
237
+ #define SP_PARITY_CHECK ((DWORD)0x20)
238
+ #define SP_RLSD ((DWORD)0x40)
239
+
240
+ #define BAUD_075 ((DWORD)0x1)
241
+ #define BAUD_110 ((DWORD)0x2)
242
+ #define BAUD_134_5 ((DWORD)0x4)
243
+ #define BAUD_150 ((DWORD)0x8)
244
+ #define BAUD_300 ((DWORD)0x10)
245
+ #define BAUD_600 ((DWORD)0x20)
246
+ #define BAUD_1200 ((DWORD)0x40)
247
+ #define BAUD_1800 ((DWORD)0x80)
248
+ #define BAUD_2400 ((DWORD)0x100)
249
+ #define BAUD_4800 ((DWORD)0x200)
250
+ #define BAUD_7200 ((DWORD)0x400)
251
+ #define BAUD_9600 ((DWORD)0x800)
252
+ #define BAUD_14400 ((DWORD)0x1000)
253
+ #define BAUD_19200 ((DWORD)0x2000)
254
+ #define BAUD_38400 ((DWORD)0x4000)
255
+ #define BAUD_56K ((DWORD)0x8000)
256
+ #define BAUD_128K ((DWORD)0x10000)
257
+ #define BAUD_115200 ((DWORD)0x20000)
258
+ #define BAUD_57600 ((DWORD)0x40000)
259
+ #define BAUD_USER ((DWORD)0x10000000)
260
+
261
+ #define DATABITS_5 ((WORD)0x1)
262
+ #define DATABITS_6 ((WORD)0x2)
263
+ #define DATABITS_7 ((WORD)0x4)
264
+ #define DATABITS_8 ((WORD)0x8)
265
+ #define DATABITS_16 ((WORD)0x10)
266
+ #define DATABITS_16X ((WORD)0x20)
267
+
268
+ #define STOPBITS_10 ((WORD)0x1)
269
+ #define STOPBITS_15 ((WORD)0x2)
270
+ #define STOPBITS_20 ((WORD)0x4)
271
+ #define PARITY_NONE ((WORD)0x100)
272
+ #define PARITY_ODD ((WORD)0x200)
273
+ #define PARITY_EVEN ((WORD)0x400)
274
+ #define PARITY_MARK ((WORD)0x800)
275
+ #define PARITY_SPACE ((WORD)0x1000)
276
+
277
+ typedef struct _COMMPROP {
278
+ WORD wPacketLength;
279
+ WORD wPacketVersion;
280
+ DWORD dwServiceMask;
281
+ DWORD dwReserved1;
282
+ DWORD dwMaxTxQueue;
283
+ DWORD dwMaxRxQueue;
284
+ DWORD dwMaxBaud;
285
+ DWORD dwProvSubType;
286
+ DWORD dwProvCapabilities;
287
+ DWORD dwSettableParams;
288
+ DWORD dwSettableBaud;
289
+ WORD wSettableData;
290
+ WORD wSettableStopParity;
291
+ DWORD dwCurrentTxQueue;
292
+ DWORD dwCurrentRxQueue;
293
+ DWORD dwProvSpec1;
294
+ DWORD dwProvSpec2;
295
+ WCHAR wcProvChar[1];
296
+ } COMMPROP,*LPCOMMPROP;
297
+
298
+ #define COMMPROP_INITIALIZED ((DWORD)0xE73CF52E)
299
+
300
+ typedef struct _COMSTAT {
301
+ DWORD fCtsHold : 1;
302
+ DWORD fDsrHold : 1;
303
+ DWORD fRlsdHold : 1;
304
+ DWORD fXoffHold : 1;
305
+ DWORD fXoffSent : 1;
306
+ DWORD fEof : 1;
307
+ DWORD fTxim : 1;
308
+ DWORD fReserved : 25;
309
+ DWORD cbInQue;
310
+ DWORD cbOutQue;
311
+ } COMSTAT,*LPCOMSTAT;
312
+
313
+ #define DTR_CONTROL_DISABLE 0x0
314
+ #define DTR_CONTROL_ENABLE 0x1
315
+ #define DTR_CONTROL_HANDSHAKE 0x2
316
+
317
+ #define RTS_CONTROL_DISABLE 0x0
318
+ #define RTS_CONTROL_ENABLE 0x1
319
+ #define RTS_CONTROL_HANDSHAKE 0x2
320
+ #define RTS_CONTROL_TOGGLE 0x3
321
+
322
+ typedef struct _DCB {
323
+ DWORD DCBlength;
324
+ DWORD BaudRate;
325
+ DWORD fBinary: 1;
326
+ DWORD fParity: 1;
327
+ DWORD fOutxCtsFlow:1;
328
+ DWORD fOutxDsrFlow:1;
329
+ DWORD fDtrControl:2;
330
+ DWORD fDsrSensitivity:1;
331
+ DWORD fTXContinueOnXoff: 1;
332
+ DWORD fOutX: 1;
333
+ DWORD fInX: 1;
334
+ DWORD fErrorChar: 1;
335
+ DWORD fNull: 1;
336
+ DWORD fRtsControl:2;
337
+ DWORD fAbortOnError:1;
338
+ DWORD fDummy2:17;
339
+ WORD wReserved;
340
+ WORD XonLim;
341
+ WORD XoffLim;
342
+ BYTE ByteSize;
343
+ BYTE Parity;
344
+ BYTE StopBits;
345
+ char XonChar;
346
+ char XoffChar;
347
+ char ErrorChar;
348
+ char EofChar;
349
+ char EvtChar;
350
+ WORD wReserved1;
351
+ } DCB,*LPDCB;
352
+
353
+ typedef struct _COMMTIMEOUTS {
354
+ DWORD ReadIntervalTimeout;
355
+ DWORD ReadTotalTimeoutMultiplier;
356
+ DWORD ReadTotalTimeoutConstant;
357
+ DWORD WriteTotalTimeoutMultiplier;
358
+ DWORD WriteTotalTimeoutConstant;
359
+ } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
360
+
361
+ typedef struct _COMMCONFIG {
362
+ DWORD dwSize;
363
+ WORD wVersion;
364
+ WORD wReserved;
365
+ DCB dcb;
366
+ DWORD dwProviderSubType;
367
+ DWORD dwProviderOffset;
368
+ DWORD dwProviderSize;
369
+ WCHAR wcProviderData[1];
370
+ } COMMCONFIG,*LPCOMMCONFIG;
371
+
372
+ typedef struct _SYSTEM_INFO {
373
+ union {
374
+ DWORD dwOemId;
375
+ struct {
376
+ WORD wProcessorArchitecture;
377
+ WORD wReserved;
378
+ };
379
+ };
380
+ DWORD dwPageSize;
381
+ LPVOID lpMinimumApplicationAddress;
382
+ LPVOID lpMaximumApplicationAddress;
383
+ DWORD_PTR dwActiveProcessorMask;
384
+ DWORD dwNumberOfProcessors;
385
+ DWORD dwProcessorType;
386
+ DWORD dwAllocationGranularity;
387
+ WORD wProcessorLevel;
388
+ WORD wProcessorRevision;
389
+ } SYSTEM_INFO,*LPSYSTEM_INFO;
390
+
391
+ #define FreeModule(hLibModule) FreeLibrary((hLibModule))
392
+ #define MakeProcInstance(lpProc,hInstance) (lpProc)
393
+ #define FreeProcInstance(lpProc) (lpProc)
394
+
395
+ #define GMEM_FIXED 0x0
396
+ #define GMEM_MOVEABLE 0x2
397
+ #define GMEM_NOCOMPACT 0x10
398
+ #define GMEM_NODISCARD 0x20
399
+ #define GMEM_ZEROINIT 0x40
400
+ #define GMEM_MODIFY 0x80
401
+ #define GMEM_DISCARDABLE 0x100
402
+ #define GMEM_NOT_BANKED 0x1000
403
+ #define GMEM_SHARE 0x2000
404
+ #define GMEM_DDESHARE 0x2000
405
+ #define GMEM_NOTIFY 0x4000
406
+ #define GMEM_LOWER GMEM_NOT_BANKED
407
+ #define GMEM_VALID_FLAGS 0x7F72
408
+ #define GMEM_INVALID_HANDLE 0x8000
409
+
410
+ #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
411
+ #define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
412
+
413
+ #define GlobalLRUNewest(h) ((HANDLE)(h))
414
+ #define GlobalLRUOldest(h) ((HANDLE)(h))
415
+ #define GlobalDiscard(h) GlobalReAlloc((h),0,GMEM_MOVEABLE)
416
+
417
+ #define GMEM_DISCARDED 0x4000
418
+ #define GMEM_LOCKCOUNT 0xff
419
+
420
+ typedef struct _MEMORYSTATUS {
421
+ DWORD dwLength;
422
+ DWORD dwMemoryLoad;
423
+ SIZE_T dwTotalPhys;
424
+ SIZE_T dwAvailPhys;
425
+ SIZE_T dwTotalPageFile;
426
+ SIZE_T dwAvailPageFile;
427
+ SIZE_T dwTotalVirtual;
428
+ SIZE_T dwAvailVirtual;
429
+ } MEMORYSTATUS,*LPMEMORYSTATUS;
430
+
431
+ #define LMEM_FIXED 0x0
432
+ #define LMEM_MOVEABLE 0x2
433
+ #define LMEM_NOCOMPACT 0x10
434
+ #define LMEM_NODISCARD 0x20
435
+ #define LMEM_ZEROINIT 0x40
436
+ #define LMEM_MODIFY 0x80
437
+ #define LMEM_DISCARDABLE 0xf00
438
+ #define LMEM_VALID_FLAGS 0xf72
439
+ #define LMEM_INVALID_HANDLE 0x8000
440
+
441
+ #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
442
+ #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
443
+
444
+ #define NONZEROLHND (LMEM_MOVEABLE)
445
+ #define NONZEROLPTR (LMEM_FIXED)
446
+
447
+ #define LocalDiscard(h) LocalReAlloc((h),0,LMEM_MOVEABLE)
448
+
449
+ #define LMEM_DISCARDED 0x4000
450
+ #define LMEM_LOCKCOUNT 0xff
451
+
452
+ #define DEBUG_PROCESS 0x1
453
+ #define DEBUG_ONLY_THIS_PROCESS 0x2
454
+ #define CREATE_SUSPENDED 0x4
455
+ #define DETACHED_PROCESS 0x8
456
+ #define CREATE_NEW_CONSOLE 0x10
457
+ #define NORMAL_PRIORITY_CLASS 0x20
458
+ #define IDLE_PRIORITY_CLASS 0x40
459
+ #define HIGH_PRIORITY_CLASS 0x80
460
+ #define REALTIME_PRIORITY_CLASS 0x100
461
+ #define CREATE_NEW_PROCESS_GROUP 0x200
462
+ #define CREATE_UNICODE_ENVIRONMENT 0x400
463
+ #define CREATE_SEPARATE_WOW_VDM 0x800
464
+ #define CREATE_SHARED_WOW_VDM 0x1000
465
+ #define CREATE_FORCEDOS 0x2000
466
+ #define BELOW_NORMAL_PRIORITY_CLASS 0x4000
467
+ #define ABOVE_NORMAL_PRIORITY_CLASS 0x8000
468
+ #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x10000
469
+
470
+ #define CREATE_BREAKAWAY_FROM_JOB 0x1000000
471
+ #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x2000000
472
+
473
+ #define CREATE_DEFAULT_ERROR_MODE 0x4000000
474
+ #define CREATE_NO_WINDOW 0x8000000
475
+
476
+ #define PROFILE_USER 0x10000000
477
+ #define PROFILE_KERNEL 0x20000000
478
+ #define PROFILE_SERVER 0x40000000
479
+
480
+ #define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000
481
+
482
+ #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
483
+ #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1)
484
+ #define THREAD_PRIORITY_NORMAL 0
485
+ #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
486
+ #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1)
487
+ #define THREAD_PRIORITY_ERROR_RETURN (MAXLONG)
488
+
489
+ #define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT
490
+ #define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE
491
+
492
+ #define EXCEPTION_DEBUG_EVENT 1
493
+ #define CREATE_THREAD_DEBUG_EVENT 2
494
+ #define CREATE_PROCESS_DEBUG_EVENT 3
495
+ #define EXIT_THREAD_DEBUG_EVENT 4
496
+ #define EXIT_PROCESS_DEBUG_EVENT 5
497
+ #define LOAD_DLL_DEBUG_EVENT 6
498
+ #define UNLOAD_DLL_DEBUG_EVENT 7
499
+ #define OUTPUT_DEBUG_STRING_EVENT 8
500
+ #define RIP_EVENT 9
501
+
502
+ typedef struct _EXCEPTION_DEBUG_INFO {
503
+ EXCEPTION_RECORD ExceptionRecord;
504
+ DWORD dwFirstChance;
505
+ } EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
506
+
507
+ typedef struct _CREATE_THREAD_DEBUG_INFO {
508
+ HANDLE hThread;
509
+ LPVOID lpThreadLocalBase;
510
+ LPTHREAD_START_ROUTINE lpStartAddress;
511
+ } CREATE_THREAD_DEBUG_INFO,*LPCREATE_THREAD_DEBUG_INFO;
512
+
513
+ typedef struct _CREATE_PROCESS_DEBUG_INFO {
514
+ HANDLE hFile;
515
+ HANDLE hProcess;
516
+ HANDLE hThread;
517
+ LPVOID lpBaseOfImage;
518
+ DWORD dwDebugInfoFileOffset;
519
+ DWORD nDebugInfoSize;
520
+ LPVOID lpThreadLocalBase;
521
+ LPTHREAD_START_ROUTINE lpStartAddress;
522
+ LPVOID lpImageName;
523
+ WORD fUnicode;
524
+ } CREATE_PROCESS_DEBUG_INFO,*LPCREATE_PROCESS_DEBUG_INFO;
525
+
526
+ typedef struct _EXIT_THREAD_DEBUG_INFO {
527
+ DWORD dwExitCode;
528
+ } EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
529
+
530
+ typedef struct _EXIT_PROCESS_DEBUG_INFO {
531
+ DWORD dwExitCode;
532
+ } EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
533
+
534
+ typedef struct _LOAD_DLL_DEBUG_INFO {
535
+ HANDLE hFile;
536
+ LPVOID lpBaseOfDll;
537
+ DWORD dwDebugInfoFileOffset;
538
+ DWORD nDebugInfoSize;
539
+ LPVOID lpImageName;
540
+ WORD fUnicode;
541
+ } LOAD_DLL_DEBUG_INFO,*LPLOAD_DLL_DEBUG_INFO;
542
+
543
+ typedef struct _UNLOAD_DLL_DEBUG_INFO {
544
+ LPVOID lpBaseOfDll;
545
+ } UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
546
+
547
+ typedef struct _OUTPUT_DEBUG_STRING_INFO {
548
+ LPSTR lpDebugStringData;
549
+ WORD fUnicode;
550
+ WORD nDebugStringLength;
551
+ } OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO;
552
+
553
+ typedef struct _RIP_INFO {
554
+ DWORD dwError;
555
+ DWORD dwType;
556
+ } RIP_INFO,*LPRIP_INFO;
557
+
558
+ typedef struct _DEBUG_EVENT {
559
+ DWORD dwDebugEventCode;
560
+ DWORD dwProcessId;
561
+ DWORD dwThreadId;
562
+ union {
563
+ EXCEPTION_DEBUG_INFO Exception;
564
+ CREATE_THREAD_DEBUG_INFO CreateThread;
565
+ CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
566
+ EXIT_THREAD_DEBUG_INFO ExitThread;
567
+ EXIT_PROCESS_DEBUG_INFO ExitProcess;
568
+ LOAD_DLL_DEBUG_INFO LoadDll;
569
+ UNLOAD_DLL_DEBUG_INFO UnloadDll;
570
+ OUTPUT_DEBUG_STRING_INFO DebugString;
571
+ RIP_INFO RipInfo;
572
+ } u;
573
+ } DEBUG_EVENT,*LPDEBUG_EVENT;
574
+
575
+ typedef PCONTEXT LPCONTEXT;
576
+ typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
577
+ typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
578
+
579
+ #define DRIVE_UNKNOWN 0
580
+ #define DRIVE_NO_ROOT_DIR 1
581
+ #define DRIVE_REMOVABLE 2
582
+ #define DRIVE_FIXED 3
583
+ #define DRIVE_REMOTE 4
584
+ #define DRIVE_CDROM 5
585
+ #define DRIVE_RAMDISK 6
586
+
587
+ #define GetFreeSpace(w) (0x100000L)
588
+ #define FILE_TYPE_UNKNOWN 0x0
589
+ #define FILE_TYPE_DISK 0x1
590
+ #define FILE_TYPE_CHAR 0x2
591
+ #define FILE_TYPE_PIPE 0x3
592
+ #define FILE_TYPE_REMOTE 0x8000
593
+
594
+ #define STD_INPUT_HANDLE ((DWORD)-10)
595
+ #define STD_OUTPUT_HANDLE ((DWORD)-11)
596
+ #define STD_ERROR_HANDLE ((DWORD)-12)
597
+
598
+ #define NOPARITY 0
599
+ #define ODDPARITY 1
600
+ #define EVENPARITY 2
601
+ #define MARKPARITY 3
602
+ #define SPACEPARITY 4
603
+
604
+ #define ONESTOPBIT 0
605
+ #define ONE5STOPBITS 1
606
+ #define TWOSTOPBITS 2
607
+
608
+ #define IGNORE 0
609
+ #define INFINITE 0xffffffff
610
+
611
+ #define CBR_110 110
612
+ #define CBR_300 300
613
+ #define CBR_600 600
614
+ #define CBR_1200 1200
615
+ #define CBR_2400 2400
616
+ #define CBR_4800 4800
617
+ #define CBR_9600 9600
618
+ #define CBR_14400 14400
619
+ #define CBR_19200 19200
620
+ #define CBR_38400 38400
621
+ #define CBR_56000 56000
622
+ #define CBR_57600 57600
623
+ #define CBR_115200 115200
624
+ #define CBR_128000 128000
625
+ #define CBR_256000 256000
626
+
627
+ #define CE_RXOVER 0x1
628
+ #define CE_OVERRUN 0x2
629
+ #define CE_RXPARITY 0x4
630
+ #define CE_FRAME 0x8
631
+ #define CE_BREAK 0x10
632
+ #define CE_TXFULL 0x100
633
+ #define CE_PTO 0x200
634
+ #define CE_IOE 0x400
635
+ #define CE_DNS 0x800
636
+ #define CE_OOP 0x1000
637
+ #define CE_MODE 0x8000
638
+
639
+ #define IE_BADID (-1)
640
+ #define IE_OPEN (-2)
641
+ #define IE_NOPEN (-3)
642
+ #define IE_MEMORY (-4)
643
+ #define IE_DEFAULT (-5)
644
+ #define IE_HARDWARE (-10)
645
+ #define IE_BYTESIZE (-11)
646
+ #define IE_BAUDRATE (-12)
647
+
648
+ #define EV_RXCHAR 0x1
649
+ #define EV_RXFLAG 0x2
650
+ #define EV_TXEMPTY 0x4
651
+ #define EV_CTS 0x8
652
+ #define EV_DSR 0x10
653
+ #define EV_RLSD 0x20
654
+ #define EV_BREAK 0x40
655
+ #define EV_ERR 0x80
656
+ #define EV_RING 0x100
657
+ #define EV_PERR 0x200
658
+ #define EV_RX80FULL 0x400
659
+ #define EV_EVENT1 0x800
660
+ #define EV_EVENT2 0x1000
661
+
662
+ #define SETXOFF 1
663
+ #define SETXON 2
664
+ #define SETRTS 3
665
+ #define CLRRTS 4
666
+ #define SETDTR 5
667
+ #define CLRDTR 6
668
+ #define RESETDEV 7
669
+ #define SETBREAK 8
670
+ #define CLRBREAK 9
671
+
672
+ #define PURGE_TXABORT 0x1
673
+ #define PURGE_RXABORT 0x2
674
+ #define PURGE_TXCLEAR 0x4
675
+ #define PURGE_RXCLEAR 0x8
676
+
677
+ #define LPTx 0x80
678
+
679
+ #define MS_CTS_ON ((DWORD)0x10)
680
+ #define MS_DSR_ON ((DWORD)0x20)
681
+ #define MS_RING_ON ((DWORD)0x40)
682
+ #define MS_RLSD_ON ((DWORD)0x80)
683
+
684
+ #define S_QUEUEEMPTY 0
685
+ #define S_THRESHOLD 1
686
+ #define S_ALLTHRESHOLD 2
687
+
688
+ #define S_NORMAL 0
689
+ #define S_LEGATO 1
690
+ #define S_STACCATO 2
691
+
692
+ #define S_PERIOD512 0
693
+ #define S_PERIOD1024 1
694
+ #define S_PERIOD2048 2
695
+ #define S_PERIODVOICE 3
696
+ #define S_WHITE512 4
697
+ #define S_WHITE1024 5
698
+ #define S_WHITE2048 6
699
+ #define S_WHITEVOICE 7
700
+
701
+ #define S_SERDVNA (-1)
702
+ #define S_SEROFM (-2)
703
+ #define S_SERMACT (-3)
704
+ #define S_SERQFUL (-4)
705
+ #define S_SERBDNT (-5)
706
+ #define S_SERDLN (-6)
707
+ #define S_SERDCC (-7)
708
+ #define S_SERDTP (-8)
709
+ #define S_SERDVL (-9)
710
+ #define S_SERDMD (-10)
711
+ #define S_SERDSH (-11)
712
+ #define S_SERDPT (-12)
713
+ #define S_SERDFQ (-13)
714
+ #define S_SERDDR (-14)
715
+ #define S_SERDSR (-15)
716
+ #define S_SERDST (-16)
717
+
718
+ #define NMPWAIT_WAIT_FOREVER 0xffffffff
719
+ #define NMPWAIT_NOWAIT 0x1
720
+ #define NMPWAIT_USE_DEFAULT_WAIT 0x0
721
+
722
+ #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
723
+ #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
724
+ #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
725
+ #define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS
726
+ #define FS_VOL_IS_COMPRESSED FILE_VOLUME_IS_COMPRESSED
727
+ #define FS_FILE_COMPRESSION FILE_FILE_COMPRESSION
728
+ #define FS_FILE_ENCRYPTION FILE_SUPPORTS_ENCRYPTION
729
+
730
+ #define FILE_MAP_COPY SECTION_QUERY
731
+ #define FILE_MAP_WRITE SECTION_MAP_WRITE
732
+ #define FILE_MAP_READ SECTION_MAP_READ
733
+ #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
734
+ #define FILE_MAP_EXECUTE SECTION_MAP_EXECUTE_EXPLICIT
735
+
736
+ #define OF_READ 0x0
737
+ #define OF_WRITE 0x1
738
+ #define OF_READWRITE 0x2
739
+ #define OF_SHARE_COMPAT 0x0
740
+ #define OF_SHARE_EXCLUSIVE 0x10
741
+ #define OF_SHARE_DENY_WRITE 0x20
742
+ #define OF_SHARE_DENY_READ 0x30
743
+ #define OF_SHARE_DENY_NONE 0x40
744
+ #define OF_PARSE 0x100
745
+ #define OF_DELETE 0x200
746
+ #define OF_VERIFY 0x400
747
+ #define OF_CANCEL 0x800
748
+ #define OF_CREATE 0x1000
749
+ #define OF_PROMPT 0x2000
750
+ #define OF_EXIST 0x4000
751
+ #define OF_REOPEN 0x8000
752
+
753
+ #define OFS_MAXPATHNAME 128
754
+ typedef struct _OFSTRUCT {
755
+ BYTE cBytes;
756
+ BYTE fFixedDisk;
757
+ WORD nErrCode;
758
+ WORD Reserved1;
759
+ WORD Reserved2;
760
+ CHAR szPathName[OFS_MAXPATHNAME];
761
+ } OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
762
+
763
+ #ifndef NOWINBASEINTERLOCK
764
+
765
+ #ifndef _NTOS_
766
+
767
+ #if defined(__ia64__) && !defined(RC_INVOKED)
768
+
769
+ #define InterlockedIncrement _InterlockedIncrement
770
+ #define InterlockedIncrementAcquire _InterlockedIncrement_acq
771
+ #define InterlockedIncrementRelease _InterlockedIncrement_rel
772
+ #define InterlockedDecrement _InterlockedDecrement
773
+ #define InterlockedDecrementAcquire _InterlockedDecrement_acq
774
+ #define InterlockedDecrementRelease _InterlockedDecrement_rel
775
+ #define InterlockedExchange _InterlockedExchange
776
+ #define InterlockedExchangeAdd _InterlockedExchangeAdd
777
+ #define InterlockedCompareExchange _InterlockedCompareExchange
778
+ #define InterlockedCompareExchangeAcquire _InterlockedCompareExchange_acq
779
+ #define InterlockedCompareExchangeRelease _InterlockedCompareExchange_rel
780
+ #define InterlockedExchangePointer _InterlockedExchangePointer
781
+ #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
782
+ #define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer_rel
783
+ #define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer_acq
784
+
785
+ #define InterlockedIncrement64 _InterlockedIncrement64
786
+ #define InterlockedDecrement64 _InterlockedDecrement64
787
+ #define InterlockedExchange64 _InterlockedExchange64
788
+ #define InterlockedExchangeAcquire64 _InterlockedExchange64_acq
789
+ #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
790
+ #define InterlockedCompareExchange64 _InterlockedCompareExchange64
791
+ #define InterlockedCompareExchangeAcquire64 _InterlockedCompareExchange64_acq
792
+ #define InterlockedCompareExchangeRelease64 _InterlockedCompareExchange64_rel
793
+
794
+ LONGLONG __cdecl InterlockedIncrement64(LONGLONG volatile *Addend);
795
+ LONGLONG __cdecl InterlockedDecrement64(LONGLONG volatile *Addend);
796
+ LONG __cdecl InterlockedIncrementAcquire(LONG volatile *Addend);
797
+ LONG __cdecl InterlockedDecrementAcquire(LONG volatile *Addend);
798
+ LONG __cdecl InterlockedIncrementRelease(LONG volatile *Addend);
799
+ LONG __cdecl InterlockedDecrementRelease(LONG volatile *Addend);
800
+ LONGLONG __cdecl InterlockedExchange64 (LONGLONG volatile *Target,LONGLONG Value);
801
+ LONGLONG __cdecl InterlockedExchangeAcquire64 (LONGLONG volatile *Target,LONGLONG Value);
802
+ LONGLONG __cdecl InterlockedExchangeAdd64 (LONGLONG volatile *Addend,LONGLONG Value);
803
+ LONGLONG __cdecl InterlockedCompareExchange64 (LONGLONG volatile *Destination,LONGLONG ExChange,LONGLONG Comperand);
804
+ LONGLONG __cdecl InterlockedCompareExchangeAcquire64 (LONGLONG volatile *Destination,LONGLONG ExChange,LONGLONG Comperand);
805
+ LONGLONG __cdecl InterlockedCompareExchangeRelease64 (LONGLONG volatile *Destination,LONGLONG ExChange,LONGLONG Comperand);
806
+ LONG __cdecl InterlockedIncrement(LONG volatile *lpAddend);
807
+ LONG __cdecl InterlockedDecrement(LONG volatile *lpAddend);
808
+ LONG __cdecl InterlockedExchange(LONG volatile *Target,LONG Value);
809
+ LONG __cdecl InterlockedExchangeAdd(LONG volatile *Addend,LONG Value);
810
+ LONG __cdecl InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
811
+ LONG __cdecl InterlockedCompareExchangeRelease(LONG volatile *Destination,LONG ExChange,LONG Comperand);
812
+ LONG __cdecl InterlockedCompareExchangeAcquire(LONG volatile *Destination,LONG ExChange,LONG Comperand);
813
+ PVOID __cdecl InterlockedExchangePointer(PVOID volatile *Target,PVOID Value);
814
+ PVOID __cdecl InterlockedCompareExchangePointer(PVOID volatile *Destination,PVOID ExChange,PVOID Comperand);
815
+ PVOID __cdecl InterlockedCompareExchangePointerAcquire(PVOID volatile *Destination,PVOID Exchange,PVOID Comperand);
816
+ PVOID __cdecl InterlockedCompareExchangePointerRelease(PVOID volatile *Destination,PVOID Exchange,PVOID Comperand);
817
+
818
+ #ifndef InterlockedAnd
819
+ #define InterlockedAnd InterlockedAnd_Inline
820
+ __CRT_INLINE LONG InterlockedAnd_Inline(LONG volatile *Target,LONG Set) {
821
+ LONG i;
822
+ LONG j;
823
+ j = *Target;
824
+ do {
825
+ i = j;
826
+ j = InterlockedCompareExchange(Target,i & Set,i);
827
+ } while(i!=j);
828
+ return j;
829
+ }
830
+ #endif
831
+
832
+ #ifndef InterlockedOr
833
+ #define InterlockedOr InterlockedOr_Inline
834
+
835
+ __CRT_INLINE LONG InterlockedOr_Inline(LONG volatile *Target,LONG Set) {
836
+ LONG i;
837
+ LONG j;
838
+ j = *Target;
839
+ do {
840
+ i = j;
841
+ j = InterlockedCompareExchange(Target,i | Set,i);
842
+ } while(i!=j);
843
+ return j;
844
+ }
845
+ #endif
846
+
847
+ #ifndef InterlockedXor
848
+ #define InterlockedXor InterlockedXor_Inline
849
+
850
+ __CRT_INLINE LONG InterlockedXor_Inline(LONG volatile *Target,LONG Set) {
851
+ LONG i;
852
+ LONG j;
853
+ j = *Target;
854
+ do {
855
+ i = j;
856
+ j = InterlockedCompareExchange(Target,i ^ Set,i);
857
+ } while(i!=j);
858
+ return j;
859
+ }
860
+ #endif
861
+
862
+ #ifndef !defined (InterlockedAnd64)
863
+ #define InterlockedAnd64 InterlockedAnd64_Inline
864
+
865
+ __CRT_INLINE LONGLONG InterlockedAnd64_Inline (LONGLONG volatile *Destination,LONGLONG Value) {
866
+ LONGLONG Old;
867
+ do {
868
+ Old = *Destination;
869
+ } while(InterlockedCompareExchange64(Destination,Old & Value,Old)!=Old);
870
+ return Old;
871
+ }
872
+ #endif
873
+
874
+ #ifndef InterlockedOr64
875
+ #define InterlockedOr64 InterlockedOr64_Inline
876
+
877
+ __CRT_INLINE LONGLONG InterlockedOr64_Inline (LONGLONG volatile *Destination,LONGLONG Value) {
878
+ LONGLONG Old;
879
+ do {
880
+ Old = *Destination;
881
+ } while(InterlockedCompareExchange64(Destination,Old | Value,Old)!=Old);
882
+ return Old;
883
+ }
884
+ #endif
885
+
886
+ #ifndef InterlockedXor64
887
+ #define InterlockedXor64 InterlockedXor64_Inline
888
+
889
+ __CRT_INLINE LONGLONG InterlockedXor64_Inline (LONGLONG volatile *Destination,LONGLONG Value) {
890
+ LONGLONG Old;
891
+ do {
892
+ Old = *Destination;
893
+ } while(InterlockedCompareExchange64(Destination,Old ^ Value,Old)!=Old);
894
+ return Old;
895
+ }
896
+ #endif
897
+
898
+ #ifndef InterlockedBitTestAndSet
899
+ #define InterlockedBitTestAndSet InterlockedBitTestAndSet_Inline
900
+
901
+ __CRT_INLINE BOOLEAN InterlockedBitTestAndSet_Inline(LONG *Base,LONG Bit) {
902
+ LONG tBit;
903
+ tBit = 1<<(Bit & (sizeof (*Base)*8-1));
904
+ return (BOOLEAN)((InterlockedOr(&Base[Bit/(sizeof(*Base)*8)],tBit)&tBit)!=0);
905
+ }
906
+ #endif
907
+
908
+ #ifndef InterlockedBitTestAndReset
909
+ #define InterlockedBitTestAndReset InterlockedBitTestAndReset_Inline
910
+
911
+ __CRT_INLINE BOOLEAN InterlockedBitTestAndReset_Inline(LONG *Base,LONG Bit) {
912
+ LONG tBit;
913
+ tBit = 1<<(Bit & (sizeof (*Base)*8-1));
914
+ return (BOOLEAN)((InterlockedAnd(&Base[Bit/(sizeof(*Base)*8)],~tBit)&tBit)!=0);
915
+ }
916
+ #endif
917
+
918
+ #ifndef InterlockedBitTestAndComplement
919
+ #define InterlockedBitTestAndComplement InterlockedBitTestAndComplement_Inline
920
+
921
+ __CRT_INLINE BOOLEAN InterlockedBitTestAndComplement_Inline(LONG *Base,LONG Bit) {
922
+ LONG tBit;
923
+ tBit = 1<<(Bit & (sizeof (*Base)*8-1));
924
+ return (BOOLEAN)((InterlockedXor(&Base[Bit/(sizeof(*Base)*8)],tBit)&tBit)!=0);
925
+ }
926
+ #endif
927
+ #elif defined(__x86_64) && !defined(RC_INVOKED)
928
+
929
+ #define InterlockedIncrement _InterlockedIncrement
930
+ #define InterlockedIncrementAcquire InterlockedIncrement
931
+ #define InterlockedIncrementRelease InterlockedIncrement
932
+ #define InterlockedDecrement _InterlockedDecrement
933
+ #define InterlockedDecrementAcquire InterlockedDecrement
934
+ #define InterlockedDecrementRelease InterlockedDecrement
935
+ #define InterlockedExchange _InterlockedExchange
936
+ #define InterlockedExchangeAdd _InterlockedExchangeAdd
937
+ #define InterlockedCompareExchange _InterlockedCompareExchange
938
+ #define InterlockedCompareExchangeAcquire InterlockedCompareExchange
939
+ #define InterlockedCompareExchangeRelease InterlockedCompareExchange
940
+ #define InterlockedExchangePointer _InterlockedExchangePointer
941
+ #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
942
+ #define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer
943
+ #define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer
944
+ #define InterlockedAnd64 _InterlockedAnd64
945
+ #define InterlockedOr64 _InterlockedOr64
946
+ #define InterlockedXor64 _InterlockedXor64
947
+ #define InterlockedIncrement64 _InterlockedIncrement64
948
+ #define InterlockedDecrement64 _InterlockedDecrement64
949
+ #define InterlockedExchange64 _InterlockedExchange64
950
+ #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
951
+ #define InterlockedCompareExchange64 _InterlockedCompareExchange64
952
+ #define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64
953
+ #define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64
954
+
955
+ LONG InterlockedIncrement(LONG volatile *Addend);
956
+ LONG InterlockedDecrement(LONG volatile *Addend);
957
+ LONG InterlockedExchange(LONG volatile *Target,LONG Value);
958
+ LONG InterlockedExchangeAdd(LONG volatile *Addend,LONG Value);
959
+ LONG InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
960
+ PVOID InterlockedCompareExchangePointer(PVOID volatile *Destination,PVOID Exchange,PVOID Comperand);
961
+ PVOID InterlockedExchangePointer(PVOID volatile *Target,PVOID Value);
962
+ LONG64 InterlockedAnd64(LONG64 volatile *Destination,LONG64 Value);
963
+ LONG64 InterlockedOr64(LONG64 volatile *Destination,LONG64 Value);
964
+ LONG64 InterlockedXor64(LONG64 volatile *Destination,LONG64 Value);
965
+ LONG64 InterlockedIncrement64(LONG64 volatile *Addend);
966
+ LONG64 InterlockedDecrement64(LONG64 volatile *Addend);
967
+ LONG64 InterlockedExchange64(LONG64 volatile *Target,LONG64 Value);
968
+ LONG64 InterlockedExchangeAdd64(LONG64 volatile *Addend,LONG64 Value);
969
+ LONG64 InterlockedCompareExchange64(LONG64 volatile *Destination,LONG64 ExChange,LONG64 Comperand);
970
+ #else
971
+ LONG InterlockedIncrement(LONG volatile *lpAddend);
972
+ LONG InterlockedDecrement(LONG volatile *lpAddend);
973
+ LONG InterlockedExchange(LONG volatile *Target,LONG Value);
974
+
975
+ #define InterlockedExchangePointer(Target,Value) (PVOID)InterlockedExchange((PLONG)(Target),(LONG)(Value))
976
+
977
+ LONG InterlockedExchangeAdd(LONG volatile *Addend,LONG Value);
978
+ LONG InterlockedCompareExchange(LONG volatile *Destination,LONG Exchange,LONG Comperand);
979
+ LONGLONG InterlockedCompareExchange64(LONGLONG volatile *Destination,LONGLONG Exchange,LONGLONG Comperand);
980
+
981
+ __CRT_INLINE LONGLONG InterlockedAnd64 (LONGLONG volatile *Destination,LONGLONG Value) {
982
+ LONGLONG Old;
983
+ do {
984
+ Old = *Destination;
985
+ } while(InterlockedCompareExchange64(Destination,Old & Value,Old)!=Old);
986
+ return Old;
987
+ }
988
+
989
+ __CRT_INLINE LONGLONG InterlockedOr64 (LONGLONG volatile *Destination,LONGLONG Value) {
990
+ LONGLONG Old;
991
+ do {
992
+ Old = *Destination;
993
+ } while(InterlockedCompareExchange64(Destination,Old | Value,Old)!=Old);
994
+ return Old;
995
+ }
996
+
997
+ __CRT_INLINE LONGLONG InterlockedXor64 (LONGLONG volatile *Destination,LONGLONG Value) {
998
+ LONGLONG Old;
999
+ do {
1000
+ Old = *Destination;
1001
+ } while(InterlockedCompareExchange64(Destination,Old ^ Value,Old)!=Old);
1002
+
1003
+ return Old;
1004
+ }
1005
+
1006
+ __CRT_INLINE LONGLONG InterlockedIncrement64(LONGLONG volatile *Addend) {
1007
+ LONGLONG Old;
1008
+ do {
1009
+ Old = *Addend;
1010
+ } while(InterlockedCompareExchange64(Addend,Old + 1,Old)!=Old);
1011
+ return Old + 1;
1012
+ }
1013
+
1014
+ __CRT_INLINE LONGLONG InterlockedDecrement64(LONGLONG volatile *Addend) {
1015
+ LONGLONG Old;
1016
+ do {
1017
+ Old = *Addend;
1018
+ } while(InterlockedCompareExchange64(Addend,Old - 1,Old)!=Old);
1019
+ return Old - 1;
1020
+ }
1021
+
1022
+ __CRT_INLINE LONGLONG InterlockedExchange64(LONGLONG volatile *Target,LONGLONG Value) {
1023
+ LONGLONG Old;
1024
+ do {
1025
+ Old = *Target;
1026
+ } while(InterlockedCompareExchange64(Target,Value,Old)!=Old);
1027
+ return Old;
1028
+ }
1029
+
1030
+ __CRT_INLINE LONGLONG InterlockedExchangeAdd64(LONGLONG volatile *Addend,LONGLONG Value) {
1031
+ LONGLONG Old;
1032
+ do {
1033
+ Old = *Addend;
1034
+ } while(InterlockedCompareExchange64(Addend,Old + Value,Old)!=Old);
1035
+ return Old;
1036
+ }
1037
+
1038
+ #ifdef __cplusplus
1039
+ __CRT_INLINE PVOID __cdecl __InlineInterlockedCompareExchangePointer(PVOID volatile *Destination,PVOID ExChange,PVOID Comperand) {
1040
+ return((PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)Destination,(LONG)(LONG_PTR)ExChange,(LONG)(LONG_PTR)Comperand));
1041
+ }
1042
+ #define InterlockedCompareExchangePointer __InlineInterlockedCompareExchangePointer
1043
+ #else
1044
+ #define InterlockedCompareExchangePointer(Destination,ExChange,Comperand)(PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)(Destination),(LONG)(LONG_PTR)(ExChange),(LONG)(LONG_PTR)(Comperand))
1045
+ #endif
1046
+
1047
+ #define InterlockedIncrementAcquire InterlockedIncrement
1048
+ #define InterlockedIncrementRelease InterlockedIncrement
1049
+ #define InterlockedDecrementAcquire InterlockedDecrement
1050
+ #define InterlockedDecrementRelease InterlockedDecrement
1051
+ #define InterlockedIncrementAcquire InterlockedIncrement
1052
+ #define InterlockedIncrementRelease InterlockedIncrement
1053
+ #define InterlockedCompareExchangeAcquire InterlockedCompareExchange
1054
+ #define InterlockedCompareExchangeRelease InterlockedCompareExchange
1055
+ #define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64
1056
+ #define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64
1057
+ #define InterlockedCompareExchangePointerAcquire InterlockedCompareExchangePointer
1058
+ #define InterlockedCompareExchangePointerRelease InterlockedCompareExchangePointer
1059
+ #endif
1060
+
1061
+ #if defined(_SLIST_HEADER_) && !defined(_NTOSP_)
1062
+ WINBASEAPI VOID WINAPI InitializeSListHead(PSLIST_HEADER ListHead);
1063
+ WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER ListHead);
1064
+ WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER ListHead,PSLIST_ENTRY ListEntry);
1065
+ WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER ListHead);
1066
+ WINBASEAPI USHORT WINAPI QueryDepthSList(PSLIST_HEADER ListHead);
1067
+ #endif
1068
+ #endif
1069
+ #endif
1070
+
1071
+ WINBASEAPI WINBOOL WINAPI FreeResource(HGLOBAL hResData);
1072
+ WINBASEAPI LPVOID WINAPI LockResource(HGLOBAL hResData);
1073
+
1074
+ #define UnlockResource(hResData) ((hResData),0)
1075
+ #define MAXINTATOM 0xC000
1076
+ #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
1077
+ #define INVALID_ATOM ((ATOM)0)
1078
+
1079
+ int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd);
1080
+ WINBASEAPI WINBOOL WINAPI FreeLibrary(HMODULE hLibModule);
1081
+ WINBASEAPI DECLSPEC_NORETURN VOID WINAPI FreeLibraryAndExitThread(HMODULE hLibModule,DWORD dwExitCode);
1082
+ WINBASEAPI WINBOOL WINAPI DisableThreadLibraryCalls(HMODULE hLibModule);
1083
+ WINBASEAPI FARPROC WINAPI GetProcAddress(HMODULE hModule,LPCSTR lpProcName);
1084
+ WINBASEAPI DWORD WINAPI GetVersion(VOID);
1085
+ WINBASEAPI HGLOBAL WINAPI GlobalAlloc(UINT uFlags,SIZE_T dwBytes);
1086
+ WINBASEAPI HGLOBAL WINAPI GlobalReAlloc(HGLOBAL hMem,SIZE_T dwBytes,UINT uFlags);
1087
+ WINBASEAPI SIZE_T WINAPI GlobalSize(HGLOBAL hMem);
1088
+ WINBASEAPI UINT WINAPI GlobalFlags(HGLOBAL hMem);
1089
+ WINBASEAPI LPVOID WINAPI GlobalLock(HGLOBAL hMem);
1090
+ WINBASEAPI HGLOBAL WINAPI GlobalHandle(LPCVOID pMem);
1091
+ WINBASEAPI WINBOOL WINAPI GlobalUnlock(HGLOBAL hMem);
1092
+ WINBASEAPI HGLOBAL WINAPI GlobalFree(HGLOBAL hMem);
1093
+ WINBASEAPI SIZE_T WINAPI GlobalCompact(DWORD dwMinFree);
1094
+ WINBASEAPI VOID WINAPI GlobalFix(HGLOBAL hMem);
1095
+ WINBASEAPI VOID WINAPI GlobalUnfix(HGLOBAL hMem);
1096
+ WINBASEAPI LPVOID WINAPI GlobalWire(HGLOBAL hMem);
1097
+ WINBASEAPI WINBOOL WINAPI GlobalUnWire(HGLOBAL hMem);
1098
+ WINBASEAPI VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer);
1099
+
1100
+ typedef struct _MEMORYSTATUSEX {
1101
+ DWORD dwLength;
1102
+ DWORD dwMemoryLoad;
1103
+ DWORDLONG ullTotalPhys;
1104
+ DWORDLONG ullAvailPhys;
1105
+ DWORDLONG ullTotalPageFile;
1106
+ DWORDLONG ullAvailPageFile;
1107
+ DWORDLONG ullTotalVirtual;
1108
+ DWORDLONG ullAvailVirtual;
1109
+ DWORDLONG ullAvailExtendedVirtual;
1110
+ } MEMORYSTATUSEX,*LPMEMORYSTATUSEX;
1111
+
1112
+ WINBASEAPI WINBOOL WINAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer);
1113
+ WINBASEAPI HLOCAL WINAPI LocalAlloc(UINT uFlags,SIZE_T uBytes);
1114
+ WINBASEAPI HLOCAL WINAPI LocalReAlloc(HLOCAL hMem,SIZE_T uBytes,UINT uFlags);
1115
+ WINBASEAPI LPVOID WINAPI LocalLock(HLOCAL hMem);
1116
+ WINBASEAPI HLOCAL WINAPI LocalHandle(LPCVOID pMem);
1117
+ WINBASEAPI WINBOOL WINAPI LocalUnlock(HLOCAL hMem);
1118
+ WINBASEAPI SIZE_T WINAPI LocalSize(HLOCAL hMem);
1119
+ WINBASEAPI UINT WINAPI LocalFlags(HLOCAL hMem);
1120
+ WINBASEAPI HLOCAL WINAPI LocalFree(HLOCAL hMem);
1121
+ WINBASEAPI SIZE_T WINAPI LocalShrink(HLOCAL hMem,UINT cbNewSize);
1122
+ WINBASEAPI SIZE_T WINAPI LocalCompact(UINT uMinFree);
1123
+ WINBASEAPI WINBOOL WINAPI FlushInstructionCache(HANDLE hProcess,LPCVOID lpBaseAddress,SIZE_T dwSize);
1124
+ WINBASEAPI LPVOID WINAPI VirtualAlloc(LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect);
1125
+ WINBASEAPI WINBOOL WINAPI VirtualFree(LPVOID lpAddress,SIZE_T dwSize,DWORD dwFreeType);
1126
+ WINBASEAPI WINBOOL WINAPI VirtualProtect(LPVOID lpAddress,SIZE_T dwSize,DWORD flNewProtect,PDWORD lpflOldProtect);
1127
+ WINBASEAPI SIZE_T WINAPI VirtualQuery(LPCVOID lpAddress,PMEMORY_BASIC_INFORMATION lpBuffer,SIZE_T dwLength);
1128
+ WINBASEAPI LPVOID WINAPI VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect);
1129
+ WINBASEAPI UINT WINAPI GetWriteWatch(DWORD dwFlags,PVOID lpBaseAddress,SIZE_T dwRegionSize,PVOID *lpAddresses,ULONG_PTR *lpdwCount,PULONG lpdwGranularity);
1130
+ WINBASEAPI UINT WINAPI ResetWriteWatch(LPVOID lpBaseAddress,SIZE_T dwRegionSize);
1131
+ WINBASEAPI SIZE_T WINAPI GetLargePageMinimum(VOID);
1132
+ WINBASEAPI UINT WINAPI EnumSystemFirmwareTables(DWORD FirmwareTableProviderSignature,PVOID pFirmwareTableEnumBuffer,DWORD BufferSize);
1133
+ WINBASEAPI UINT WINAPI GetSystemFirmwareTable(DWORD FirmwareTableProviderSignature,DWORD FirmwareTableID,PVOID pFirmwareTableBuffer,DWORD BufferSize);
1134
+ WINBASEAPI WINBOOL WINAPI VirtualFreeEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD dwFreeType);
1135
+ WINBASEAPI WINBOOL WINAPI VirtualProtectEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flNewProtect,PDWORD lpflOldProtect);
1136
+ WINBASEAPI SIZE_T WINAPI VirtualQueryEx(HANDLE hProcess,LPCVOID lpAddress,PMEMORY_BASIC_INFORMATION lpBuffer,SIZE_T dwLength);
1137
+ WINBASEAPI HANDLE WINAPI HeapCreate(DWORD flOptions,SIZE_T dwInitialSize,SIZE_T dwMaximumSize);
1138
+ WINBASEAPI WINBOOL WINAPI HeapDestroy(HANDLE hHeap);
1139
+ WINBASEAPI LPVOID WINAPI HeapAlloc(HANDLE hHeap,DWORD dwFlags,SIZE_T dwBytes);
1140
+ WINBASEAPI LPVOID WINAPI HeapReAlloc(HANDLE hHeap,DWORD dwFlags,LPVOID lpMem,SIZE_T dwBytes);
1141
+ WINBASEAPI WINBOOL WINAPI HeapFree(HANDLE hHeap,DWORD dwFlags,LPVOID lpMem);
1142
+ WINBASEAPI SIZE_T WINAPI HeapSize(HANDLE hHeap,DWORD dwFlags,LPCVOID lpMem);
1143
+ WINBASEAPI WINBOOL WINAPI HeapValidate(HANDLE hHeap,DWORD dwFlags,LPCVOID lpMem);
1144
+ WINBASEAPI SIZE_T WINAPI HeapCompact(HANDLE hHeap,DWORD dwFlags);
1145
+ WINBASEAPI HANDLE WINAPI GetProcessHeap(VOID);
1146
+ WINBASEAPI DWORD WINAPI GetProcessHeaps(DWORD NumberOfHeaps,PHANDLE ProcessHeaps);
1147
+
1148
+ typedef struct _PROCESS_HEAP_ENTRY {
1149
+ PVOID lpData;
1150
+ DWORD cbData;
1151
+ BYTE cbOverhead;
1152
+ BYTE iRegionIndex;
1153
+ WORD wFlags;
1154
+ union {
1155
+ struct {
1156
+ HANDLE hMem;
1157
+ DWORD dwReserved[3];
1158
+ } Block;
1159
+ struct {
1160
+ DWORD dwCommittedSize;
1161
+ DWORD dwUnCommittedSize;
1162
+ LPVOID lpFirstBlock;
1163
+ LPVOID lpLastBlock;
1164
+ } Region;
1165
+ };
1166
+ } PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY,*PPROCESS_HEAP_ENTRY;
1167
+
1168
+ #define PROCESS_HEAP_REGION 0x1
1169
+ #define PROCESS_HEAP_UNCOMMITTED_RANGE 0x2
1170
+ #define PROCESS_HEAP_ENTRY_BUSY 0x4
1171
+ #define PROCESS_HEAP_ENTRY_MOVEABLE 0x10
1172
+ #define PROCESS_HEAP_ENTRY_DDESHARE 0x20
1173
+
1174
+ WINBASEAPI WINBOOL WINAPI HeapLock(HANDLE hHeap);
1175
+ WINBASEAPI WINBOOL WINAPI HeapUnlock(HANDLE hHeap);
1176
+ WINBASEAPI WINBOOL WINAPI HeapWalk(HANDLE hHeap,LPPROCESS_HEAP_ENTRY lpEntry);
1177
+ WINBASEAPI WINBOOL WINAPI HeapSetInformation(HANDLE HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength);
1178
+ WINBASEAPI WINBOOL WINAPI HeapQueryInformation(HANDLE HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength);
1179
+
1180
+ #define SCS_32BIT_BINARY 0
1181
+ #define SCS_DOS_BINARY 1
1182
+ #define SCS_WOW_BINARY 2
1183
+ #define SCS_PIF_BINARY 3
1184
+ #define SCS_POSIX_BINARY 4
1185
+ #define SCS_OS216_BINARY 5
1186
+ #define SCS_64BIT_BINARY 6
1187
+
1188
+ #ifdef UNICODE
1189
+ #define GetBinaryType GetBinaryTypeW
1190
+ #define GetShortPathName GetShortPathNameW
1191
+ #define GetLongPathName GetLongPathNameW
1192
+ #define GetEnvironmentStrings GetEnvironmentStringsW
1193
+ #define SetEnvironmentStrings SetEnvironmentStringsW
1194
+ #define FreeEnvironmentStrings FreeEnvironmentStringsW
1195
+ #else
1196
+ #define GetBinaryType GetBinaryTypeA
1197
+ #define GetShortPathName GetShortPathNameA
1198
+ #define GetLongPathName GetLongPathNameA
1199
+ #define GetEnvironmentStringsA GetEnvironmentStrings
1200
+ #define SetEnvironmentStrings SetEnvironmentStringsA
1201
+ #define FreeEnvironmentStrings FreeEnvironmentStringsA
1202
+ #endif
1203
+
1204
+ #ifdef _WIN64
1205
+ #define SCS_THIS_PLATFORM_BINARY SCS_64BIT_BINARY
1206
+ #else
1207
+ #define SCS_THIS_PLATFORM_BINARY SCS_32BIT_BINARY
1208
+ #endif
1209
+
1210
+ WINBASEAPI WINBOOL WINAPI GetBinaryTypeA(LPCSTR lpApplicationName,LPDWORD lpBinaryType);
1211
+ WINBASEAPI WINBOOL WINAPI GetBinaryTypeW(LPCWSTR lpApplicationName,LPDWORD lpBinaryType);
1212
+ WINBASEAPI DWORD WINAPI GetShortPathNameA(LPCSTR lpszLongPath,LPSTR lpszShortPath,DWORD cchBuffer);
1213
+ WINBASEAPI DWORD WINAPI GetShortPathNameW(LPCWSTR lpszLongPath,LPWSTR lpszShortPath,DWORD cchBuffer);
1214
+ WINBASEAPI DWORD WINAPI GetLongPathNameA(LPCSTR lpszShortPath,LPSTR lpszLongPath,DWORD cchBuffer);
1215
+ WINBASEAPI DWORD WINAPI GetLongPathNameW(LPCWSTR lpszShortPath,LPWSTR lpszLongPath,DWORD cchBuffer);
1216
+ WINBASEAPI WINBOOL WINAPI GetProcessAffinityMask(HANDLE hProcess,PDWORD_PTR lpProcessAffinityMask,PDWORD_PTR lpSystemAffinityMask);
1217
+ WINBASEAPI WINBOOL WINAPI SetProcessAffinityMask(HANDLE hProcess,DWORD_PTR dwProcessAffinityMask);
1218
+ WINBASEAPI WINBOOL WINAPI GetProcessHandleCount(HANDLE hProcess,PDWORD pdwHandleCount);
1219
+ WINBASEAPI WINBOOL WINAPI GetProcessTimes(HANDLE hProcess,LPFILETIME lpCreationTime,LPFILETIME lpExitTime,LPFILETIME lpKernelTime,LPFILETIME lpUserTime);
1220
+ WINBASEAPI WINBOOL WINAPI GetProcessIoCounters(HANDLE hProcess,PIO_COUNTERS lpIoCounters);
1221
+ WINBASEAPI WINBOOL WINAPI GetProcessWorkingSetSize(HANDLE hProcess,PSIZE_T lpMinimumWorkingSetSize,PSIZE_T lpMaximumWorkingSetSize);
1222
+ WINBASEAPI WINBOOL WINAPI GetProcessWorkingSetSizeEx(HANDLE hProcess,PSIZE_T lpMinimumWorkingSetSize,PSIZE_T lpMaximumWorkingSetSize,PDWORD Flags);
1223
+ WINBASEAPI WINBOOL WINAPI SetProcessWorkingSetSize(HANDLE hProcess,SIZE_T dwMinimumWorkingSetSize,SIZE_T dwMaximumWorkingSetSize);
1224
+ WINBASEAPI WINBOOL WINAPI SetProcessWorkingSetSizeEx(HANDLE hProcess,SIZE_T dwMinimumWorkingSetSize,SIZE_T dwMaximumWorkingSetSize,DWORD Flags);
1225
+ WINBASEAPI HANDLE WINAPI OpenProcess(DWORD dwDesiredAccess,WINBOOL bInheritHandle,DWORD dwProcessId);
1226
+ WINBASEAPI HANDLE WINAPI GetCurrentProcess(VOID);
1227
+ WINBASEAPI DWORD WINAPI GetCurrentProcessId(VOID);
1228
+ WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitProcess(UINT uExitCode);
1229
+ WINBASEAPI WINBOOL WINAPI TerminateProcess(HANDLE hProcess,UINT uExitCode);
1230
+ WINBASEAPI WINBOOL WINAPI GetExitCodeProcess(HANDLE hProcess,LPDWORD lpExitCode);
1231
+ WINBASEAPI VOID WINAPI FatalExit(int ExitCode);
1232
+ /* WINBASEAPI LPCH WINAPI GetEnvironmentStrings(VOID); */
1233
+ WINBASEAPI LPWCH WINAPI GetEnvironmentStringsW(VOID);
1234
+ WINBASEAPI WINBOOL WINAPI SetEnvironmentStringsA(LPCH NewEnvironment);
1235
+ WINBASEAPI WINBOOL WINAPI SetEnvironmentStringsW(LPWCH NewEnvironment);
1236
+ WINBASEAPI WINBOOL WINAPI FreeEnvironmentStringsA(LPCH);
1237
+ WINBASEAPI WINBOOL WINAPI FreeEnvironmentStringsW(LPWCH);
1238
+ WINBASEAPI VOID WINAPI RaiseException(DWORD dwExceptionCode,DWORD dwExceptionFlags,DWORD nNumberOfArguments,CONST ULONG_PTR *lpArguments);
1239
+ WINBASEAPI LONG WINAPI UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo);
1240
+
1241
+ typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(struct _EXCEPTION_POINTERS *ExceptionInfo);
1242
+ typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1243
+
1244
+ WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
1245
+
1246
+ #define FIBER_FLAG_FLOAT_SWITCH 0x1
1247
+
1248
+ WINBASEAPI LPVOID WINAPI CreateFiber(SIZE_T dwStackSize,LPFIBER_START_ROUTINE lpStartAddress,LPVOID lpParameter);
1249
+ WINBASEAPI LPVOID WINAPI CreateFiberEx(SIZE_T dwStackCommitSize,SIZE_T dwStackReserveSize,DWORD dwFlags,LPFIBER_START_ROUTINE lpStartAddress,LPVOID lpParameter);
1250
+ WINBASEAPI VOID WINAPI DeleteFiber(LPVOID lpFiber);
1251
+ WINBASEAPI LPVOID WINAPI ConvertThreadToFiber(LPVOID lpParameter);
1252
+ WINBASEAPI LPVOID WINAPI ConvertThreadToFiberEx(LPVOID lpParameter,DWORD dwFlags);
1253
+ WINBASEAPI WINBOOL WINAPI ConvertFiberToThread(VOID);
1254
+ WINBASEAPI VOID WINAPI SwitchToFiber(LPVOID lpFiber);
1255
+ WINBASEAPI WINBOOL WINAPI SwitchToThread(VOID);
1256
+ WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);
1257
+ WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE hProcess,LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);
1258
+ WINBASEAPI HANDLE WINAPI GetCurrentThread(VOID);
1259
+ WINBASEAPI DWORD WINAPI GetCurrentThreadId(VOID);
1260
+ WINBASEAPI WINBOOL WINAPI SetThreadStackGuarantee (PULONG StackSizeInBytes);
1261
+ WINBASEAPI DWORD WINAPI GetProcessIdOfThread(HANDLE Thread);
1262
+ WINBASEAPI DWORD WINAPI GetThreadId(HANDLE Thread);
1263
+ WINBASEAPI DWORD WINAPI GetProcessId(HANDLE Process);
1264
+ WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber(VOID);
1265
+ WINBASEAPI DWORD_PTR WINAPI SetThreadAffinityMask(HANDLE hThread,DWORD_PTR dwThreadAffinityMask);
1266
+ WINBASEAPI DWORD WINAPI SetThreadIdealProcessor(HANDLE hThread,DWORD dwIdealProcessor);
1267
+ WINBASEAPI WINBOOL WINAPI SetProcessPriorityBoost(HANDLE hProcess,WINBOOL bDisablePriorityBoost);
1268
+ WINBASEAPI WINBOOL WINAPI GetProcessPriorityBoost(HANDLE hProcess,PBOOL pDisablePriorityBoost);
1269
+ WINBASEAPI WINBOOL WINAPI RequestWakeupLatency(LATENCY_TIME latency);
1270
+ WINBASEAPI WINBOOL WINAPI IsSystemResumeAutomatic(VOID);
1271
+ WINBASEAPI HANDLE WINAPI OpenThread(DWORD dwDesiredAccess,WINBOOL bInheritHandle,DWORD dwThreadId);
1272
+ WINBASEAPI WINBOOL WINAPI SetThreadPriority(HANDLE hThread,int nPriority);
1273
+ WINBASEAPI WINBOOL WINAPI SetThreadPriorityBoost(HANDLE hThread,WINBOOL bDisablePriorityBoost);
1274
+ WINBASEAPI WINBOOL WINAPI GetThreadPriorityBoost(HANDLE hThread,PBOOL pDisablePriorityBoost);
1275
+ WINBASEAPI int WINAPI GetThreadPriority(HANDLE hThread);
1276
+ WINBASEAPI WINBOOL WINAPI GetThreadTimes(HANDLE hThread,LPFILETIME lpCreationTime,LPFILETIME lpExitTime,LPFILETIME lpKernelTime,LPFILETIME lpUserTime);
1277
+ WINBASEAPI WINBOOL WINAPI GetThreadIOPendingFlag(HANDLE hThread,PBOOL lpIOIsPending);
1278
+ WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitThread(DWORD dwExitCode);
1279
+ WINBASEAPI WINBOOL WINAPI TerminateThread(HANDLE hThread,DWORD dwExitCode);
1280
+ WINBASEAPI WINBOOL WINAPI GetExitCodeThread(HANDLE hThread,LPDWORD lpExitCode);
1281
+ WINBASEAPI WINBOOL WINAPI GetThreadSelectorEntry(HANDLE hThread,DWORD dwSelector,LPLDT_ENTRY lpSelectorEntry);
1282
+ WINBASEAPI EXECUTION_STATE WINAPI SetThreadExecutionState(EXECUTION_STATE esFlags);
1283
+ WINBASEAPI DWORD WINAPI GetLastError(VOID);
1284
+ WINBASEAPI VOID WINAPI SetLastError(DWORD dwErrCode);
1285
+
1286
+ #ifndef RC_INVOKED
1287
+ #ifdef WINBASE_DECLARE_RESTORE_LAST_ERROR
1288
+ WINBASEAPI VOID WINAPI RestoreLastError(DWORD dwErrCode);
1289
+
1290
+ typedef VOID (WINAPI *PRESTORE_LAST_ERROR)(DWORD);
1291
+
1292
+ #define RESTORE_LAST_ERROR_NAME_A "RestoreLastError"
1293
+ #define RESTORE_LAST_ERROR_NAME_W L"RestoreLastError"
1294
+ #define RESTORE_LAST_ERROR_NAME TEXT("RestoreLastError")
1295
+ #endif
1296
+ #endif
1297
+
1298
+ #define HasOverlappedIoCompleted(lpOverlapped) (((DWORD)(lpOverlapped)->Internal)!=STATUS_PENDING)
1299
+
1300
+ WINBASEAPI WINBOOL WINAPI GetOverlappedResult(HANDLE hFile,LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred,WINBOOL bWait);
1301
+ WINBASEAPI HANDLE WINAPI CreateIoCompletionPort(HANDLE FileHandle,HANDLE ExistingCompletionPort,ULONG_PTR CompletionKey,DWORD NumberOfConcurrentThreads);
1302
+ WINBASEAPI WINBOOL WINAPI GetQueuedCompletionStatus(HANDLE CompletionPort,LPDWORD lpNumberOfBytesTransferred,PULONG_PTR lpCompletionKey,LPOVERLAPPED *lpOverlapped,DWORD dwMilliseconds);
1303
+ WINBASEAPI WINBOOL WINAPI PostQueuedCompletionStatus(HANDLE CompletionPort,DWORD dwNumberOfBytesTransferred,ULONG_PTR dwCompletionKey,LPOVERLAPPED lpOverlapped);
1304
+
1305
+ #define SEM_FAILCRITICALERRORS 0x1
1306
+ #define SEM_NOGPFAULTERRORBOX 0x2
1307
+ #define SEM_NOALIGNMENTFAULTEXCEPT 0x4
1308
+ #define SEM_NOOPENFILEERRORBOX 0x8000
1309
+
1310
+ WINBASEAPI UINT WINAPI SetErrorMode(UINT uMode);
1311
+ WINBASEAPI WINBOOL WINAPI ReadProcessMemory(HANDLE hProcess,LPCVOID lpBaseAddress,LPVOID lpBuffer,SIZE_T nSize,SIZE_T *lpNumberOfBytesRead);
1312
+ WINBASEAPI WINBOOL WINAPI WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPCVOID lpBuffer,SIZE_T nSize,SIZE_T *lpNumberOfBytesWritten);
1313
+ WINBASEAPI WINBOOL WINAPI GetThreadContext(HANDLE hThread,LPCONTEXT lpContext);
1314
+ WINBASEAPI WINBOOL WINAPI SetThreadContext(HANDLE hThread,CONST CONTEXT *lpContext);
1315
+ WINBASEAPI DWORD WINAPI SuspendThread(HANDLE hThread);
1316
+ WINBASEAPI DWORD WINAPI ResumeThread(HANDLE hThread);
1317
+
1318
+ typedef VOID (WINAPI *PAPCFUNC)(ULONG_PTR dwParam);
1319
+
1320
+ WINBASEAPI DWORD WINAPI QueueUserAPC(PAPCFUNC pfnAPC,HANDLE hThread,ULONG_PTR dwData);
1321
+ WINBASEAPI WINBOOL WINAPI IsDebuggerPresent(VOID);
1322
+ WINBASEAPI WINBOOL WINAPI CheckRemoteDebuggerPresent(HANDLE hProcess,PBOOL pbDebuggerPresent);
1323
+ WINBASEAPI VOID WINAPI DebugBreak(VOID);
1324
+ WINBASEAPI WINBOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT lpDebugEvent,DWORD dwMilliseconds);
1325
+ WINBASEAPI WINBOOL WINAPI ContinueDebugEvent(DWORD dwProcessId,DWORD dwThreadId,DWORD dwContinueStatus);
1326
+ WINBASEAPI WINBOOL WINAPI DebugActiveProcess(DWORD dwProcessId);
1327
+ WINBASEAPI WINBOOL WINAPI DebugActiveProcessStop(DWORD dwProcessId);
1328
+ WINBASEAPI WINBOOL WINAPI DebugSetProcessKillOnExit(WINBOOL KillOnExit);
1329
+ WINBASEAPI WINBOOL WINAPI DebugBreakProcess(HANDLE Process);
1330
+ WINBASEAPI VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1331
+ WINBASEAPI VOID WINAPI EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1332
+ WINBASEAPI VOID WINAPI LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1333
+ WINBASEAPI WINBOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION lpCriticalSection,DWORD dwSpinCount);
1334
+ WINBASEAPI DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION lpCriticalSection,DWORD dwSpinCount);
1335
+ WINBASEAPI WINBOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1336
+ WINBASEAPI VOID WINAPI DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1337
+ WINBASEAPI WINBOOL WINAPI SetEvent(HANDLE hEvent);
1338
+ WINBASEAPI WINBOOL WINAPI ResetEvent(HANDLE hEvent);
1339
+ WINBASEAPI WINBOOL WINAPI PulseEvent(HANDLE hEvent);
1340
+ WINBASEAPI WINBOOL WINAPI ReleaseSemaphore(HANDLE hSemaphore,LONG lReleaseCount,LPLONG lpPreviousCount);
1341
+ WINBASEAPI WINBOOL WINAPI ReleaseMutex(HANDLE hMutex);
1342
+ WINBASEAPI DWORD WINAPI WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds);
1343
+ WINBASEAPI DWORD WINAPI WaitForMultipleObjects(DWORD nCount,CONST HANDLE *lpHandles,WINBOOL bWaitAll,DWORD dwMilliseconds);
1344
+ WINBASEAPI VOID WINAPI Sleep(DWORD dwMilliseconds);
1345
+ WINBASEAPI HGLOBAL WINAPI LoadResource(HMODULE hModule,HRSRC hResInfo);
1346
+ WINBASEAPI DWORD WINAPI SizeofResource(HMODULE hModule,HRSRC hResInfo);
1347
+ WINBASEAPI ATOM WINAPI GlobalDeleteAtom(ATOM nAtom);
1348
+ WINBASEAPI WINBOOL WINAPI InitAtomTable(DWORD nSize);
1349
+ WINBASEAPI ATOM WINAPI DeleteAtom(ATOM nAtom);
1350
+ WINBASEAPI UINT WINAPI SetHandleCount(UINT uNumber);
1351
+ WINBASEAPI DWORD WINAPI GetLogicalDrives(VOID);
1352
+ WINBASEAPI WINBOOL WINAPI LockFile(HANDLE hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh,DWORD nNumberOfBytesToLockLow,DWORD nNumberOfBytesToLockHigh);
1353
+ WINBASEAPI WINBOOL WINAPI UnlockFile(HANDLE hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh,DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh);
1354
+ WINBASEAPI WINBOOL WINAPI LockFileEx(HANDLE hFile,DWORD dwFlags,DWORD dwReserved,DWORD nNumberOfBytesToLockLow,DWORD nNumberOfBytesToLockHigh,LPOVERLAPPED lpOverlapped);
1355
+
1356
+ #define LOCKFILE_FAIL_IMMEDIATELY 0x1
1357
+ #define LOCKFILE_EXCLUSIVE_LOCK 0x2
1358
+
1359
+ WINBASEAPI WINBOOL WINAPI UnlockFileEx(HANDLE hFile,DWORD dwReserved,DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh,LPOVERLAPPED lpOverlapped);
1360
+
1361
+ typedef struct _BY_HANDLE_FILE_INFORMATION {
1362
+ DWORD dwFileAttributes;
1363
+ FILETIME ftCreationTime;
1364
+ FILETIME ftLastAccessTime;
1365
+ FILETIME ftLastWriteTime;
1366
+ DWORD dwVolumeSerialNumber;
1367
+ DWORD nFileSizeHigh;
1368
+ DWORD nFileSizeLow;
1369
+ DWORD nNumberOfLinks;
1370
+ DWORD nFileIndexHigh;
1371
+ DWORD nFileIndexLow;
1372
+ } BY_HANDLE_FILE_INFORMATION,*PBY_HANDLE_FILE_INFORMATION,*LPBY_HANDLE_FILE_INFORMATION;
1373
+
1374
+ #ifdef UNICODE
1375
+ #define SetFileShortName SetFileShortNameW
1376
+ #else
1377
+ #define SetFileShortName SetFileShortNameA
1378
+ #endif
1379
+
1380
+ WINBASEAPI WINBOOL WINAPI GetFileInformationByHandle(HANDLE hFile,LPBY_HANDLE_FILE_INFORMATION lpFileInformation);
1381
+ WINBASEAPI DWORD WINAPI GetFileType(HANDLE hFile);
1382
+ WINBASEAPI DWORD WINAPI GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh);
1383
+ WINBASEAPI WINBOOL WINAPI GetFileSizeEx(HANDLE hFile,PLARGE_INTEGER lpFileSize);
1384
+ WINBASEAPI HANDLE WINAPI GetStdHandle(DWORD nStdHandle);
1385
+ WINBASEAPI WINBOOL WINAPI SetStdHandle(DWORD nStdHandle,HANDLE hHandle);
1386
+ WINBASEAPI WINBOOL WINAPI WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped);
1387
+ WINBASEAPI WINBOOL WINAPI ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped);
1388
+ WINBASEAPI WINBOOL WINAPI FlushFileBuffers(HANDLE hFile);
1389
+ WINBASEAPI WINBOOL WINAPI DeviceIoControl(HANDLE hDevice,DWORD dwIoControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped);
1390
+ WINBASEAPI WINBOOL WINAPI RequestDeviceWakeup(HANDLE hDevice);
1391
+ WINBASEAPI WINBOOL WINAPI CancelDeviceWakeupRequest(HANDLE hDevice);
1392
+ WINBASEAPI WINBOOL WINAPI GetDevicePowerState(HANDLE hDevice,WINBOOL *pfOn);
1393
+ WINBASEAPI WINBOOL WINAPI SetMessageWaitingIndicator(HANDLE hMsgIndicator,ULONG ulMsgCount);
1394
+ WINBASEAPI WINBOOL WINAPI SetEndOfFile(HANDLE hFile);
1395
+ WINBASEAPI DWORD WINAPI SetFilePointer(HANDLE hFile,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod);
1396
+ WINBASEAPI WINBOOL WINAPI SetFilePointerEx(HANDLE hFile,LARGE_INTEGER liDistanceToMove,PLARGE_INTEGER lpNewFilePointer,DWORD dwMoveMethod);
1397
+ WINBASEAPI WINBOOL WINAPI FindClose(HANDLE hFindFile);
1398
+ WINBASEAPI WINBOOL WINAPI GetFileTime(HANDLE hFile,LPFILETIME lpCreationTime,LPFILETIME lpLastAccessTime,LPFILETIME lpLastWriteTime);
1399
+ WINBASEAPI WINBOOL WINAPI SetFileTime(HANDLE hFile,CONST FILETIME *lpCreationTime,CONST FILETIME *lpLastAccessTime,CONST FILETIME *lpLastWriteTime);
1400
+ WINBASEAPI WINBOOL WINAPI SetFileValidData(HANDLE hFile,LONGLONG ValidDataLength);
1401
+ WINBASEAPI WINBOOL WINAPI SetFileShortNameA(HANDLE hFile,LPCSTR lpShortName);
1402
+ WINBASEAPI WINBOOL WINAPI SetFileShortNameW(HANDLE hFile,LPCWSTR lpShortName);
1403
+ WINBASEAPI WINBOOL WINAPI CloseHandle(HANDLE hObject);
1404
+ WINBASEAPI WINBOOL WINAPI DuplicateHandle(HANDLE hSourceProcessHandle,HANDLE hSourceHandle,HANDLE hTargetProcessHandle,LPHANDLE lpTargetHandle,DWORD dwDesiredAccess,WINBOOL bInheritHandle,DWORD dwOptions);
1405
+ WINBASEAPI WINBOOL WINAPI GetHandleInformation(HANDLE hObject,LPDWORD lpdwFlags);
1406
+ WINBASEAPI WINBOOL WINAPI SetHandleInformation(HANDLE hObject,DWORD dwMask,DWORD dwFlags);
1407
+
1408
+ #define HANDLE_FLAG_INHERIT 0x1
1409
+ #define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x2
1410
+
1411
+ #define HINSTANCE_ERROR 32
1412
+
1413
+ WINBASEAPI DWORD WINAPI LoadModule(LPCSTR lpModuleName,LPVOID lpParameterBlock);
1414
+ WINBASEAPI UINT WINAPI WinExec(LPCSTR lpCmdLine,UINT uCmdShow);
1415
+ WINBASEAPI WINBOOL WINAPI ClearCommBreak(HANDLE hFile);
1416
+ WINBASEAPI WINBOOL WINAPI ClearCommError(HANDLE hFile,LPDWORD lpErrors,LPCOMSTAT lpStat);
1417
+ WINBASEAPI WINBOOL WINAPI SetupComm(HANDLE hFile,DWORD dwInQueue,DWORD dwOutQueue);
1418
+ WINBASEAPI WINBOOL WINAPI EscapeCommFunction(HANDLE hFile,DWORD dwFunc);
1419
+ WINBASEAPI WINBOOL WINAPI GetCommConfig(HANDLE hCommDev,LPCOMMCONFIG lpCC,LPDWORD lpdwSize);
1420
+ WINBASEAPI WINBOOL WINAPI GetCommMask(HANDLE hFile,LPDWORD lpEvtMask);
1421
+ WINBASEAPI WINBOOL WINAPI GetCommProperties(HANDLE hFile,LPCOMMPROP lpCommProp);
1422
+ WINBASEAPI WINBOOL WINAPI GetCommModemStatus(HANDLE hFile,LPDWORD lpModemStat);
1423
+ WINBASEAPI WINBOOL WINAPI GetCommState(HANDLE hFile,LPDCB lpDCB);
1424
+ WINBASEAPI WINBOOL WINAPI GetCommTimeouts(HANDLE hFile,LPCOMMTIMEOUTS lpCommTimeouts);
1425
+ WINBASEAPI WINBOOL WINAPI PurgeComm(HANDLE hFile,DWORD dwFlags);
1426
+ WINBASEAPI WINBOOL WINAPI SetCommBreak(HANDLE hFile);
1427
+ WINBASEAPI WINBOOL WINAPI SetCommConfig(HANDLE hCommDev,LPCOMMCONFIG lpCC,DWORD dwSize);
1428
+ WINBASEAPI WINBOOL WINAPI SetCommMask(HANDLE hFile,DWORD dwEvtMask);
1429
+ WINBASEAPI WINBOOL WINAPI SetCommState(HANDLE hFile,LPDCB lpDCB);
1430
+ WINBASEAPI WINBOOL WINAPI SetCommTimeouts(HANDLE hFile,LPCOMMTIMEOUTS lpCommTimeouts);
1431
+ WINBASEAPI WINBOOL WINAPI TransmitCommChar(HANDLE hFile,char cChar);
1432
+ WINBASEAPI WINBOOL WINAPI WaitCommEvent(HANDLE hFile,LPDWORD lpEvtMask,LPOVERLAPPED lpOverlapped);
1433
+ WINBASEAPI DWORD WINAPI SetTapePosition(HANDLE hDevice,DWORD dwPositionMethod,DWORD dwPartition,DWORD dwOffsetLow,DWORD dwOffsetHigh,WINBOOL bImmediate);
1434
+ WINBASEAPI DWORD WINAPI GetTapePosition(HANDLE hDevice,DWORD dwPositionType,LPDWORD lpdwPartition,LPDWORD lpdwOffsetLow,LPDWORD lpdwOffsetHigh);
1435
+ WINBASEAPI DWORD WINAPI PrepareTape(HANDLE hDevice,DWORD dwOperation,WINBOOL bImmediate);
1436
+ WINBASEAPI DWORD WINAPI EraseTape(HANDLE hDevice,DWORD dwEraseType,WINBOOL bImmediate);
1437
+ WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE hDevice,DWORD dwPartitionMethod,DWORD dwCount,DWORD dwSize);
1438
+ WINBASEAPI DWORD WINAPI WriteTapemark(HANDLE hDevice,DWORD dwTapemarkType,DWORD dwTapemarkCount,WINBOOL bImmediate);
1439
+ WINBASEAPI DWORD WINAPI GetTapeStatus(HANDLE hDevice);
1440
+ WINBASEAPI DWORD WINAPI GetTapeParameters(HANDLE hDevice,DWORD dwOperation,LPDWORD lpdwSize,LPVOID lpTapeInformation);
1441
+
1442
+ #define GET_TAPE_MEDIA_INFORMATION 0
1443
+ #define GET_TAPE_DRIVE_INFORMATION 1
1444
+
1445
+ WINBASEAPI DWORD WINAPI SetTapeParameters(HANDLE hDevice,DWORD dwOperation,LPVOID lpTapeInformation);
1446
+
1447
+ #define SET_TAPE_MEDIA_INFORMATION 0
1448
+ #define SET_TAPE_DRIVE_INFORMATION 1
1449
+
1450
+ WINBASEAPI WINBOOL WINAPI Beep(DWORD dwFreq,DWORD dwDuration);
1451
+ WINBASEAPI int WINAPI MulDiv(int nNumber,int nNumerator,int nDenominator);
1452
+ WINBASEAPI VOID WINAPI GetSystemTime(LPSYSTEMTIME lpSystemTime);
1453
+ WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime);
1454
+ WINBASEAPI WINBOOL WINAPI SetSystemTime(CONST SYSTEMTIME *lpSystemTime);
1455
+ WINBASEAPI VOID WINAPI GetLocalTime(LPSYSTEMTIME lpSystemTime);
1456
+ WINBASEAPI WINBOOL WINAPI SetLocalTime(CONST SYSTEMTIME *lpSystemTime);
1457
+ WINBASEAPI VOID WINAPI GetSystemInfo(LPSYSTEM_INFO lpSystemInfo);
1458
+ WINBASEAPI WINBOOL WINAPI SetSystemFileCacheSize(SIZE_T MinimumFileCacheSize,SIZE_T MaximumFileCacheSize,DWORD Flags);
1459
+ WINBASEAPI WINBOOL WINAPI GetSystemFileCacheSize(PSIZE_T lpMinimumFileCacheSize,PSIZE_T lpMaximumFileCacheSize,PDWORD lpFlags);
1460
+ WINBASEAPI WINBOOL WINAPI GetSystemRegistryQuota(PDWORD pdwQuotaAllowed,PDWORD pdwQuotaUsed);
1461
+ WINBOOL WINAPI GetSystemTimes(LPFILETIME lpIdleTime,LPFILETIME lpKernelTime,LPFILETIME lpUserTime);
1462
+ WINBASEAPI VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO lpSystemInfo);
1463
+ WINBASEAPI WINBOOL WINAPI IsProcessorFeaturePresent(DWORD ProcessorFeature);
1464
+
1465
+ typedef struct _TIME_ZONE_INFORMATION {
1466
+ LONG Bias;
1467
+ WCHAR StandardName[32];
1468
+ SYSTEMTIME StandardDate;
1469
+ LONG StandardBias;
1470
+ WCHAR DaylightName[32];
1471
+ SYSTEMTIME DaylightDate;
1472
+ LONG DaylightBias;
1473
+ } TIME_ZONE_INFORMATION,*PTIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION;
1474
+
1475
+ #ifdef UNICODE
1476
+ #define FormatMessage FormatMessageW
1477
+ #else
1478
+ #define FormatMessage FormatMessageA
1479
+ #endif
1480
+
1481
+ WINBASEAPI WINBOOL WINAPI SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION lpTimeZoneInformation,LPSYSTEMTIME lpUniversalTime,LPSYSTEMTIME lpLocalTime);
1482
+ WINBASEAPI WINBOOL WINAPI TzSpecificLocalTimeToSystemTime(LPTIME_ZONE_INFORMATION lpTimeZoneInformation,LPSYSTEMTIME lpLocalTime,LPSYSTEMTIME lpUniversalTime);
1483
+ WINBASEAPI DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation);
1484
+ WINBASEAPI WINBOOL WINAPI SetTimeZoneInformation(CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation);
1485
+ WINBASEAPI WINBOOL WINAPI SystemTimeToFileTime(CONST SYSTEMTIME *lpSystemTime,LPFILETIME lpFileTime);
1486
+ WINBASEAPI WINBOOL WINAPI FileTimeToLocalFileTime(CONST FILETIME *lpFileTime,LPFILETIME lpLocalFileTime);
1487
+ WINBASEAPI WINBOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *lpLocalFileTime,LPFILETIME lpFileTime);
1488
+ WINBASEAPI WINBOOL WINAPI FileTimeToSystemTime(CONST FILETIME *lpFileTime,LPSYSTEMTIME lpSystemTime);
1489
+ WINBASEAPI LONG WINAPI CompareFileTime(CONST FILETIME *lpFileTime1,CONST FILETIME *lpFileTime2);
1490
+ WINBASEAPI WINBOOL WINAPI FileTimeToDosDateTime(CONST FILETIME *lpFileTime,LPWORD lpFatDate,LPWORD lpFatTime);
1491
+ WINBASEAPI WINBOOL WINAPI DosDateTimeToFileTime(WORD wFatDate,WORD wFatTime,LPFILETIME lpFileTime);
1492
+ WINBASEAPI DWORD WINAPI GetTickCount(VOID);
1493
+ WINBASEAPI WINBOOL WINAPI SetSystemTimeAdjustment(DWORD dwTimeAdjustment,WINBOOL bTimeAdjustmentDisabled);
1494
+ WINBASEAPI WINBOOL WINAPI GetSystemTimeAdjustment(PDWORD lpTimeAdjustment,PDWORD lpTimeIncrement,PBOOL lpTimeAdjustmentDisabled);
1495
+ WINBASEAPI DWORD WINAPI FormatMessageA(DWORD dwFlags,LPCVOID lpSource,DWORD dwMessageId,DWORD dwLanguageId,LPSTR lpBuffer,DWORD nSize,va_list *Arguments);
1496
+ WINBASEAPI DWORD WINAPI FormatMessageW(DWORD dwFlags,LPCVOID lpSource,DWORD dwMessageId,DWORD dwLanguageId,LPWSTR lpBuffer,DWORD nSize,va_list *Arguments);
1497
+
1498
+ #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x100
1499
+ #define FORMAT_MESSAGE_IGNORE_INSERTS 0x200
1500
+ #define FORMAT_MESSAGE_FROM_STRING 0x400
1501
+ #define FORMAT_MESSAGE_FROM_HMODULE 0x800
1502
+ #define FORMAT_MESSAGE_FROM_SYSTEM 0x1000
1503
+ #define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x2000
1504
+ #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0xff
1505
+
1506
+ #ifdef UNICODE
1507
+ #define CreateMailslot CreateMailslotW
1508
+ #define EncryptFile EncryptFileW
1509
+ #define DecryptFile DecryptFileW
1510
+ #define FileEncryptionStatus FileEncryptionStatusW
1511
+ #else
1512
+ #define CreateMailslot CreateMailslotA
1513
+ #define EncryptFile EncryptFileA
1514
+ #define DecryptFile DecryptFileA
1515
+ #define FileEncryptionStatus FileEncryptionStatusA
1516
+ #endif
1517
+
1518
+ WINBASEAPI WINBOOL WINAPI CreatePipe(PHANDLE hReadPipe,PHANDLE hWritePipe,LPSECURITY_ATTRIBUTES lpPipeAttributes,DWORD nSize);
1519
+ WINBASEAPI WINBOOL WINAPI ConnectNamedPipe(HANDLE hNamedPipe,LPOVERLAPPED lpOverlapped);
1520
+ WINBASEAPI WINBOOL WINAPI DisconnectNamedPipe(HANDLE hNamedPipe);
1521
+ WINBASEAPI WINBOOL WINAPI SetNamedPipeHandleState(HANDLE hNamedPipe,LPDWORD lpMode,LPDWORD lpMaxCollectionCount,LPDWORD lpCollectDataTimeout);
1522
+ WINBASEAPI WINBOOL WINAPI GetNamedPipeInfo(HANDLE hNamedPipe,LPDWORD lpFlags,LPDWORD lpOutBufferSize,LPDWORD lpInBufferSize,LPDWORD lpMaxInstances);
1523
+ WINBASEAPI WINBOOL WINAPI PeekNamedPipe(HANDLE hNamedPipe,LPVOID lpBuffer,DWORD nBufferSize,LPDWORD lpBytesRead,LPDWORD lpTotalBytesAvail,LPDWORD lpBytesLeftThisMessage);
1524
+ WINBASEAPI WINBOOL WINAPI TransactNamedPipe(HANDLE hNamedPipe,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesRead,LPOVERLAPPED lpOverlapped);
1525
+ WINBASEAPI HANDLE WINAPI CreateMailslotA(LPCSTR lpName,DWORD nMaxMessageSize,DWORD lReadTimeout,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
1526
+ WINBASEAPI HANDLE WINAPI CreateMailslotW(LPCWSTR lpName,DWORD nMaxMessageSize,DWORD lReadTimeout,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
1527
+ WINBASEAPI WINBOOL WINAPI GetMailslotInfo(HANDLE hMailslot,LPDWORD lpMaxMessageSize,LPDWORD lpNextSize,LPDWORD lpMessageCount,LPDWORD lpReadTimeout);
1528
+ WINBASEAPI WINBOOL WINAPI SetMailslotInfo(HANDLE hMailslot,DWORD lReadTimeout);
1529
+ WINBASEAPI LPVOID WINAPI MapViewOfFile(HANDLE hFileMappingObject,DWORD dwDesiredAccess,DWORD dwFileOffsetHigh,DWORD dwFileOffsetLow,SIZE_T dwNumberOfBytesToMap);
1530
+ WINBASEAPI WINBOOL WINAPI FlushViewOfFile(LPCVOID lpBaseAddress,SIZE_T dwNumberOfBytesToFlush);
1531
+ WINBASEAPI WINBOOL WINAPI UnmapViewOfFile(LPCVOID lpBaseAddress);
1532
+ WINADVAPI WINBOOL WINAPI EncryptFileA(LPCSTR lpFileName);
1533
+ WINADVAPI WINBOOL WINAPI EncryptFileW(LPCWSTR lpFileName);
1534
+ WINADVAPI WINBOOL WINAPI DecryptFileA(LPCSTR lpFileName,DWORD dwReserved);
1535
+ WINADVAPI WINBOOL WINAPI DecryptFileW(LPCWSTR lpFileName,DWORD dwReserved);
1536
+
1537
+ #define FILE_ENCRYPTABLE 0
1538
+ #define FILE_IS_ENCRYPTED 1
1539
+ #define FILE_SYSTEM_ATTR 2
1540
+ #define FILE_ROOT_DIR 3
1541
+ #define FILE_SYSTEM_DIR 4
1542
+ #define FILE_UNKNOWN 5
1543
+ #define FILE_SYSTEM_NOT_SUPPORT 6
1544
+ #define FILE_USER_DISALLOWED 7
1545
+ #define FILE_READ_ONLY 8
1546
+ #define FILE_DIR_DISALLOWED 9
1547
+
1548
+ WINADVAPI WINBOOL WINAPI FileEncryptionStatusA(LPCSTR lpFileName,LPDWORD lpStatus);
1549
+ WINADVAPI WINBOOL WINAPI FileEncryptionStatusW(LPCWSTR lpFileName,LPDWORD lpStatus);
1550
+
1551
+ #define EFS_USE_RECOVERY_KEYS (0x1)
1552
+
1553
+ typedef DWORD (WINAPI *PFE_EXPORT_FUNC)(PBYTE pbData,PVOID pvCallbackContext,ULONG ulLength);
1554
+ typedef DWORD (WINAPI *PFE_IMPORT_FUNC)(PBYTE pbData,PVOID pvCallbackContext,PULONG ulLength);
1555
+
1556
+ #define CREATE_FOR_IMPORT (1)
1557
+ #define CREATE_FOR_DIR (2)
1558
+ #define OVERWRITE_HIDDEN (4)
1559
+
1560
+ #ifdef UNICODE
1561
+ #define OpenEncryptedFileRaw OpenEncryptedFileRawW
1562
+ #define lstrcmp lstrcmpW
1563
+ #define lstrcmpi lstrcmpiW
1564
+ #define lstrcpyn lstrcpynW
1565
+ #define lstrcpy lstrcpyW
1566
+ #define lstrcat lstrcatW
1567
+ #define lstrlen lstrlenW
1568
+ #else
1569
+ #define OpenEncryptedFileRaw OpenEncryptedFileRawA
1570
+ #define lstrcmp lstrcmpA
1571
+ #define lstrcmpi lstrcmpiA
1572
+ #define lstrcpyn lstrcpynA
1573
+ #define lstrcpy lstrcpyA
1574
+ #define lstrcat lstrcatA
1575
+ #define lstrlen lstrlenA
1576
+ #endif
1577
+
1578
+ WINADVAPI DWORD WINAPI OpenEncryptedFileRawA(LPCSTR lpFileName,ULONG ulFlags,PVOID *pvContext);
1579
+ WINADVAPI DWORD WINAPI OpenEncryptedFileRawW(LPCWSTR lpFileName,ULONG ulFlags,PVOID *pvContext);
1580
+ WINADVAPI DWORD WINAPI ReadEncryptedFileRaw(PFE_EXPORT_FUNC pfExportCallback,PVOID pvCallbackContext,PVOID pvContext);
1581
+ WINADVAPI DWORD WINAPI WriteEncryptedFileRaw(PFE_IMPORT_FUNC pfImportCallback,PVOID pvCallbackContext,PVOID pvContext);
1582
+ WINADVAPI VOID WINAPI CloseEncryptedFileRaw(PVOID pvContext);
1583
+ WINBASEAPI int WINAPI lstrcmpA(LPCSTR lpString1,LPCSTR lpString2);
1584
+ WINBASEAPI int WINAPI lstrcmpW(LPCWSTR lpString1,LPCWSTR lpString2);
1585
+ WINBASEAPI int WINAPI lstrcmpiA(LPCSTR lpString1,LPCSTR lpString2);
1586
+ WINBASEAPI int WINAPI lstrcmpiW(LPCWSTR lpString1,LPCWSTR lpString2);
1587
+ WINBASEAPI LPSTR WINAPI lstrcpynA(LPSTR lpString1,LPCSTR lpString2,int iMaxLength);
1588
+ WINBASEAPI LPWSTR WINAPI lstrcpynW(LPWSTR lpString1,LPCWSTR lpString2,int iMaxLength);
1589
+ WINBASEAPI LPSTR WINAPI lstrcpyA(LPSTR lpString1,LPCSTR lpString2);
1590
+ WINBASEAPI LPWSTR WINAPI lstrcpyW(LPWSTR lpString1,LPCWSTR lpString2);
1591
+ WINBASEAPI LPSTR WINAPI lstrcatA(LPSTR lpString1,LPCSTR lpString2);
1592
+ WINBASEAPI LPWSTR WINAPI lstrcatW(LPWSTR lpString1,LPCWSTR lpString2);
1593
+ WINBASEAPI int WINAPI lstrlenA(LPCSTR lpString);
1594
+ WINBASEAPI int WINAPI lstrlenW(LPCWSTR lpString);
1595
+ WINBASEAPI HFILE WINAPI OpenFile(LPCSTR lpFileName,LPOFSTRUCT lpReOpenBuff,UINT uStyle);
1596
+ WINBASEAPI HFILE WINAPI _lopen(LPCSTR lpPathName,int iReadWrite);
1597
+ WINBASEAPI HFILE WINAPI _lcreat(LPCSTR lpPathName,int iAttribute);
1598
+ WINBASEAPI UINT WINAPI _lread(HFILE hFile,LPVOID lpBuffer,UINT uBytes);
1599
+ WINBASEAPI UINT WINAPI _lwrite(HFILE hFile,LPCCH lpBuffer,UINT uBytes);
1600
+ WINBASEAPI long WINAPI _hread(HFILE hFile,LPVOID lpBuffer,long lBytes);
1601
+ WINBASEAPI long WINAPI _hwrite(HFILE hFile,LPCCH lpBuffer,long lBytes);
1602
+ WINBASEAPI HFILE WINAPI _lclose(HFILE hFile);
1603
+ WINBASEAPI LONG WINAPI _llseek(HFILE hFile,LONG lOffset,int iOrigin);
1604
+ WINADVAPI WINBOOL WINAPI IsTextUnicode(CONST VOID *lpv,int iSize,LPINT lpiResult);
1605
+
1606
+ #define FLS_OUT_OF_INDEXES ((DWORD)0xffffffff)
1607
+
1608
+ WINBASEAPI DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION lpCallback);
1609
+ WINBASEAPI PVOID WINAPI FlsGetValue(DWORD dwFlsIndex);
1610
+ WINBASEAPI WINBOOL WINAPI FlsSetValue(DWORD dwFlsIndex,PVOID lpFlsData);
1611
+ WINBASEAPI WINBOOL WINAPI FlsFree(DWORD dwFlsIndex);
1612
+
1613
+ #define TLS_OUT_OF_INDEXES ((DWORD)0xffffffff)
1614
+
1615
+ WINBASEAPI DWORD WINAPI TlsAlloc(VOID);
1616
+ WINBASEAPI LPVOID WINAPI TlsGetValue(DWORD dwTlsIndex);
1617
+ WINBASEAPI WINBOOL WINAPI TlsSetValue(DWORD dwTlsIndex,LPVOID lpTlsValue);
1618
+ WINBASEAPI WINBOOL WINAPI TlsFree(DWORD dwTlsIndex);
1619
+
1620
+ typedef VOID (WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD dwErrorCode,DWORD dwNumberOfBytesTransfered,LPOVERLAPPED lpOverlapped);
1621
+
1622
+ WINBASEAPI DWORD WINAPI SleepEx(DWORD dwMilliseconds,WINBOOL bAlertable);
1623
+ WINBASEAPI DWORD WINAPI WaitForSingleObjectEx(HANDLE hHandle,DWORD dwMilliseconds,WINBOOL bAlertable);
1624
+ WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx(DWORD nCount,CONST HANDLE *lpHandles,WINBOOL bWaitAll,DWORD dwMilliseconds,WINBOOL bAlertable);
1625
+ WINBASEAPI DWORD WINAPI SignalObjectAndWait(HANDLE hObjectToSignal,HANDLE hObjectToWaitOn,DWORD dwMilliseconds,WINBOOL bAlertable);
1626
+ WINBASEAPI WINBOOL WINAPI ReadFileEx(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPOVERLAPPED lpOverlapped,LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1627
+ WINBASEAPI WINBOOL WINAPI WriteFileEx(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPOVERLAPPED lpOverlapped,LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1628
+ WINBASEAPI WINBOOL WINAPI BackupRead(HANDLE hFile,LPBYTE lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,WINBOOL bAbort,WINBOOL bProcessSecurity,LPVOID *lpContext);
1629
+ WINBASEAPI WINBOOL WINAPI BackupSeek(HANDLE hFile,DWORD dwLowBytesToSeek,DWORD dwHighBytesToSeek,LPDWORD lpdwLowByteSeeked,LPDWORD lpdwHighByteSeeked,LPVOID *lpContext);
1630
+ WINBASEAPI WINBOOL WINAPI BackupWrite(HANDLE hFile,LPBYTE lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,WINBOOL bAbort,WINBOOL bProcessSecurity,LPVOID *lpContext);
1631
+
1632
+ typedef struct _WIN32_STREAM_ID {
1633
+ DWORD dwStreamId;
1634
+ DWORD dwStreamAttributes;
1635
+ LARGE_INTEGER Size;
1636
+ DWORD dwStreamNameSize;
1637
+ WCHAR cStreamName[ANYSIZE_ARRAY];
1638
+ } WIN32_STREAM_ID,*LPWIN32_STREAM_ID;
1639
+
1640
+ #define BACKUP_INVALID 0x0
1641
+ #define BACKUP_DATA 0x1
1642
+ #define BACKUP_EA_DATA 0x2
1643
+ #define BACKUP_SECURITY_DATA 0x3
1644
+ #define BACKUP_ALTERNATE_DATA 0x4
1645
+ #define BACKUP_LINK 0x5
1646
+ #define BACKUP_PROPERTY_DATA 0x6
1647
+ #define BACKUP_OBJECT_ID 0x7
1648
+ #define BACKUP_REPARSE_DATA 0x8
1649
+ #define BACKUP_SPARSE_BLOCK 0x9
1650
+
1651
+ #define STREAM_NORMAL_ATTRIBUTE 0x0
1652
+ #define STREAM_MODIFIED_WHEN_READ 0x1
1653
+ #define STREAM_CONTAINS_SECURITY 0x2
1654
+ #define STREAM_CONTAINS_PROPERTIES 0x4
1655
+ #define STREAM_SPARSE_ATTRIBUTE 0x8
1656
+
1657
+ WINBASEAPI WINBOOL WINAPI ReadFileScatter(HANDLE hFile,FILE_SEGMENT_ELEMENT aSegmentArray[],DWORD nNumberOfBytesToRead,LPDWORD lpReserved,LPOVERLAPPED lpOverlapped);
1658
+ WINBASEAPI WINBOOL WINAPI WriteFileGather(HANDLE hFile,FILE_SEGMENT_ELEMENT aSegmentArray[],DWORD nNumberOfBytesToWrite,LPDWORD lpReserved,LPOVERLAPPED lpOverlapped);
1659
+
1660
+ #define STARTF_USESHOWWINDOW 0x1
1661
+ #define STARTF_USESIZE 0x2
1662
+ #define STARTF_USEPOSITION 0x4
1663
+ #define STARTF_USECOUNTCHARS 0x8
1664
+ #define STARTF_USEFILLATTRIBUTE 0x10
1665
+ #define STARTF_RUNFULLSCREEN 0x20
1666
+ #define STARTF_FORCEONFEEDBACK 0x40
1667
+ #define STARTF_FORCEOFFFEEDBACK 0x80
1668
+ #define STARTF_USESTDHANDLES 0x100
1669
+
1670
+ #define STARTF_USEHOTKEY 0x200
1671
+
1672
+ typedef struct _STARTUPINFOA {
1673
+ DWORD cb;
1674
+ LPSTR lpReserved;
1675
+ LPSTR lpDesktop;
1676
+ LPSTR lpTitle;
1677
+ DWORD dwX;
1678
+ DWORD dwY;
1679
+ DWORD dwXSize;
1680
+ DWORD dwYSize;
1681
+ DWORD dwXCountChars;
1682
+ DWORD dwYCountChars;
1683
+ DWORD dwFillAttribute;
1684
+ DWORD dwFlags;
1685
+ WORD wShowWindow;
1686
+ WORD cbReserved2;
1687
+ LPBYTE lpReserved2;
1688
+ HANDLE hStdInput;
1689
+ HANDLE hStdOutput;
1690
+ HANDLE hStdError;
1691
+ } STARTUPINFOA,*LPSTARTUPINFOA;
1692
+
1693
+ typedef struct _STARTUPINFOW {
1694
+ DWORD cb;
1695
+ LPWSTR lpReserved;
1696
+ LPWSTR lpDesktop;
1697
+ LPWSTR lpTitle;
1698
+ DWORD dwX;
1699
+ DWORD dwY;
1700
+ DWORD dwXSize;
1701
+ DWORD dwYSize;
1702
+ DWORD dwXCountChars;
1703
+ DWORD dwYCountChars;
1704
+ DWORD dwFillAttribute;
1705
+ DWORD dwFlags;
1706
+ WORD wShowWindow;
1707
+ WORD cbReserved2;
1708
+ LPBYTE lpReserved2;
1709
+ HANDLE hStdInput;
1710
+ HANDLE hStdOutput;
1711
+ HANDLE hStdError;
1712
+ } STARTUPINFOW,*LPSTARTUPINFOW;
1713
+
1714
+ #ifdef UNICODE
1715
+ typedef STARTUPINFOW STARTUPINFO;
1716
+ typedef LPSTARTUPINFOW LPSTARTUPINFO;
1717
+ #else
1718
+ typedef STARTUPINFOA STARTUPINFO;
1719
+ typedef LPSTARTUPINFOA LPSTARTUPINFO;
1720
+ #endif
1721
+
1722
+ #define SHUTDOWN_NORETRY 0x1
1723
+
1724
+ typedef struct _WIN32_FIND_DATAA {
1725
+ DWORD dwFileAttributes;
1726
+ FILETIME ftCreationTime;
1727
+ FILETIME ftLastAccessTime;
1728
+ FILETIME ftLastWriteTime;
1729
+ DWORD nFileSizeHigh;
1730
+ DWORD nFileSizeLow;
1731
+ DWORD dwReserved0;
1732
+ DWORD dwReserved1;
1733
+ CHAR cFileName[MAX_PATH];
1734
+ CHAR cAlternateFileName[14];
1735
+ } WIN32_FIND_DATAA,*PWIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
1736
+
1737
+ typedef struct _WIN32_FIND_DATAW {
1738
+ DWORD dwFileAttributes;
1739
+ FILETIME ftCreationTime;
1740
+ FILETIME ftLastAccessTime;
1741
+ FILETIME ftLastWriteTime;
1742
+ DWORD nFileSizeHigh;
1743
+ DWORD nFileSizeLow;
1744
+ DWORD dwReserved0;
1745
+ DWORD dwReserved1;
1746
+ WCHAR cFileName[MAX_PATH];
1747
+ WCHAR cAlternateFileName[14];
1748
+ } WIN32_FIND_DATAW,*PWIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
1749
+
1750
+ #ifdef UNICODE
1751
+ typedef WIN32_FIND_DATAW WIN32_FIND_DATA;
1752
+ typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA;
1753
+ typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA;
1754
+ #else
1755
+ typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
1756
+ typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA;
1757
+ typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA;
1758
+ #endif
1759
+
1760
+ typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
1761
+ DWORD dwFileAttributes;
1762
+ FILETIME ftCreationTime;
1763
+ FILETIME ftLastAccessTime;
1764
+ FILETIME ftLastWriteTime;
1765
+ DWORD nFileSizeHigh;
1766
+ DWORD nFileSizeLow;
1767
+ } WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA;
1768
+
1769
+ #ifdef UNICODE
1770
+ #define CreateMutex CreateMutexW
1771
+ #define OpenMutex OpenMutexW
1772
+ #define CreateEvent CreateEventW
1773
+ #define OpenEvent OpenEventW
1774
+ #define CreateSemaphore CreateSemaphoreW
1775
+ #define OpenSemaphore OpenSemaphoreW
1776
+ #else
1777
+ #define CreateMutex CreateMutexA
1778
+ #define OpenMutex OpenMutexA
1779
+ #define CreateEvent CreateEventA
1780
+ #define OpenEvent OpenEventA
1781
+ #define CreateSemaphore CreateSemaphoreA
1782
+ #define OpenSemaphore OpenSemaphoreA
1783
+ #endif
1784
+
1785
+ WINBASEAPI HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES lpMutexAttributes,WINBOOL bInitialOwner,LPCSTR lpName);
1786
+ WINBASEAPI HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES lpMutexAttributes,WINBOOL bInitialOwner,LPCWSTR lpName);
1787
+ WINBASEAPI HANDLE WINAPI OpenMutexA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1788
+ WINBASEAPI HANDLE WINAPI OpenMutexW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1789
+ WINBASEAPI HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes,WINBOOL bManualReset,WINBOOL bInitialState,LPCSTR lpName);
1790
+ WINBASEAPI HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES lpEventAttributes,WINBOOL bManualReset,WINBOOL bInitialState,LPCWSTR lpName);
1791
+ WINBASEAPI HANDLE WINAPI OpenEventA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1792
+ WINBASEAPI HANDLE WINAPI OpenEventW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1793
+ WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,LONG lInitialCount,LONG lMaximumCount,LPCSTR lpName);
1794
+ WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,LONG lInitialCount,LONG lMaximumCount,LPCWSTR lpName);
1795
+ WINBASEAPI HANDLE WINAPI OpenSemaphoreA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1796
+ WINBASEAPI HANDLE WINAPI OpenSemaphoreW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1797
+
1798
+ typedef VOID (WINAPI *PTIMERAPCROUTINE)(LPVOID lpArgToCompletionRoutine,DWORD dwTimerLowValue,DWORD dwTimerHighValue);
1799
+
1800
+ #ifdef UNICODE
1801
+ #define CreateWaitableTimer CreateWaitableTimerW
1802
+ #define OpenWaitableTimer OpenWaitableTimerW
1803
+ #define CreateFileMapping CreateFileMappingW
1804
+ #define OpenFileMapping OpenFileMappingW
1805
+ #define GetLogicalDriveStrings GetLogicalDriveStringsW
1806
+ #define LoadLibrary LoadLibraryW
1807
+ #define LoadLibraryEx LoadLibraryExW
1808
+ #define GetModuleFileName GetModuleFileNameW
1809
+ #define GetModuleHandle GetModuleHandleW
1810
+ #else
1811
+ #define CreateWaitableTimer CreateWaitableTimerA
1812
+ #define OpenWaitableTimer OpenWaitableTimerA
1813
+ #define CreateFileMapping CreateFileMappingA
1814
+ #define OpenFileMapping OpenFileMappingA
1815
+ #define GetLogicalDriveStrings GetLogicalDriveStringsA
1816
+ #define LoadLibrary LoadLibraryA
1817
+ #define LoadLibraryEx LoadLibraryExA
1818
+ #define GetModuleFileName GetModuleFileNameA
1819
+ #define GetModuleHandle GetModuleHandleA
1820
+ #endif
1821
+
1822
+ WINBASEAPI HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES lpTimerAttributes,WINBOOL bManualReset,LPCSTR lpTimerName);
1823
+ WINBASEAPI HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES lpTimerAttributes,WINBOOL bManualReset,LPCWSTR lpTimerName);
1824
+ WINBASEAPI HANDLE WINAPI OpenWaitableTimerA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpTimerName);
1825
+ WINBASEAPI HANDLE WINAPI OpenWaitableTimerW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpTimerName);
1826
+ WINBASEAPI WINBOOL WINAPI SetWaitableTimer(HANDLE hTimer,const LARGE_INTEGER *lpDueTime,LONG lPeriod,PTIMERAPCROUTINE pfnCompletionRoutine,LPVOID lpArgToCompletionRoutine,WINBOOL fResume);
1827
+ WINBASEAPI WINBOOL WINAPI CancelWaitableTimer(HANDLE hTimer);
1828
+ WINBASEAPI HANDLE WINAPI CreateFileMappingA(HANDLE hFile,LPSECURITY_ATTRIBUTES lpFileMappingAttributes,DWORD flProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCSTR lpName);
1829
+ WINBASEAPI HANDLE WINAPI CreateFileMappingW(HANDLE hFile,LPSECURITY_ATTRIBUTES lpFileMappingAttributes,DWORD flProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCWSTR lpName);
1830
+ WINBASEAPI HANDLE WINAPI OpenFileMappingA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1831
+ WINBASEAPI HANDLE WINAPI OpenFileMappingW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1832
+ WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA(DWORD nBufferLength,LPSTR lpBuffer);
1833
+ WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW(DWORD nBufferLength,LPWSTR lpBuffer);
1834
+
1835
+ typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
1836
+ LowMemoryResourceNotification,HighMemoryResourceNotification
1837
+ } MEMORY_RESOURCE_NOTIFICATION_TYPE;
1838
+
1839
+ WINBASEAPI HANDLE WINAPI CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType);
1840
+ WINBASEAPI WINBOOL WINAPI QueryMemoryResourceNotification(HANDLE ResourceNotificationHandle,PBOOL ResourceState);
1841
+ WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName);
1842
+ WINBASEAPI HMODULE WINAPI LoadLibraryW(LPCWSTR lpLibFileName);
1843
+ WINBASEAPI HMODULE WINAPI LoadLibraryExA(LPCSTR lpLibFileName,HANDLE hFile,DWORD dwFlags);
1844
+ WINBASEAPI HMODULE WINAPI LoadLibraryExW(LPCWSTR lpLibFileName,HANDLE hFile,DWORD dwFlags);
1845
+
1846
+ #define DONT_RESOLVE_DLL_REFERENCES 0x1
1847
+ #define LOAD_LIBRARY_AS_DATAFILE 0x2
1848
+ #define LOAD_WITH_ALTERED_SEARCH_PATH 0x8
1849
+ #define LOAD_IGNORE_CODE_AUTHZ_LEVEL 0x10
1850
+ #define LOAD_LINRARY_AS_IMAGE_RESOURCE 0x20
1851
+ #define LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE 0x40
1852
+
1853
+ WINBASEAPI DWORD WINAPI GetModuleFileNameA(HMODULE hModule,LPCH lpFilename,DWORD nSize);
1854
+ WINBASEAPI DWORD WINAPI GetModuleFileNameW(HMODULE hModule,LPWCH lpFilename,DWORD nSize);
1855
+ WINBASEAPI HMODULE WINAPI GetModuleHandleA(LPCSTR lpModuleName);
1856
+ WINBASEAPI HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName);
1857
+
1858
+ #ifndef RC_INVOKED
1859
+ #define GET_MODULE_HANDLE_EX_FLAG_PIN (0x1)
1860
+ #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT (0x2)
1861
+ #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS (0x4)
1862
+
1863
+ typedef WINBOOL (WINAPI *PGET_MODULE_HANDLE_EXA)(DWORD dwFlags,LPCSTR lpModuleName,HMODULE *phModule);
1864
+ typedef WINBOOL (WINAPI *PGET_MODULE_HANDLE_EXW)(DWORD dwFlags,LPCWSTR lpModuleName,HMODULE *phModule);
1865
+
1866
+ #ifdef UNICODE
1867
+ #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXW
1868
+ #define GetModuleHandleEx GetModuleHandleExW
1869
+ #else
1870
+ #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXA
1871
+ #define GetModuleHandleEx GetModuleHandleExA
1872
+ #endif
1873
+
1874
+ WINBASEAPI WINBOOL WINAPI GetModuleHandleExA(DWORD dwFlags,LPCSTR lpModuleName,HMODULE *phModule);
1875
+ WINBASEAPI WINBOOL WINAPI GetModuleHandleExW(DWORD dwFlags,LPCWSTR lpModuleName,HMODULE *phModule);
1876
+ #endif
1877
+
1878
+ #ifdef UNICODE
1879
+ #define NeedCurrentDirectoryForExePath NeedCurrentDirectoryForExePathW
1880
+ #define CreateProcess CreateProcessW
1881
+ #define FatalAppExit FatalAppExitW
1882
+ #define GetStartupInfo GetStartupInfoW
1883
+ #define GetCommandLine GetCommandLineW
1884
+ #define GetEnvironmentVariable GetEnvironmentVariableW
1885
+ #define SetEnvironmentVariable SetEnvironmentVariableW
1886
+ #define ExpandEnvironmentStrings ExpandEnvironmentStringsW
1887
+ #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableW
1888
+ #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableW
1889
+ #define OutputDebugString OutputDebugStringW
1890
+ #define FindResource FindResourceW
1891
+ #define FindResourceEx FindResourceExW
1892
+ #else
1893
+ #define NeedCurrentDirectoryForExePath NeedCurrentDirectoryForExePathA
1894
+ #define CreateProcess CreateProcessA
1895
+ #define FatalAppExit FatalAppExitA
1896
+ #define GetStartupInfo GetStartupInfoA
1897
+ #define GetCommandLine GetCommandLineA
1898
+ #define GetEnvironmentVariable GetEnvironmentVariableA
1899
+ #define SetEnvironmentVariable SetEnvironmentVariableA
1900
+ #define ExpandEnvironmentStrings ExpandEnvironmentStringsA
1901
+ #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableA
1902
+ #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableA
1903
+ #define OutputDebugString OutputDebugStringA
1904
+ #define FindResource FindResourceA
1905
+ #define FindResourceEx FindResourceExA
1906
+ #endif
1907
+
1908
+ WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathA(LPCSTR ExeName);
1909
+ WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathW(LPCWSTR ExeName);
1910
+ WINBASEAPI WINBOOL WINAPI CreateProcessA(LPCSTR lpApplicationName,LPSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCSTR lpCurrentDirectory,LPSTARTUPINFOA lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
1911
+ WINBASEAPI WINBOOL WINAPI CreateProcessW(LPCWSTR lpApplicationName,LPWSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
1912
+ WINBASEAPI DWORD WINAPI AddLocalAlternateComputerNameA(LPCSTR lpDnsFQHostname,ULONG ulFlags);
1913
+ WINBASEAPI DWORD WINAPI AddLocalAlternateComputerNameW(LPCWSTR lpDnsFQHostname,ULONG ulFlags);
1914
+ WINBASEAPI WINBOOL WINAPI SetProcessShutdownParameters(DWORD dwLevel,DWORD dwFlags);
1915
+ WINBASEAPI WINBOOL WINAPI GetProcessShutdownParameters(LPDWORD lpdwLevel,LPDWORD lpdwFlags);
1916
+ WINBASEAPI DWORD WINAPI GetProcessVersion(DWORD ProcessId);
1917
+ WINBASEAPI VOID WINAPI FatalAppExitA(UINT uAction,LPCSTR lpMessageText);
1918
+ WINBASEAPI VOID WINAPI FatalAppExitW(UINT uAction,LPCWSTR lpMessageText);
1919
+ WINBASEAPI VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA lpStartupInfo);
1920
+ WINBASEAPI VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW lpStartupInfo);
1921
+ WINBASEAPI LPSTR WINAPI GetCommandLineA(VOID);
1922
+ WINBASEAPI LPWSTR WINAPI GetCommandLineW(VOID);
1923
+ WINBASEAPI DWORD WINAPI GetEnvironmentVariableA(LPCSTR lpName,LPSTR lpBuffer,DWORD nSize);
1924
+ WINBASEAPI DWORD WINAPI GetEnvironmentVariableW(LPCWSTR lpName,LPWSTR lpBuffer,DWORD nSize);
1925
+ WINBASEAPI WINBOOL WINAPI SetEnvironmentVariableA(LPCSTR lpName,LPCSTR lpValue);
1926
+ WINBASEAPI WINBOOL WINAPI SetEnvironmentVariableW(LPCWSTR lpName,LPCWSTR lpValue);
1927
+ WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR lpSrc,LPSTR lpDst,DWORD nSize);
1928
+ WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR lpSrc,LPWSTR lpDst,DWORD nSize);
1929
+ WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableA(LPCSTR lpName,LPCSTR lpGuid,PVOID pBuffer,DWORD nSize);
1930
+ WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableW(LPCWSTR lpName,LPCWSTR lpGuid,PVOID pBuffer,DWORD nSize);
1931
+ WINBASEAPI WINBOOL WINAPI SetFirmwareEnvironmentVariableA(LPCSTR lpName,LPCSTR lpGuid,PVOID pValue,DWORD nSize);
1932
+ WINBASEAPI WINBOOL WINAPI SetFirmwareEnvironmentVariableW(LPCWSTR lpName,LPCWSTR lpGuid,PVOID pValue,DWORD nSize);
1933
+ WINBASEAPI VOID WINAPI OutputDebugStringA(LPCSTR lpOutputString);
1934
+ WINBASEAPI VOID WINAPI OutputDebugStringW(LPCWSTR lpOutputString);
1935
+ WINBASEAPI HRSRC WINAPI FindResourceA(HMODULE hModule,LPCSTR lpName,LPCSTR lpType);
1936
+ WINBASEAPI HRSRC WINAPI FindResourceW(HMODULE hModule,LPCWSTR lpName,LPCWSTR lpType);
1937
+ WINBASEAPI HRSRC WINAPI FindResourceExA(HMODULE hModule,LPCSTR lpType,LPCSTR lpName,WORD wLanguage);
1938
+ WINBASEAPI HRSRC WINAPI FindResourceExW(HMODULE hModule,LPCWSTR lpType,LPCWSTR lpName,WORD wLanguage);
1939
+
1940
+ #ifdef UNICODE
1941
+ #define ENUMRESTYPEPROC ENUMRESTYPEPROCW
1942
+ #define ENUMRESNAMEPROC ENUMRESNAMEPROCW
1943
+ #define ENUMRESLANGPROC ENUMRESLANGPROCW
1944
+ #define EnumResourceTypes EnumResourceTypesW
1945
+ #define EnumResourceNames EnumResourceNamesW
1946
+ #define EnumResourceLanguages EnumResourceLanguagesW
1947
+ #define BeginUpdateResource BeginUpdateResourceW
1948
+ #define UpdateResource UpdateResourceW
1949
+ #define EndUpdateResource EndUpdateResourceW
1950
+ #define GlobalAddAtom GlobalAddAtomW
1951
+ #define GlobalFindAtom GlobalFindAtomW
1952
+ #define GlobalGetAtomName GlobalGetAtomNameW
1953
+ #define AddAtom AddAtomW
1954
+ #define FindAtom FindAtomW
1955
+ #define GetAtomName GetAtomNameW
1956
+ #define GetProfileInt GetProfileIntW
1957
+ #define GetProfileString GetProfileStringW
1958
+ #define WriteProfileString WriteProfileStringW
1959
+ #define GetProfileSection GetProfileSectionW
1960
+ #define WriteProfileSection WriteProfileSectionW
1961
+ #define GetPrivateProfileInt GetPrivateProfileIntW
1962
+ #define GetPrivateProfileString GetPrivateProfileStringW
1963
+ #define WritePrivateProfileString WritePrivateProfileStringW
1964
+ #define GetPrivateProfileSection GetPrivateProfileSectionW
1965
+ #define WritePrivateProfileSection WritePrivateProfileSectionW
1966
+ #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
1967
+ #define GetPrivateProfileStruct GetPrivateProfileStructW
1968
+ #define WritePrivateProfileStruct WritePrivateProfileStructW
1969
+ #define GetDriveType GetDriveTypeW
1970
+ #define GetSystemDirectory GetSystemDirectoryW
1971
+ #define GetTempPath GetTempPathW
1972
+ #define GetTempFileName GetTempFileNameW
1973
+ #define GetWindowsDirectory GetWindowsDirectoryW
1974
+ #define GetSystemWindowsDirectory GetSystemWindowsDirectoryW
1975
+ #define AddLocalAlternateComputerName AddLocalAlternateComputerNameW
1976
+ #else
1977
+ #define ENUMRESTYPEPROC ENUMRESTYPEPROCA
1978
+ #define ENUMRESNAMEPROC ENUMRESNAMEPROCA
1979
+ #define ENUMRESLANGPROC ENUMRESLANGPROCA
1980
+ #define EnumResourceTypes EnumResourceTypesA
1981
+ #define EnumResourceNames EnumResourceNamesA
1982
+ #define EnumResourceLanguages EnumResourceLanguagesA
1983
+ #define BeginUpdateResource BeginUpdateResourceA
1984
+ #define UpdateResource UpdateResourceA
1985
+ #define EndUpdateResource EndUpdateResourceA
1986
+ #define GlobalAddAtom GlobalAddAtomA
1987
+ #define GlobalFindAtom GlobalFindAtomA
1988
+ #define GlobalGetAtomName GlobalGetAtomNameA
1989
+ #define AddAtom AddAtomA
1990
+ #define FindAtom FindAtomA
1991
+ #define GetAtomName GetAtomNameA
1992
+ #define GetProfileInt GetProfileIntA
1993
+ #define GetProfileString GetProfileStringA
1994
+ #define WriteProfileString WriteProfileStringA
1995
+ #define GetProfileSection GetProfileSectionA
1996
+ #define WriteProfileSection WriteProfileSectionA
1997
+ #define GetPrivateProfileInt GetPrivateProfileIntA
1998
+ #define GetPrivateProfileString GetPrivateProfileStringA
1999
+ #define WritePrivateProfileString WritePrivateProfileStringA
2000
+ #define GetPrivateProfileSection GetPrivateProfileSectionA
2001
+ #define WritePrivateProfileSection WritePrivateProfileSectionA
2002
+ #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
2003
+ #define GetPrivateProfileStruct GetPrivateProfileStructA
2004
+ #define WritePrivateProfileStruct WritePrivateProfileStructA
2005
+ #define GetDriveType GetDriveTypeA
2006
+ #define GetSystemDirectory GetSystemDirectoryA
2007
+ #define GetTempPath GetTempPathA
2008
+ #define GetTempFileName GetTempFileNameA
2009
+ #define GetWindowsDirectory GetWindowsDirectoryA
2010
+ #define GetSystemWindowsDirectory GetSystemWindowsDirectoryA
2011
+ #define AddLocalAlternateComputerName AddLocalAlternateComputerNameA
2012
+ #endif
2013
+
2014
+ typedef WINBOOL (CALLBACK *ENUMRESTYPEPROCA)(HMODULE hModule,LPSTR lpType,LONG_PTR lParam);
2015
+ typedef WINBOOL (CALLBACK *ENUMRESTYPEPROCW)(HMODULE hModule,LPWSTR lpType,LONG_PTR lParam);
2016
+ typedef WINBOOL (CALLBACK *ENUMRESNAMEPROCA)(HMODULE hModule,LPCSTR lpType,LPSTR lpName,LONG_PTR lParam);
2017
+ typedef WINBOOL (CALLBACK *ENUMRESNAMEPROCW)(HMODULE hModule,LPCWSTR lpType,LPWSTR lpName,LONG_PTR lParam);
2018
+ typedef WINBOOL (CALLBACK *ENUMRESLANGPROCA)(HMODULE hModule,LPCSTR lpType,LPCSTR lpName,WORD wLanguage,LONG_PTR lParam);
2019
+ typedef WINBOOL (CALLBACK *ENUMRESLANGPROCW)(HMODULE hModule,LPCWSTR lpType,LPCWSTR lpName,WORD wLanguage,LONG_PTR lParam);
2020
+
2021
+ WINBASEAPI WINBOOL WINAPI EnumResourceTypesA(HMODULE hModule,ENUMRESTYPEPROCA lpEnumFunc,LONG_PTR lParam);
2022
+ WINBASEAPI WINBOOL WINAPI EnumResourceTypesW(HMODULE hModule,ENUMRESTYPEPROCW lpEnumFunc,LONG_PTR lParam);
2023
+ WINBASEAPI WINBOOL WINAPI EnumResourceNamesA(HMODULE hModule,LPCSTR lpType,ENUMRESNAMEPROCA lpEnumFunc,LONG_PTR lParam);
2024
+ WINBASEAPI WINBOOL WINAPI EnumResourceNamesW(HMODULE hModule,LPCWSTR lpType,ENUMRESNAMEPROCW lpEnumFunc,LONG_PTR lParam);
2025
+ WINBASEAPI WINBOOL WINAPI EnumResourceLanguagesA(HMODULE hModule,LPCSTR lpType,LPCSTR lpName,ENUMRESLANGPROCA lpEnumFunc,LONG_PTR lParam);
2026
+ WINBASEAPI WINBOOL WINAPI EnumResourceLanguagesW(HMODULE hModule,LPCWSTR lpType,LPCWSTR lpName,ENUMRESLANGPROCW lpEnumFunc,LONG_PTR lParam);
2027
+ WINBASEAPI HANDLE WINAPI BeginUpdateResourceA(LPCSTR pFileName,WINBOOL bDeleteExistingResources);
2028
+ WINBASEAPI HANDLE WINAPI BeginUpdateResourceW(LPCWSTR pFileName,WINBOOL bDeleteExistingResources);
2029
+ WINBASEAPI WINBOOL WINAPI UpdateResourceA(HANDLE hUpdate,LPCSTR lpType,LPCSTR lpName,WORD wLanguage,LPVOID lpData,DWORD cb);
2030
+ WINBASEAPI WINBOOL WINAPI UpdateResourceW(HANDLE hUpdate,LPCWSTR lpType,LPCWSTR lpName,WORD wLanguage,LPVOID lpData,DWORD cb);
2031
+ WINBASEAPI WINBOOL WINAPI EndUpdateResourceA(HANDLE hUpdate,WINBOOL fDiscard);
2032
+ WINBASEAPI WINBOOL WINAPI EndUpdateResourceW(HANDLE hUpdate,WINBOOL fDiscard);
2033
+ WINBASEAPI ATOM WINAPI GlobalAddAtomA(LPCSTR lpString);
2034
+ WINBASEAPI ATOM WINAPI GlobalAddAtomW(LPCWSTR lpString);
2035
+ WINBASEAPI ATOM WINAPI GlobalFindAtomA(LPCSTR lpString);
2036
+ WINBASEAPI ATOM WINAPI GlobalFindAtomW(LPCWSTR lpString);
2037
+ WINBASEAPI UINT WINAPI GlobalGetAtomNameA(ATOM nAtom,LPSTR lpBuffer,int nSize);
2038
+ WINBASEAPI UINT WINAPI GlobalGetAtomNameW(ATOM nAtom,LPWSTR lpBuffer,int nSize);
2039
+ WINBASEAPI ATOM WINAPI AddAtomA(LPCSTR lpString);
2040
+ WINBASEAPI ATOM WINAPI AddAtomW(LPCWSTR lpString);
2041
+ WINBASEAPI ATOM WINAPI FindAtomA(LPCSTR lpString);
2042
+ WINBASEAPI ATOM WINAPI FindAtomW(LPCWSTR lpString);
2043
+ WINBASEAPI UINT WINAPI GetAtomNameA(ATOM nAtom,LPSTR lpBuffer,int nSize);
2044
+ WINBASEAPI UINT WINAPI GetAtomNameW(ATOM nAtom,LPWSTR lpBuffer,int nSize);
2045
+ WINBASEAPI UINT WINAPI GetProfileIntA(LPCSTR lpAppName,LPCSTR lpKeyName,INT nDefault);
2046
+ WINBASEAPI UINT WINAPI GetProfileIntW(LPCWSTR lpAppName,LPCWSTR lpKeyName,INT nDefault);
2047
+ WINBASEAPI DWORD WINAPI GetProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpDefault,LPSTR lpReturnedString,DWORD nSize);
2048
+ WINBASEAPI DWORD WINAPI GetProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpDefault,LPWSTR lpReturnedString,DWORD nSize);
2049
+ WINBASEAPI WINBOOL WINAPI WriteProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpString);
2050
+ WINBASEAPI WINBOOL WINAPI WriteProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpString);
2051
+ WINBASEAPI DWORD WINAPI GetProfileSectionA(LPCSTR lpAppName,LPSTR lpReturnedString,DWORD nSize);
2052
+ WINBASEAPI DWORD WINAPI GetProfileSectionW(LPCWSTR lpAppName,LPWSTR lpReturnedString,DWORD nSize);
2053
+ WINBASEAPI WINBOOL WINAPI WriteProfileSectionA(LPCSTR lpAppName,LPCSTR lpString);
2054
+ WINBASEAPI WINBOOL WINAPI WriteProfileSectionW(LPCWSTR lpAppName,LPCWSTR lpString);
2055
+ WINBASEAPI UINT WINAPI GetPrivateProfileIntA(LPCSTR lpAppName,LPCSTR lpKeyName,INT nDefault,LPCSTR lpFileName);
2056
+ WINBASEAPI UINT WINAPI GetPrivateProfileIntW(LPCWSTR lpAppName,LPCWSTR lpKeyName,INT nDefault,LPCWSTR lpFileName);
2057
+ WINBASEAPI DWORD WINAPI GetPrivateProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpDefault,LPSTR lpReturnedString,DWORD nSize,LPCSTR lpFileName);
2058
+ WINBASEAPI DWORD WINAPI GetPrivateProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpDefault,LPWSTR lpReturnedString,DWORD nSize,LPCWSTR lpFileName);
2059
+ WINBASEAPI WINBOOL WINAPI WritePrivateProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpString,LPCSTR lpFileName);
2060
+ WINBASEAPI WINBOOL WINAPI WritePrivateProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpString,LPCWSTR lpFileName);
2061
+ WINBASEAPI DWORD WINAPI GetPrivateProfileSectionA(LPCSTR lpAppName,LPSTR lpReturnedString,DWORD nSize,LPCSTR lpFileName);
2062
+ WINBASEAPI DWORD WINAPI GetPrivateProfileSectionW(LPCWSTR lpAppName,LPWSTR lpReturnedString,DWORD nSize,LPCWSTR lpFileName);
2063
+ WINBASEAPI WINBOOL WINAPI WritePrivateProfileSectionA(LPCSTR lpAppName,LPCSTR lpString,LPCSTR lpFileName);
2064
+ WINBASEAPI WINBOOL WINAPI WritePrivateProfileSectionW(LPCWSTR lpAppName,LPCWSTR lpString,LPCWSTR lpFileName);
2065
+ WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR lpszReturnBuffer,DWORD nSize,LPCSTR lpFileName);
2066
+ WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR lpszReturnBuffer,DWORD nSize,LPCWSTR lpFileName);
2067
+ WINBASEAPI WINBOOL WINAPI GetPrivateProfileStructA(LPCSTR lpszSection,LPCSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCSTR szFile);
2068
+ WINBASEAPI WINBOOL WINAPI GetPrivateProfileStructW(LPCWSTR lpszSection,LPCWSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCWSTR szFile);
2069
+ WINBASEAPI WINBOOL WINAPI WritePrivateProfileStructA(LPCSTR lpszSection,LPCSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCSTR szFile);
2070
+ WINBASEAPI WINBOOL WINAPI WritePrivateProfileStructW(LPCWSTR lpszSection,LPCWSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCWSTR szFile);
2071
+ WINBASEAPI UINT WINAPI GetDriveTypeA(LPCSTR lpRootPathName);
2072
+ WINBASEAPI UINT WINAPI GetDriveTypeW(LPCWSTR lpRootPathName);
2073
+ WINBASEAPI UINT WINAPI GetSystemDirectoryA(LPSTR lpBuffer,UINT uSize);
2074
+ WINBASEAPI UINT WINAPI GetSystemDirectoryW(LPWSTR lpBuffer,UINT uSize);
2075
+ WINBASEAPI DWORD WINAPI GetTempPathA(DWORD nBufferLength,LPSTR lpBuffer);
2076
+ WINBASEAPI DWORD WINAPI GetTempPathW(DWORD nBufferLength,LPWSTR lpBuffer);
2077
+ WINBASEAPI UINT WINAPI GetTempFileNameA(LPCSTR lpPathName,LPCSTR lpPrefixString,UINT uUnique,LPSTR lpTempFileName);
2078
+ WINBASEAPI UINT WINAPI GetTempFileNameW(LPCWSTR lpPathName,LPCWSTR lpPrefixString,UINT uUnique,LPWSTR lpTempFileName);
2079
+ WINBASEAPI UINT WINAPI GetWindowsDirectoryA(LPSTR lpBuffer,UINT uSize);
2080
+ WINBASEAPI UINT WINAPI GetWindowsDirectoryW(LPWSTR lpBuffer,UINT uSize);
2081
+ WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA(LPSTR lpBuffer,UINT uSize);
2082
+ WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR lpBuffer,UINT uSize);
2083
+
2084
+ #ifndef RC_INVOKED
2085
+ #ifdef UNICODE
2086
+ #define GetSystemWow64Directory GetSystemWow64DirectoryW
2087
+ #else
2088
+ #define GetSystemWow64Directory GetSystemWow64DirectoryA
2089
+ #endif
2090
+
2091
+ WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA(LPSTR lpBuffer,UINT uSize);
2092
+ WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW(LPWSTR lpBuffer,UINT uSize);
2093
+ WINBASEAPI BOOLEAN WINAPI Wow64EnableWow64FsRedirection(BOOLEAN Wow64FsEnableRedirection);
2094
+ WINBASEAPI WINBOOL WINAPI Wow64DisableWow64FsRedirection(PVOID *OldValue);
2095
+ WINBASEAPI WINBOOL WINAPI Wow64RevertWow64FsRedirection(PVOID OlValue);
2096
+
2097
+ typedef UINT (WINAPI *PGET_SYSTEM_WOW64_DIRECTORY_A)(LPSTR lpBuffer,UINT uSize);
2098
+ typedef UINT (WINAPI *PGET_SYSTEM_WOW64_DIRECTORY_W)(LPWSTR lpBuffer,UINT uSize);
2099
+
2100
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A "GetSystemWow64DirectoryA"
2101
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W L"GetSystemWow64DirectoryA"
2102
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T TEXT("GetSystemWow64DirectoryA")
2103
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A "GetSystemWow64DirectoryW"
2104
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W L"GetSystemWow64DirectoryW"
2105
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T TEXT("GetSystemWow64DirectoryW")
2106
+
2107
+ #ifdef UNICODE
2108
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A
2109
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W
2110
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T
2111
+ #else
2112
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A
2113
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W
2114
+ #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T
2115
+ #endif
2116
+ #endif
2117
+
2118
+ #ifdef UNICODE
2119
+ #define SetCurrentDirectory SetCurrentDirectoryW
2120
+ #define GetCurrentDirectory GetCurrentDirectoryW
2121
+ #define SetDllDirectory SetDllDirectoryW
2122
+ #define GetDllDirectory GetDllDirectoryW
2123
+ #define GetDiskFreeSpace GetDiskFreeSpaceW
2124
+ #define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
2125
+ #define CreateDirectory CreateDirectoryW
2126
+ #define CreateDirectoryEx CreateDirectoryExW
2127
+ #define RemoveDirectory RemoveDirectoryW
2128
+ #define GetFullPathName GetFullPathNameW
2129
+ #define DefineDosDevice DefineDosDeviceW
2130
+ #define QueryDosDevice QueryDosDeviceW
2131
+ #define CreateFile CreateFileW
2132
+ #define SetFileAttributes SetFileAttributesW
2133
+ #define GetFileAttributes GetFileAttributesW
2134
+ #else
2135
+ #define SetCurrentDirectory SetCurrentDirectoryA
2136
+ #define GetCurrentDirectory GetCurrentDirectoryA
2137
+ #define SetDllDirectory SetDllDirectoryA
2138
+ #define GetDllDirectory GetDllDirectoryA
2139
+ #define GetDiskFreeSpace GetDiskFreeSpaceA
2140
+ #define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
2141
+ #define CreateDirectory CreateDirectoryA
2142
+ #define CreateDirectoryEx CreateDirectoryExA
2143
+ #define RemoveDirectory RemoveDirectoryA
2144
+ #define GetFullPathName GetFullPathNameA
2145
+ #define DefineDosDevice DefineDosDeviceA
2146
+ #define QueryDosDevice QueryDosDeviceA
2147
+ #define CreateFile CreateFileA
2148
+ #define SetFileAttributes SetFileAttributesA
2149
+ #define GetFileAttributes GetFileAttributesA
2150
+ #endif
2151
+
2152
+ WINBASEAPI WINBOOL WINAPI SetCurrentDirectoryA(LPCSTR lpPathName);
2153
+ WINBASEAPI WINBOOL WINAPI SetCurrentDirectoryW(LPCWSTR lpPathName);
2154
+ WINBASEAPI DWORD WINAPI GetCurrentDirectoryA(DWORD nBufferLength,LPSTR lpBuffer);
2155
+ WINBASEAPI DWORD WINAPI GetCurrentDirectoryW(DWORD nBufferLength,LPWSTR lpBuffer);
2156
+ WINBASEAPI WINBOOL WINAPI SetDllDirectoryA(LPCSTR lpPathName);
2157
+ WINBASEAPI WINBOOL WINAPI SetDllDirectoryW(LPCWSTR lpPathName);
2158
+ WINBASEAPI DWORD WINAPI GetDllDirectoryA(DWORD nBufferLength,LPSTR lpBuffer);
2159
+ WINBASEAPI DWORD WINAPI GetDllDirectoryW(DWORD nBufferLength,LPWSTR lpBuffer);
2160
+ WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceA(LPCSTR lpRootPathName,LPDWORD lpSectorsPerCluster,LPDWORD lpBytesPerSector,LPDWORD lpNumberOfFreeClusters,LPDWORD lpTotalNumberOfClusters);
2161
+ WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceW(LPCWSTR lpRootPathName,LPDWORD lpSectorsPerCluster,LPDWORD lpBytesPerSector,LPDWORD lpNumberOfFreeClusters,LPDWORD lpTotalNumberOfClusters);
2162
+ WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceExA(LPCSTR lpDirectoryName,PULARGE_INTEGER lpFreeBytesAvailableToCaller,PULARGE_INTEGER lpTotalNumberOfBytes,PULARGE_INTEGER lpTotalNumberOfFreeBytes);
2163
+ WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR lpDirectoryName,PULARGE_INTEGER lpFreeBytesAvailableToCaller,PULARGE_INTEGER lpTotalNumberOfBytes,PULARGE_INTEGER lpTotalNumberOfFreeBytes);
2164
+ WINBASEAPI WINBOOL WINAPI CreateDirectoryA(LPCSTR lpPathName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2165
+ WINBASEAPI WINBOOL WINAPI CreateDirectoryW(LPCWSTR lpPathName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2166
+ WINBASEAPI WINBOOL WINAPI CreateDirectoryExA(LPCSTR lpTemplateDirectory,LPCSTR lpNewDirectory,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2167
+ WINBASEAPI WINBOOL WINAPI CreateDirectoryExW(LPCWSTR lpTemplateDirectory,LPCWSTR lpNewDirectory,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2168
+ WINBASEAPI WINBOOL WINAPI RemoveDirectoryA(LPCSTR lpPathName);
2169
+ WINBASEAPI WINBOOL WINAPI RemoveDirectoryW(LPCWSTR lpPathName);
2170
+ WINBASEAPI DWORD WINAPI GetFullPathNameA(LPCSTR lpFileName,DWORD nBufferLength,LPSTR lpBuffer,LPSTR *lpFilePart);
2171
+ WINBASEAPI DWORD WINAPI GetFullPathNameW(LPCWSTR lpFileName,DWORD nBufferLength,LPWSTR lpBuffer,LPWSTR *lpFilePart);
2172
+
2173
+ #define DDD_RAW_TARGET_PATH 0x1
2174
+ #define DDD_REMOVE_DEFINITION 0x2
2175
+ #define DDD_EXACT_MATCH_ON_REMOVE 0x4
2176
+ #define DDD_NO_BROADCAST_SYSTEM 0x8
2177
+ #define DDD_LUID_BROADCAST_DRIVE 0x10
2178
+
2179
+ WINBASEAPI WINBOOL WINAPI DefineDosDeviceA(DWORD dwFlags,LPCSTR lpDeviceName,LPCSTR lpTargetPath);
2180
+ WINBASEAPI WINBOOL WINAPI DefineDosDeviceW(DWORD dwFlags,LPCWSTR lpDeviceName,LPCWSTR lpTargetPath);
2181
+ WINBASEAPI DWORD WINAPI QueryDosDeviceA(LPCSTR lpDeviceName,LPSTR lpTargetPath,DWORD ucchMax);
2182
+ WINBASEAPI DWORD WINAPI QueryDosDeviceW(LPCWSTR lpDeviceName,LPWSTR lpTargetPath,DWORD ucchMax);
2183
+
2184
+ #define EXPAND_LOCAL_DRIVES
2185
+
2186
+ WINBASEAPI HANDLE WINAPI CreateFileA(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile);
2187
+ WINBASEAPI HANDLE WINAPI CreateFileW(LPCWSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile);
2188
+ WINBASEAPI HANDLE WINAPI ReOpenFile(HANDLE hOriginalFile,DWORD dwDesiredAccess,DWORD dwShareMode,DWORD dwFlagsAndAttributes);
2189
+ WINBASEAPI WINBOOL WINAPI SetFileAttributesA(LPCSTR lpFileName,DWORD dwFileAttributes);
2190
+ WINBASEAPI WINBOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName,DWORD dwFileAttributes);
2191
+ WINBASEAPI DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName);
2192
+ WINBASEAPI DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName);
2193
+
2194
+ typedef enum _GET_FILEEX_INFO_LEVELS {
2195
+ GetFileExInfoStandard,GetFileExMaxInfoLevel
2196
+ } GET_FILEEX_INFO_LEVELS;
2197
+
2198
+ #ifdef UNICODE
2199
+ #define GetFileAttributesEx GetFileAttributesExW
2200
+ #define GetCompressedFileSize GetCompressedFileSizeW
2201
+ #define DeleteFile DeleteFileW
2202
+ #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W
2203
+ #else
2204
+ #define GetFileAttributesEx GetFileAttributesExA
2205
+ #define GetCompressedFileSize GetCompressedFileSizeA
2206
+ #define DeleteFile DeleteFileA
2207
+ #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A
2208
+ #endif
2209
+
2210
+ WINBASEAPI WINBOOL WINAPI GetFileAttributesExA(LPCSTR lpFileName,GET_FILEEX_INFO_LEVELS fInfoLevelId,LPVOID lpFileInformation);
2211
+ WINBASEAPI WINBOOL WINAPI GetFileAttributesExW(LPCWSTR lpFileName,GET_FILEEX_INFO_LEVELS fInfoLevelId,LPVOID lpFileInformation);
2212
+ WINBASEAPI DWORD WINAPI GetCompressedFileSizeA(LPCSTR lpFileName,LPDWORD lpFileSizeHigh);
2213
+ WINBASEAPI DWORD WINAPI GetCompressedFileSizeW(LPCWSTR lpFileName,LPDWORD lpFileSizeHigh);
2214
+ WINBASEAPI WINBOOL WINAPI DeleteFileA(LPCSTR lpFileName);
2215
+ WINBASEAPI WINBOOL WINAPI DeleteFileW(LPCWSTR lpFileName);
2216
+ WINBASEAPI WINBOOL WINAPI CheckNameLegalDOS8Dot3A(LPCSTR lpName,LPSTR lpOemName,DWORD OemNameSize,PBOOL pbNameContainsSpaces,PBOOL pbNameLegal);
2217
+ WINBASEAPI WINBOOL WINAPI CheckNameLegalDOS8Dot3W(LPCWSTR lpName,LPSTR lpOemName,DWORD OemNameSize,PBOOL pbNameContainsSpaces,PBOOL pbNameLegal);
2218
+
2219
+ typedef enum _FINDEX_INFO_LEVELS {
2220
+ FindExInfoStandard,FindExInfoMaxInfoLevel
2221
+ } FINDEX_INFO_LEVELS;
2222
+
2223
+ typedef enum _FINDEX_SEARCH_OPS {
2224
+ FindExSearchNameMatch,FindExSearchLimitToDirectories,FindExSearchLimitToDevices,FindExSearchMaxSearchOp
2225
+ } FINDEX_SEARCH_OPS;
2226
+
2227
+ #define FIND_FIRST_EX_CASE_SENSITIVE 0x1
2228
+
2229
+ #ifdef UNICODE
2230
+ #define FindFirstFileEx FindFirstFileExW
2231
+ #define FindFirstFile FindFirstFileW
2232
+ #define FindNextFile FindNextFileW
2233
+ #define SearchPath SearchPathW
2234
+ #define CopyFile CopyFileW
2235
+ #define CopyFileEx CopyFileExW
2236
+ #define MoveFile MoveFileW
2237
+ #define MoveFileEx MoveFileExW
2238
+ #define MoveFileWithProgress MoveFileWithProgressW
2239
+ #define ReplaceFile ReplaceFileW
2240
+ #define CreateHardLink CreateHardLinkW
2241
+ #define CreateNamedPipe CreateNamedPipeW
2242
+ #define GetNamedPipeHandleState GetNamedPipeHandleStateW
2243
+ #define CallNamedPipe CallNamedPipeW
2244
+ #define WaitNamedPipe WaitNamedPipeW
2245
+ #define SetVolumeLabel SetVolumeLabelW
2246
+ #define GetVolumeInformation GetVolumeInformationW
2247
+ #define ClearEventLog ClearEventLogW
2248
+ #define BackupEventLog BackupEventLogW
2249
+ #define OpenEventLog OpenEventLogW
2250
+ #define RegisterEventSource RegisterEventSourceW
2251
+ #define OpenBackupEventLog OpenBackupEventLogW
2252
+ #define ReadEventLog ReadEventLogW
2253
+ #define ReportEvent ReportEventW
2254
+ #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
2255
+ #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmW
2256
+ #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmW
2257
+ #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleW
2258
+ #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
2259
+ #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
2260
+ #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
2261
+ #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
2262
+ #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
2263
+ #define SetFileSecurity SetFileSecurityW
2264
+ #define GetFileSecurity GetFileSecurityW
2265
+ #define FindFirstChangeNotification FindFirstChangeNotificationW
2266
+ #define IsBadStringPtr IsBadStringPtrW
2267
+ #define LookupAccountSid LookupAccountSidW
2268
+ #define LookupAccountName LookupAccountNameW
2269
+ #define LookupPrivilegeValue LookupPrivilegeValueW
2270
+ #define LookupPrivilegeName LookupPrivilegeNameW
2271
+ #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
2272
+ #define BuildCommDCB BuildCommDCBW
2273
+ #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
2274
+ #define CommConfigDialog CommConfigDialogW
2275
+ #define GetDefaultCommConfig GetDefaultCommConfigW
2276
+ #define SetDefaultCommConfig SetDefaultCommConfigW
2277
+ #define GetComputerName GetComputerNameW
2278
+ #define SetComputerName SetComputerNameW
2279
+ #define GetComputerNameEx GetComputerNameExW
2280
+ #define SetComputerNameEx SetComputerNameExW
2281
+ #define DnsHostnameToComputerName DnsHostnameToComputerNameW
2282
+ #define GetUserName GetUserNameW
2283
+ #else
2284
+ #define FindFirstFileEx FindFirstFileExA
2285
+ #define FindFirstFile FindFirstFileA
2286
+ #define FindNextFile FindNextFileA
2287
+ #define SearchPath SearchPathA
2288
+ #define CopyFile CopyFileA
2289
+ #define CopyFileEx CopyFileExA
2290
+ #define MoveFile MoveFileA
2291
+ #define MoveFileEx MoveFileExA
2292
+ #define MoveFileWithProgress MoveFileWithProgressA
2293
+ #define ReplaceFile ReplaceFileA
2294
+ #define CreateHardLink CreateHardLinkA
2295
+ #define CreateNamedPipe CreateNamedPipeA
2296
+ #define GetNamedPipeHandleState GetNamedPipeHandleStateA
2297
+ #define CallNamedPipe CallNamedPipeA
2298
+ #define WaitNamedPipe WaitNamedPipeA
2299
+ #define SetVolumeLabel SetVolumeLabelA
2300
+ #define GetVolumeInformation GetVolumeInformationA
2301
+ #define ClearEventLog ClearEventLogA
2302
+ #define BackupEventLog BackupEventLogA
2303
+ #define OpenEventLog OpenEventLogA
2304
+ #define RegisterEventSource RegisterEventSourceA
2305
+ #define OpenBackupEventLog OpenBackupEventLogA
2306
+ #define ReadEventLog ReadEventLogA
2307
+ #define ReportEvent ReportEventA
2308
+ #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
2309
+ #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmA
2310
+ #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmA
2311
+ #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleA
2312
+ #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
2313
+ #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
2314
+ #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
2315
+ #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
2316
+ #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
2317
+ #define SetFileSecurity SetFileSecurityA
2318
+ #define GetFileSecurity GetFileSecurityA
2319
+ #define FindFirstChangeNotification FindFirstChangeNotificationA
2320
+ #define IsBadStringPtr IsBadStringPtrA
2321
+ #define LookupAccountSid LookupAccountSidA
2322
+ #define LookupAccountName LookupAccountNameA
2323
+ #define LookupPrivilegeValue LookupPrivilegeValueA
2324
+ #define LookupPrivilegeName LookupPrivilegeNameA
2325
+ #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
2326
+ #define BuildCommDCB BuildCommDCBA
2327
+ #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
2328
+ #define CommConfigDialog CommConfigDialogA
2329
+ #define GetDefaultCommConfig GetDefaultCommConfigA
2330
+ #define SetDefaultCommConfig SetDefaultCommConfigA
2331
+ #define GetComputerName GetComputerNameA
2332
+ #define SetComputerName SetComputerNameA
2333
+ #define GetComputerNameEx GetComputerNameExA
2334
+ #define SetComputerNameEx SetComputerNameExA
2335
+ #define DnsHostnameToComputerName DnsHostnameToComputerNameA
2336
+ #define GetUserName GetUserNameA
2337
+ #endif
2338
+
2339
+ WINBASEAPI HANDLE WINAPI FindFirstFileExA(LPCSTR lpFileName,FINDEX_INFO_LEVELS fInfoLevelId,LPVOID lpFindFileData,FINDEX_SEARCH_OPS fSearchOp,LPVOID lpSearchFilter,DWORD dwAdditionalFlags);
2340
+ WINBASEAPI HANDLE WINAPI FindFirstFileExW(LPCWSTR lpFileName,FINDEX_INFO_LEVELS fInfoLevelId,LPVOID lpFindFileData,FINDEX_SEARCH_OPS fSearchOp,LPVOID lpSearchFilter,DWORD dwAdditionalFlags);
2341
+ WINBASEAPI HANDLE WINAPI FindFirstFileA(LPCSTR lpFileName,LPWIN32_FIND_DATAA lpFindFileData);
2342
+ WINBASEAPI HANDLE WINAPI FindFirstFileW(LPCWSTR lpFileName,LPWIN32_FIND_DATAW lpFindFileData);
2343
+ WINBASEAPI WINBOOL WINAPI FindNextFileA(HANDLE hFindFile,LPWIN32_FIND_DATAA lpFindFileData);
2344
+ WINBASEAPI WINBOOL WINAPI FindNextFileW(HANDLE hFindFile,LPWIN32_FIND_DATAW lpFindFileData);
2345
+ WINBASEAPI DWORD WINAPI SearchPathA(LPCSTR lpPath,LPCSTR lpFileName,LPCSTR lpExtension,DWORD nBufferLength,LPSTR lpBuffer,LPSTR *lpFilePart);
2346
+ WINBASEAPI DWORD WINAPI SearchPathW(LPCWSTR lpPath,LPCWSTR lpFileName,LPCWSTR lpExtension,DWORD nBufferLength,LPWSTR lpBuffer,LPWSTR *lpFilePart);
2347
+ WINBASEAPI WINBOOL WINAPI CopyFileA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,WINBOOL bFailIfExists);
2348
+ WINBASEAPI WINBOOL WINAPI CopyFileW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,WINBOOL bFailIfExists);
2349
+
2350
+ typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER TotalFileSize,LARGE_INTEGER TotalBytesTransferred,LARGE_INTEGER StreamSize,LARGE_INTEGER StreamBytesTransferred,DWORD dwStreamNumber,DWORD dwCallbackReason,HANDLE hSourceFile,HANDLE hDestinationFile,LPVOID lpData);
2351
+
2352
+ WINBASEAPI WINBOOL WINAPI CopyFileExA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,LPBOOL pbCancel,DWORD dwCopyFlags);
2353
+ WINBASEAPI WINBOOL WINAPI CopyFileExW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,LPBOOL pbCancel,DWORD dwCopyFlags);
2354
+ WINBASEAPI WINBOOL WINAPI MoveFileA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName);
2355
+ WINBASEAPI WINBOOL WINAPI MoveFileW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName);
2356
+ WINBASEAPI WINBOOL WINAPI MoveFileExA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,DWORD dwFlags);
2357
+ WINBASEAPI WINBOOL WINAPI MoveFileExW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,DWORD dwFlags);
2358
+ WINBASEAPI WINBOOL WINAPI MoveFileWithProgressA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,DWORD dwFlags);
2359
+ WINBASEAPI WINBOOL WINAPI MoveFileWithProgressW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,DWORD dwFlags);
2360
+
2361
+ #define MOVEFILE_REPLACE_EXISTING 0x1
2362
+ #define MOVEFILE_COPY_ALLOWED 0x2
2363
+ #define MOVEFILE_DELAY_UNTIL_REBOOT 0x4
2364
+ #define MOVEFILE_WRITE_THROUGH 0x8
2365
+ #define MOVEFILE_CREATE_HARDLINK 0x10
2366
+ #define MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x20
2367
+
2368
+ WINBASEAPI WINBOOL WINAPI ReplaceFileA(LPCSTR lpReplacedFileName,LPCSTR lpReplacementFileName,LPCSTR lpBackupFileName,DWORD dwReplaceFlags,LPVOID lpExclude,LPVOID lpReserved);
2369
+ WINBASEAPI WINBOOL WINAPI ReplaceFileW(LPCWSTR lpReplacedFileName,LPCWSTR lpReplacementFileName,LPCWSTR lpBackupFileName,DWORD dwReplaceFlags,LPVOID lpExclude,LPVOID lpReserved);
2370
+ WINBASEAPI WINBOOL WINAPI CreateHardLinkA(LPCSTR lpFileName,LPCSTR lpExistingFileName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2371
+ WINBASEAPI WINBOOL WINAPI CreateHardLinkW(LPCWSTR lpFileName,LPCWSTR lpExistingFileName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2372
+
2373
+ typedef enum _STREAM_INFO_LEVELS {
2374
+ FindStreamInfoStandard,FindStreamInfoMaxInfoLevel
2375
+ } STREAM_INFO_LEVELS;
2376
+
2377
+ typedef struct _WIN32_FIND_STREAM_DATA {
2378
+ LARGE_INTEGER StreamSize;
2379
+ WCHAR cStreamName[MAX_PATH + 36];
2380
+ } WIN32_FIND_STREAM_DATA,*PWIN32_FIND_STREAM_DATA;
2381
+
2382
+ HANDLE WINAPI FindFirstStreamW(LPCWSTR lpFileName,STREAM_INFO_LEVELS InfoLevel,LPVOID lpFindStreamData,DWORD dwFlags);
2383
+ WINBOOL WINAPI FindNextStreamW(HANDLE hFindStream,LPVOID lpFindStreamData);
2384
+ WINBASEAPI HANDLE WINAPI CreateNamedPipeA(LPCSTR lpName,DWORD dwOpenMode,DWORD dwPipeMode,DWORD nMaxInstances,DWORD nOutBufferSize,DWORD nInBufferSize,DWORD nDefaultTimeOut,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2385
+ WINBASEAPI HANDLE WINAPI CreateNamedPipeW(LPCWSTR lpName,DWORD dwOpenMode,DWORD dwPipeMode,DWORD nMaxInstances,DWORD nOutBufferSize,DWORD nInBufferSize,DWORD nDefaultTimeOut,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2386
+ WINBASEAPI WINBOOL WINAPI GetNamedPipeHandleStateA(HANDLE hNamedPipe,LPDWORD lpState,LPDWORD lpCurInstances,LPDWORD lpMaxCollectionCount,LPDWORD lpCollectDataTimeout,LPSTR lpUserName,DWORD nMaxUserNameSize);
2387
+ WINBASEAPI WINBOOL WINAPI GetNamedPipeHandleStateW(HANDLE hNamedPipe,LPDWORD lpState,LPDWORD lpCurInstances,LPDWORD lpMaxCollectionCount,LPDWORD lpCollectDataTimeout,LPWSTR lpUserName,DWORD nMaxUserNameSize);
2388
+ WINBASEAPI WINBOOL WINAPI CallNamedPipeA(LPCSTR lpNamedPipeName,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesRead,DWORD nTimeOut);
2389
+ WINBASEAPI WINBOOL WINAPI CallNamedPipeW(LPCWSTR lpNamedPipeName,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesRead,DWORD nTimeOut);
2390
+ WINBASEAPI WINBOOL WINAPI WaitNamedPipeA(LPCSTR lpNamedPipeName,DWORD nTimeOut);
2391
+ WINBASEAPI WINBOOL WINAPI WaitNamedPipeW(LPCWSTR lpNamedPipeName,DWORD nTimeOut);
2392
+ WINBASEAPI WINBOOL WINAPI SetVolumeLabelA(LPCSTR lpRootPathName,LPCSTR lpVolumeName);
2393
+ WINBASEAPI WINBOOL WINAPI SetVolumeLabelW(LPCWSTR lpRootPathName,LPCWSTR lpVolumeName);
2394
+ WINBASEAPI VOID WINAPI SetFileApisToOEM(VOID);
2395
+ WINBASEAPI VOID WINAPI SetFileApisToANSI(VOID);
2396
+ WINBASEAPI WINBOOL WINAPI AreFileApisANSI(VOID);
2397
+ WINBASEAPI WINBOOL WINAPI GetVolumeInformationA(LPCSTR lpRootPathName,LPSTR lpVolumeNameBuffer,DWORD nVolumeNameSize,LPDWORD lpVolumeSerialNumber,LPDWORD lpMaximumComponentLength,LPDWORD lpFileSystemFlags,LPSTR lpFileSystemNameBuffer,DWORD nFileSystemNameSize);
2398
+ WINBASEAPI WINBOOL WINAPI GetVolumeInformationW(LPCWSTR lpRootPathName,LPWSTR lpVolumeNameBuffer,DWORD nVolumeNameSize,LPDWORD lpVolumeSerialNumber,LPDWORD lpMaximumComponentLength,LPDWORD lpFileSystemFlags,LPWSTR lpFileSystemNameBuffer,DWORD nFileSystemNameSize);
2399
+ WINBASEAPI WINBOOL WINAPI CancelIo(HANDLE hFile);
2400
+ WINADVAPI WINBOOL WINAPI ClearEventLogA(HANDLE hEventLog,LPCSTR lpBackupFileName);
2401
+ WINADVAPI WINBOOL WINAPI ClearEventLogW(HANDLE hEventLog,LPCWSTR lpBackupFileName);
2402
+ WINADVAPI WINBOOL WINAPI BackupEventLogA(HANDLE hEventLog,LPCSTR lpBackupFileName);
2403
+ WINADVAPI WINBOOL WINAPI BackupEventLogW(HANDLE hEventLog,LPCWSTR lpBackupFileName);
2404
+ WINADVAPI WINBOOL WINAPI CloseEventLog(HANDLE hEventLog);
2405
+ WINADVAPI WINBOOL WINAPI DeregisterEventSource(HANDLE hEventLog);
2406
+ WINADVAPI WINBOOL WINAPI NotifyChangeEventLog(HANDLE hEventLog,HANDLE hEvent);
2407
+ WINADVAPI WINBOOL WINAPI GetNumberOfEventLogRecords(HANDLE hEventLog,PDWORD NumberOfRecords);
2408
+ WINADVAPI WINBOOL WINAPI GetOldestEventLogRecord(HANDLE hEventLog,PDWORD OldestRecord);
2409
+ WINADVAPI HANDLE WINAPI OpenEventLogA(LPCSTR lpUNCServerName,LPCSTR lpSourceName);
2410
+ WINADVAPI HANDLE WINAPI OpenEventLogW(LPCWSTR lpUNCServerName,LPCWSTR lpSourceName);
2411
+ WINADVAPI HANDLE WINAPI RegisterEventSourceA(LPCSTR lpUNCServerName,LPCSTR lpSourceName);
2412
+ WINADVAPI HANDLE WINAPI RegisterEventSourceW(LPCWSTR lpUNCServerName,LPCWSTR lpSourceName);
2413
+ WINADVAPI HANDLE WINAPI OpenBackupEventLogA(LPCSTR lpUNCServerName,LPCSTR lpFileName);
2414
+ WINADVAPI HANDLE WINAPI OpenBackupEventLogW(LPCWSTR lpUNCServerName,LPCWSTR lpFileName);
2415
+ WINADVAPI WINBOOL WINAPI ReadEventLogA(HANDLE hEventLog,DWORD dwReadFlags,DWORD dwRecordOffset,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,DWORD *pnBytesRead,DWORD *pnMinNumberOfBytesNeeded);
2416
+ WINADVAPI WINBOOL WINAPI ReadEventLogW(HANDLE hEventLog,DWORD dwReadFlags,DWORD dwRecordOffset,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,DWORD *pnBytesRead,DWORD *pnMinNumberOfBytesNeeded);
2417
+ WINADVAPI WINBOOL WINAPI ReportEventA(HANDLE hEventLog,WORD wType,WORD wCategory,DWORD dwEventID,PSID lpUserSid,WORD wNumStrings,DWORD dwDataSize,LPCSTR *lpStrings,LPVOID lpRawData);
2418
+ WINADVAPI WINBOOL WINAPI ReportEventW(HANDLE hEventLog,WORD wType,WORD wCategory,DWORD dwEventID,PSID lpUserSid,WORD wNumStrings,DWORD dwDataSize,LPCWSTR *lpStrings,LPVOID lpRawData);
2419
+
2420
+ #define EVENTLOG_FULL_INFO 0
2421
+
2422
+ typedef struct _EVENTLOG_FULL_INFORMATION {
2423
+ DWORD dwFull;
2424
+ } EVENTLOG_FULL_INFORMATION,*LPEVENTLOG_FULL_INFORMATION;
2425
+
2426
+ WINADVAPI WINBOOL WINAPI GetEventLogInformation(HANDLE hEventLog,DWORD dwInfoLevel,LPVOID lpBuffer,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
2427
+ WINADVAPI WINBOOL WINAPI DuplicateToken(HANDLE ExistingTokenHandle,SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,PHANDLE DuplicateTokenHandle);
2428
+ WINADVAPI WINBOOL WINAPI GetKernelObjectSecurity(HANDLE Handle,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded);
2429
+ WINADVAPI WINBOOL WINAPI ImpersonateNamedPipeClient(HANDLE hNamedPipe);
2430
+ WINADVAPI WINBOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel);
2431
+ WINADVAPI WINBOOL WINAPI RevertToSelf(VOID);
2432
+ WINADVAPI WINBOOL WINAPI SetThreadToken (PHANDLE Thread,HANDLE Token);
2433
+ WINADVAPI WINBOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR pSecurityDescriptor,HANDLE ClientToken,DWORD DesiredAccess,PGENERIC_MAPPING GenericMapping,PPRIVILEGE_SET PrivilegeSet,LPDWORD PrivilegeSetLength,LPDWORD GrantedAccess,LPBOOL AccessStatus);
2434
+ WINADVAPI WINBOOL WINAPI AccessCheckByType(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID PrincipalSelfSid,HANDLE ClientToken,DWORD DesiredAccess,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,PPRIVILEGE_SET PrivilegeSet,LPDWORD PrivilegeSetLength,LPDWORD GrantedAccess,LPBOOL AccessStatus);
2435
+ WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultList(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID PrincipalSelfSid,HANDLE ClientToken,DWORD DesiredAccess,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,PPRIVILEGE_SET PrivilegeSet,LPDWORD PrivilegeSetLength,LPDWORD GrantedAccessList,LPDWORD AccessStatusList);
2436
+ WINADVAPI WINBOOL WINAPI OpenProcessToken(HANDLE ProcessHandle,DWORD DesiredAccess,PHANDLE TokenHandle);
2437
+ WINADVAPI WINBOOL WINAPI OpenThreadToken(HANDLE ThreadHandle,DWORD DesiredAccess,WINBOOL OpenAsSelf,PHANDLE TokenHandle);
2438
+ WINADVAPI WINBOOL WINAPI GetTokenInformation(HANDLE TokenHandle,TOKEN_INFORMATION_CLASS TokenInformationClass,LPVOID TokenInformation,DWORD TokenInformationLength,PDWORD ReturnLength);
2439
+ WINADVAPI WINBOOL WINAPI SetTokenInformation(HANDLE TokenHandle,TOKEN_INFORMATION_CLASS TokenInformationClass,LPVOID TokenInformation,DWORD TokenInformationLength);
2440
+ WINADVAPI WINBOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle,WINBOOL DisableAllPrivileges,PTOKEN_PRIVILEGES NewState,DWORD BufferLength,PTOKEN_PRIVILEGES PreviousState,PDWORD ReturnLength);
2441
+ WINADVAPI WINBOOL WINAPI AdjustTokenGroups(HANDLE TokenHandle,WINBOOL ResetToDefault,PTOKEN_GROUPS NewState,DWORD BufferLength,PTOKEN_GROUPS PreviousState,PDWORD ReturnLength);
2442
+ WINADVAPI WINBOOL WINAPI PrivilegeCheck(HANDLE ClientToken,PPRIVILEGE_SET RequiredPrivileges,LPBOOL pfResult);
2443
+ WINADVAPI WINBOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPSTR ObjectTypeName,LPSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,DWORD DesiredAccess,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2444
+ WINADVAPI WINBOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPWSTR ObjectTypeName,LPWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,DWORD DesiredAccess,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2445
+ WINADVAPI WINBOOL WINAPI AccessCheckByTypeAndAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPCSTR ObjectTypeName,LPCSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2446
+ WINADVAPI WINBOOL WINAPI AccessCheckByTypeAndAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPCWSTR ObjectTypeName,LPCWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2447
+ WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPCSTR ObjectTypeName,LPCSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2448
+ WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPCWSTR ObjectTypeName,LPCWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2449
+ WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleA(LPCSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,LPCSTR ObjectTypeName,LPCSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2450
+ WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleW(LPCWSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,LPCWSTR ObjectTypeName,LPCWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2451
+ WINADVAPI WINBOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPSTR ObjectTypeName,LPSTR ObjectName,PSECURITY_DESCRIPTOR pSecurityDescriptor,HANDLE ClientToken,DWORD DesiredAccess,DWORD GrantedAccess,PPRIVILEGE_SET Privileges,WINBOOL ObjectCreation,WINBOOL AccessGranted,LPBOOL GenerateOnClose);
2452
+ WINADVAPI WINBOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPWSTR ObjectTypeName,LPWSTR ObjectName,PSECURITY_DESCRIPTOR pSecurityDescriptor,HANDLE ClientToken,DWORD DesiredAccess,DWORD GrantedAccess,PPRIVILEGE_SET Privileges,WINBOOL ObjectCreation,WINBOOL AccessGranted,LPBOOL GenerateOnClose);
2453
+ WINADVAPI WINBOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,DWORD DesiredAccess,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2454
+ WINADVAPI WINBOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,DWORD DesiredAccess,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2455
+ WINADVAPI WINBOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2456
+ WINADVAPI WINBOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2457
+ WINADVAPI WINBOOL WINAPI ObjectDeleteAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2458
+ WINADVAPI WINBOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2459
+ WINADVAPI WINBOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR SubsystemName,LPCSTR ServiceName,HANDLE ClientToken,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2460
+ WINADVAPI WINBOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR SubsystemName,LPCWSTR ServiceName,HANDLE ClientToken,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2461
+ WINADVAPI WINBOOL WINAPI IsWellKnownSid(PSID pSid,WELL_KNOWN_SID_TYPE WellKnownSidType);
2462
+ WINADVAPI WINBOOL WINAPI CreateWellKnownSid(WELL_KNOWN_SID_TYPE WellKnownSidType,PSID DomainSid,PSID pSid,DWORD *cbSid);
2463
+ WINADVAPI WINBOOL WINAPI EqualDomainSid(PSID pSid1,PSID pSid2,WINBOOL *pfEqual);
2464
+ WINADVAPI WINBOOL WINAPI GetWindowsAccountDomainSid(PSID pSid,PSID pDomainSid,DWORD *cbDomainSid);
2465
+ WINADVAPI WINBOOL WINAPI IsValidSid(PSID pSid);
2466
+ WINADVAPI WINBOOL WINAPI EqualSid(PSID pSid1,PSID pSid2);
2467
+ WINADVAPI WINBOOL WINAPI EqualPrefixSid(PSID pSid1,PSID pSid2);
2468
+ WINADVAPI DWORD WINAPI GetSidLengthRequired (UCHAR nSubAuthorityCount);
2469
+ WINADVAPI WINBOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,BYTE nSubAuthorityCount,DWORD nSubAuthority0,DWORD nSubAuthority1,DWORD nSubAuthority2,DWORD nSubAuthority3,DWORD nSubAuthority4,DWORD nSubAuthority5,DWORD nSubAuthority6,DWORD nSubAuthority7,PSID *pSid);
2470
+ WINADVAPI PVOID WINAPI FreeSid(PSID pSid);
2471
+ WINADVAPI WINBOOL WINAPI InitializeSid(PSID Sid,PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,BYTE nSubAuthorityCount);
2472
+ WINADVAPI PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID pSid);
2473
+ WINADVAPI PDWORD WINAPI GetSidSubAuthority(PSID pSid,DWORD nSubAuthority);
2474
+ WINADVAPI PUCHAR WINAPI GetSidSubAuthorityCount(PSID pSid);
2475
+ WINADVAPI DWORD WINAPI GetLengthSid(PSID pSid);
2476
+ WINADVAPI WINBOOL WINAPI CopySid(DWORD nDestinationSidLength,PSID pDestinationSid,PSID pSourceSid);
2477
+ WINADVAPI WINBOOL WINAPI AreAllAccessesGranted(DWORD GrantedAccess,DWORD DesiredAccess);
2478
+ WINADVAPI WINBOOL WINAPI AreAnyAccessesGranted(DWORD GrantedAccess,DWORD DesiredAccess);
2479
+ WINADVAPI VOID WINAPI MapGenericMask(PDWORD AccessMask,PGENERIC_MAPPING GenericMapping);
2480
+ WINADVAPI WINBOOL WINAPI IsValidAcl(PACL pAcl);
2481
+ WINADVAPI WINBOOL WINAPI InitializeAcl(PACL pAcl,DWORD nAclLength,DWORD dwAclRevision);
2482
+ WINADVAPI WINBOOL WINAPI GetAclInformation(PACL pAcl,LPVOID pAclInformation,DWORD nAclInformationLength,ACL_INFORMATION_CLASS dwAclInformationClass);
2483
+ WINADVAPI WINBOOL WINAPI SetAclInformation(PACL pAcl,LPVOID pAclInformation,DWORD nAclInformationLength,ACL_INFORMATION_CLASS dwAclInformationClass);
2484
+ WINADVAPI WINBOOL WINAPI AddAce(PACL pAcl,DWORD dwAceRevision,DWORD dwStartingAceIndex,LPVOID pAceList,DWORD nAceListLength);
2485
+ WINADVAPI WINBOOL WINAPI DeleteAce(PACL pAcl,DWORD dwAceIndex);
2486
+ WINADVAPI WINBOOL WINAPI GetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce);
2487
+ WINADVAPI WINBOOL WINAPI AddAccessAllowedAce(PACL pAcl,DWORD dwAceRevision,DWORD AccessMask,PSID pSid);
2488
+ WINADVAPI WINBOOL WINAPI AddAccessAllowedAceEx(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,PSID pSid);
2489
+ WINADVAPI WINBOOL WINAPI AddAccessDeniedAce(PACL pAcl,DWORD dwAceRevision,DWORD AccessMask,PSID pSid);
2490
+ WINADVAPI WINBOOL WINAPI AddAccessDeniedAceEx(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,PSID pSid);
2491
+ WINADVAPI WINBOOL WINAPI AddAuditAccessAce(PACL pAcl,DWORD dwAceRevision,DWORD dwAccessMask,PSID pSid,WINBOOL bAuditSuccess,WINBOOL bAuditFailure);
2492
+ WINADVAPI WINBOOL WINAPI AddAuditAccessAceEx(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD dwAccessMask,PSID pSid,WINBOOL bAuditSuccess,WINBOOL bAuditFailure);
2493
+ WINADVAPI WINBOOL WINAPI AddAccessAllowedObjectAce(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,GUID *ObjectTypeGuid,GUID *InheritedObjectTypeGuid,PSID pSid);
2494
+ WINADVAPI WINBOOL WINAPI AddAccessDeniedObjectAce(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,GUID *ObjectTypeGuid,GUID *InheritedObjectTypeGuid,PSID pSid);
2495
+ WINADVAPI WINBOOL WINAPI AddAuditAccessObjectAce(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,GUID *ObjectTypeGuid,GUID *InheritedObjectTypeGuid,PSID pSid,WINBOOL bAuditSuccess,WINBOOL bAuditFailure);
2496
+ WINADVAPI WINBOOL WINAPI FindFirstFreeAce(PACL pAcl,LPVOID *pAce);
2497
+ WINADVAPI WINBOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD dwRevision);
2498
+ WINADVAPI WINBOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor);
2499
+ WINADVAPI DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR pSecurityDescriptor);
2500
+ WINADVAPI WINBOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSECURITY_DESCRIPTOR_CONTROL pControl,LPDWORD lpdwRevision);
2501
+ WINADVAPI WINBOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor,SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet);
2502
+ WINADVAPI WINBOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,WINBOOL bDaclPresent,PACL pDacl,WINBOOL bDaclDefaulted);
2503
+ WINADVAPI WINBOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,LPBOOL lpbDaclPresent,PACL *pDacl,LPBOOL lpbDaclDefaulted);
2504
+ WINADVAPI WINBOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,WINBOOL bSaclPresent,PACL pSacl,WINBOOL bSaclDefaulted);
2505
+ WINADVAPI WINBOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,LPBOOL lpbSaclPresent,PACL *pSacl,LPBOOL lpbSaclDefaulted);
2506
+ WINADVAPI WINBOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID pOwner,WINBOOL bOwnerDefaulted);
2507
+ WINADVAPI WINBOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID *pOwner,LPBOOL lpbOwnerDefaulted);
2508
+ WINADVAPI WINBOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID pGroup,WINBOOL bGroupDefaulted);
2509
+ WINADVAPI WINBOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID *pGroup,LPBOOL lpbGroupDefaulted);
2510
+ WINADVAPI DWORD WINAPI SetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,PUCHAR RMControl);
2511
+ WINADVAPI DWORD WINAPI GetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,PUCHAR RMControl);
2512
+ WINADVAPI WINBOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CreatorDescriptor,PSECURITY_DESCRIPTOR *NewDescriptor,WINBOOL IsDirectoryObject,HANDLE Token,PGENERIC_MAPPING GenericMapping);
2513
+ WINADVAPI WINBOOL WINAPI ConvertToAutoInheritPrivateObjectSecurity(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CurrentSecurityDescriptor,PSECURITY_DESCRIPTOR *NewSecurityDescriptor,GUID *ObjectType,BOOLEAN IsDirectoryObject,PGENERIC_MAPPING GenericMapping);
2514
+ WINADVAPI WINBOOL WINAPI CreatePrivateObjectSecurityEx(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CreatorDescriptor,PSECURITY_DESCRIPTOR *NewDescriptor,GUID *ObjectType,WINBOOL IsContainerObject,ULONG AutoInheritFlags,HANDLE Token,PGENERIC_MAPPING GenericMapping);
2515
+ WINADVAPI WINBOOL WINAPI CreatePrivateObjectSecurityWithMultipleInheritance(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CreatorDescriptor,PSECURITY_DESCRIPTOR *NewDescriptor,GUID **ObjectTypes,ULONG GuidCount,WINBOOL IsContainerObject,ULONG AutoInheritFlags,HANDLE Token,PGENERIC_MAPPING GenericMapping);
2516
+ WINADVAPI WINBOOL WINAPI SetPrivateObjectSecurity (SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR ModificationDescriptor,PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,PGENERIC_MAPPING GenericMapping,HANDLE Token);
2517
+ WINADVAPI WINBOOL WINAPI SetPrivateObjectSecurityEx (SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR ModificationDescriptor,PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,ULONG AutoInheritFlags,PGENERIC_MAPPING GenericMapping,HANDLE Token);
2518
+ WINADVAPI WINBOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR ObjectDescriptor,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR ResultantDescriptor,DWORD DescriptorLength,PDWORD ReturnLength);
2519
+ WINADVAPI WINBOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR *ObjectDescriptor);
2520
+ WINADVAPI WINBOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,LPDWORD lpdwBufferLength);
2521
+ WINADVAPI WINBOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,LPDWORD lpdwAbsoluteSecurityDescriptorSize,PACL pDacl,LPDWORD lpdwDaclSize,PACL pSacl,LPDWORD lpdwSaclSize,PSID pOwner,LPDWORD lpdwOwnerSize,PSID pPrimaryGroup,LPDWORD lpdwPrimaryGroupSize);
2522
+ WINADVAPI WINBOOL WINAPI MakeAbsoluteSD2(PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,LPDWORD lpdwBufferSize);
2523
+ WINADVAPI WINBOOL WINAPI SetFileSecurityA(LPCSTR lpFileName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor);
2524
+ WINADVAPI WINBOOL WINAPI SetFileSecurityW(LPCWSTR lpFileName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor);
2525
+ WINADVAPI WINBOOL WINAPI GetFileSecurityA(LPCSTR lpFileName,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded);
2526
+ WINADVAPI WINBOOL WINAPI GetFileSecurityW(LPCWSTR lpFileName,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded);
2527
+ WINADVAPI WINBOOL WINAPI SetKernelObjectSecurity(HANDLE Handle,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR SecurityDescriptor);
2528
+ WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR lpPathName,WINBOOL bWatchSubtree,DWORD dwNotifyFilter);
2529
+ WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR lpPathName,WINBOOL bWatchSubtree,DWORD dwNotifyFilter);
2530
+ WINBASEAPI WINBOOL WINAPI FindNextChangeNotification(HANDLE hChangeHandle);
2531
+ WINBASEAPI WINBOOL WINAPI FindCloseChangeNotification(HANDLE hChangeHandle);
2532
+ WINBASEAPI WINBOOL WINAPI ReadDirectoryChangesW(HANDLE hDirectory,LPVOID lpBuffer,DWORD nBufferLength,WINBOOL bWatchSubtree,DWORD dwNotifyFilter,LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped,LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
2533
+ WINBASEAPI WINBOOL WINAPI VirtualLock(LPVOID lpAddress,SIZE_T dwSize);
2534
+ WINBASEAPI WINBOOL WINAPI VirtualUnlock(LPVOID lpAddress,SIZE_T dwSize);
2535
+ WINBASEAPI LPVOID WINAPI MapViewOfFileEx(HANDLE hFileMappingObject,DWORD dwDesiredAccess,DWORD dwFileOffsetHigh,DWORD dwFileOffsetLow,SIZE_T dwNumberOfBytesToMap,LPVOID lpBaseAddress);
2536
+ WINBASEAPI WINBOOL WINAPI SetPriorityClass(HANDLE hProcess,DWORD dwPriorityClass);
2537
+ WINBASEAPI DWORD WINAPI GetPriorityClass(HANDLE hProcess);
2538
+ WINBASEAPI WINBOOL WINAPI IsBadReadPtr(CONST VOID *lp,UINT_PTR ucb);
2539
+ WINBASEAPI WINBOOL WINAPI IsBadWritePtr(LPVOID lp,UINT_PTR ucb);
2540
+ WINBASEAPI WINBOOL WINAPI IsBadHugeReadPtr(CONST VOID *lp,UINT_PTR ucb);
2541
+ WINBASEAPI WINBOOL WINAPI IsBadHugeWritePtr(LPVOID lp,UINT_PTR ucb);
2542
+ WINBASEAPI WINBOOL WINAPI IsBadCodePtr(FARPROC lpfn);
2543
+ WINBASEAPI WINBOOL WINAPI IsBadStringPtrA(LPCSTR lpsz,UINT_PTR ucchMax);
2544
+ WINBASEAPI WINBOOL WINAPI IsBadStringPtrW(LPCWSTR lpsz,UINT_PTR ucchMax);
2545
+ WINADVAPI WINBOOL WINAPI LookupAccountSidA(LPCSTR lpSystemName,PSID Sid,LPSTR Name,LPDWORD cchName,LPSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2546
+ WINADVAPI WINBOOL WINAPI LookupAccountSidW(LPCWSTR lpSystemName,PSID Sid,LPWSTR Name,LPDWORD cchName,LPWSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2547
+ WINADVAPI WINBOOL WINAPI LookupAccountNameA(LPCSTR lpSystemName,LPCSTR lpAccountName,PSID Sid,LPDWORD cbSid,LPSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2548
+ WINADVAPI WINBOOL WINAPI LookupAccountNameW(LPCWSTR lpSystemName,LPCWSTR lpAccountName,PSID Sid,LPDWORD cbSid,LPWSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2549
+ WINADVAPI WINBOOL WINAPI LookupPrivilegeValueA(LPCSTR lpSystemName,LPCSTR lpName,PLUID lpLuid);
2550
+ WINADVAPI WINBOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName,LPCWSTR lpName,PLUID lpLuid);
2551
+ WINADVAPI WINBOOL WINAPI LookupPrivilegeNameA(LPCSTR lpSystemName,PLUID lpLuid,LPSTR lpName,LPDWORD cchName);
2552
+ WINADVAPI WINBOOL WINAPI LookupPrivilegeNameW(LPCWSTR lpSystemName,PLUID lpLuid,LPWSTR lpName,LPDWORD cchName);
2553
+ WINADVAPI WINBOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR lpSystemName,LPCSTR lpName,LPSTR lpDisplayName,LPDWORD cchDisplayName,LPDWORD lpLanguageId);
2554
+ WINADVAPI WINBOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR lpSystemName,LPCWSTR lpName,LPWSTR lpDisplayName,LPDWORD cchDisplayName,LPDWORD lpLanguageId);
2555
+ WINADVAPI WINBOOL WINAPI AllocateLocallyUniqueId(PLUID Luid);
2556
+ WINBASEAPI WINBOOL WINAPI BuildCommDCBA(LPCSTR lpDef,LPDCB lpDCB);
2557
+ WINBASEAPI WINBOOL WINAPI BuildCommDCBW(LPCWSTR lpDef,LPDCB lpDCB);
2558
+ WINBASEAPI WINBOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR lpDef,LPDCB lpDCB,LPCOMMTIMEOUTS lpCommTimeouts);
2559
+ WINBASEAPI WINBOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR lpDef,LPDCB lpDCB,LPCOMMTIMEOUTS lpCommTimeouts);
2560
+ WINBASEAPI WINBOOL WINAPI CommConfigDialogA(LPCSTR lpszName,HWND hWnd,LPCOMMCONFIG lpCC);
2561
+ WINBASEAPI WINBOOL WINAPI CommConfigDialogW(LPCWSTR lpszName,HWND hWnd,LPCOMMCONFIG lpCC);
2562
+ WINBASEAPI WINBOOL WINAPI GetDefaultCommConfigA(LPCSTR lpszName,LPCOMMCONFIG lpCC,LPDWORD lpdwSize);
2563
+ WINBASEAPI WINBOOL WINAPI GetDefaultCommConfigW(LPCWSTR lpszName,LPCOMMCONFIG lpCC,LPDWORD lpdwSize);
2564
+ WINBASEAPI WINBOOL WINAPI SetDefaultCommConfigA(LPCSTR lpszName,LPCOMMCONFIG lpCC,DWORD dwSize);
2565
+ WINBASEAPI WINBOOL WINAPI SetDefaultCommConfigW(LPCWSTR lpszName,LPCOMMCONFIG lpCC,DWORD dwSize);
2566
+
2567
+ #define MAX_COMPUTERNAME_LENGTH 15
2568
+
2569
+ WINBASEAPI WINBOOL WINAPI GetComputerNameA(LPSTR lpBuffer,LPDWORD nSize);
2570
+ WINBASEAPI WINBOOL WINAPI GetComputerNameW(LPWSTR lpBuffer,LPDWORD nSize);
2571
+ WINBASEAPI WINBOOL WINAPI SetComputerNameA(LPCSTR lpComputerName);
2572
+ WINBASEAPI WINBOOL WINAPI SetComputerNameW(LPCWSTR lpComputerName);
2573
+
2574
+ typedef enum _COMPUTER_NAME_FORMAT {
2575
+ ComputerNameNetBIOS,ComputerNameDnsHostname,ComputerNameDnsDomain,ComputerNameDnsFullyQualified,ComputerNamePhysicalNetBIOS,ComputerNamePhysicalDnsHostname,ComputerNamePhysicalDnsDomain,ComputerNamePhysicalDnsFullyQualified,ComputerNameMax
2576
+ } COMPUTER_NAME_FORMAT;
2577
+
2578
+ WINBASEAPI WINBOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT NameType,LPSTR lpBuffer,LPDWORD nSize);
2579
+ WINBASEAPI WINBOOL WINAPI GetComputerNameExW(COMPUTER_NAME_FORMAT NameType,LPWSTR lpBuffer,LPDWORD nSize);
2580
+ WINBASEAPI WINBOOL WINAPI SetComputerNameExA(COMPUTER_NAME_FORMAT NameType,LPCSTR lpBuffer);
2581
+ WINBASEAPI WINBOOL WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT NameType,LPCWSTR lpBuffer);
2582
+ WINBASEAPI WINBOOL WINAPI DnsHostnameToComputerNameA(LPCSTR Hostname,LPSTR ComputerName,LPDWORD nSize);
2583
+ WINBASEAPI WINBOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR Hostname,LPWSTR ComputerName,LPDWORD nSize);
2584
+ WINADVAPI WINBOOL WINAPI GetUserNameA(LPSTR lpBuffer,LPDWORD pcbBuffer);
2585
+ WINADVAPI WINBOOL WINAPI GetUserNameW(LPWSTR lpBuffer,LPDWORD pcbBuffer);
2586
+
2587
+ #define LOGON32_LOGON_INTERACTIVE 2
2588
+ #define LOGON32_LOGON_NETWORK 3
2589
+ #define LOGON32_LOGON_BATCH 4
2590
+ #define LOGON32_LOGON_SERVICE 5
2591
+ #define LOGON32_LOGON_UNLOCK 7
2592
+ #define LOGON32_LOGON_NETWORK_CLEARTEXT 8
2593
+ #define LOGON32_LOGON_NEW_CREDENTIALS 9
2594
+
2595
+ #define LOGON32_PROVIDER_DEFAULT 0
2596
+ #define LOGON32_PROVIDER_WINNT35 1
2597
+ #define LOGON32_PROVIDER_WINNT40 2
2598
+ #define LOGON32_PROVIDER_WINNT50 3
2599
+
2600
+ #ifdef UNICODE
2601
+ #define LogonUser LogonUserW
2602
+ #define LogonUserEx LogonUserExW
2603
+ #define CreateProcessAsUser CreateProcessAsUserW
2604
+ #else
2605
+ #define LogonUser LogonUserA
2606
+ #define LogonUserEx LogonUserExA
2607
+ #define CreateProcessAsUser CreateProcessAsUserA
2608
+ #endif
2609
+
2610
+ WINADVAPI WINBOOL WINAPI LogonUserA(LPCSTR lpszUsername,LPCSTR lpszDomain,LPCSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken);
2611
+ WINADVAPI WINBOOL WINAPI LogonUserW(LPCWSTR lpszUsername,LPCWSTR lpszDomain,LPCWSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken);
2612
+ WINADVAPI WINBOOL WINAPI LogonUserExA(LPCSTR lpszUsername,LPCSTR lpszDomain,LPCSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken,PSID *ppLogonSid,PVOID *ppProfileBuffer,LPDWORD pdwProfileLength,PQUOTA_LIMITS pQuotaLimits);
2613
+ WINADVAPI WINBOOL WINAPI LogonUserExW(LPCWSTR lpszUsername,LPCWSTR lpszDomain,LPCWSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken,PSID *ppLogonSid,PVOID *ppProfileBuffer,LPDWORD pdwProfileLength,PQUOTA_LIMITS pQuotaLimits);
2614
+ WINADVAPI WINBOOL WINAPI ImpersonateLoggedOnUser(HANDLE hToken);
2615
+ WINADVAPI WINBOOL WINAPI CreateProcessAsUserA(HANDLE hToken,LPCSTR lpApplicationName,LPSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCSTR lpCurrentDirectory,LPSTARTUPINFOA lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2616
+ WINADVAPI WINBOOL WINAPI CreateProcessAsUserW(HANDLE hToken,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2617
+
2618
+ #define LOGON_WITH_PROFILE 0x1
2619
+ #define LOGON_NETCREDENTIALS_ONLY 0x2
2620
+ #define LOGON_ZERO_PASSWORD_BUFFER 0x80000000
2621
+
2622
+ WINADVAPI WINBOOL WINAPI CreateProcessWithLogonW(LPCWSTR lpUsername,LPCWSTR lpDomain,LPCWSTR lpPassword,DWORD dwLogonFlags,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2623
+ WINADVAPI WINBOOL WINAPI CreateProcessWithTokenW(HANDLE hToken,DWORD dwLogonFlags,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2624
+ WINADVAPI WINBOOL WINAPI ImpersonateAnonymousToken(HANDLE ThreadHandle);
2625
+ WINADVAPI WINBOOL WINAPI DuplicateTokenEx(HANDLE hExistingToken,DWORD dwDesiredAccess,LPSECURITY_ATTRIBUTES lpTokenAttributes,SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,TOKEN_TYPE TokenType,PHANDLE phNewToken);
2626
+ WINADVAPI WINBOOL WINAPI CreateRestrictedToken(HANDLE ExistingTokenHandle,DWORD Flags,DWORD DisableSidCount,PSID_AND_ATTRIBUTES SidsToDisable,DWORD DeletePrivilegeCount,PLUID_AND_ATTRIBUTES PrivilegesToDelete,DWORD RestrictedSidCount,PSID_AND_ATTRIBUTES SidsToRestrict,PHANDLE NewTokenHandle);
2627
+ WINADVAPI WINBOOL WINAPI IsTokenRestricted(HANDLE TokenHandle);
2628
+ WINADVAPI WINBOOL WINAPI IsTokenUntrusted(HANDLE TokenHandle);
2629
+ WINADVAPI WINBOOL WINAPI CheckTokenMembership(HANDLE TokenHandle,PSID SidToCheck,PBOOL IsMember);
2630
+
2631
+ typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
2632
+
2633
+ WINBASEAPI WINBOOL WINAPI RegisterWaitForSingleObject(PHANDLE phNewWaitObject,HANDLE hObject,WAITORTIMERCALLBACK Callback,PVOID Context,ULONG dwMilliseconds,ULONG dwFlags);
2634
+ WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE hObject,WAITORTIMERCALLBACK Callback,PVOID Context,ULONG dwMilliseconds,ULONG dwFlags);
2635
+ WINBASEAPI WINBOOL WINAPI UnregisterWait(HANDLE WaitHandle);
2636
+ WINBASEAPI WINBOOL WINAPI UnregisterWaitEx(HANDLE WaitHandle,HANDLE CompletionEvent);
2637
+ WINBASEAPI WINBOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE Function,PVOID Context,ULONG Flags);
2638
+ WINBASEAPI WINBOOL WINAPI BindIoCompletionCallback(HANDLE FileHandle,LPOVERLAPPED_COMPLETION_ROUTINE Function,ULONG Flags);
2639
+ WINBASEAPI HANDLE WINAPI CreateTimerQueue(VOID);
2640
+ WINBASEAPI WINBOOL WINAPI CreateTimerQueueTimer(PHANDLE phNewTimer,HANDLE TimerQueue,WAITORTIMERCALLBACK Callback,PVOID Parameter,DWORD DueTime,DWORD Period,ULONG Flags);
2641
+ WINBASEAPI WINBOOL WINAPI ChangeTimerQueueTimer(HANDLE TimerQueue,HANDLE Timer,ULONG DueTime,ULONG Period);
2642
+ WINBASEAPI WINBOOL WINAPI DeleteTimerQueueTimer(HANDLE TimerQueue,HANDLE Timer,HANDLE CompletionEvent);
2643
+ WINBASEAPI WINBOOL WINAPI DeleteTimerQueueEx(HANDLE TimerQueue,HANDLE CompletionEvent);
2644
+ WINBASEAPI HANDLE WINAPI SetTimerQueueTimer(HANDLE TimerQueue,WAITORTIMERCALLBACK Callback,PVOID Parameter,DWORD DueTime,DWORD Period,WINBOOL PreferIo);
2645
+ WINBASEAPI WINBOOL WINAPI CancelTimerQueueTimer(HANDLE TimerQueue,HANDLE Timer);
2646
+ WINBASEAPI WINBOOL WINAPI DeleteTimerQueue(HANDLE TimerQueue);
2647
+
2648
+ #define HW_PROFILE_GUIDLEN 39
2649
+ #define MAX_PROFILE_LEN 80
2650
+
2651
+ #define DOCKINFO_UNDOCKED (0x1)
2652
+ #define DOCKINFO_DOCKED (0x2)
2653
+ #define DOCKINFO_USER_SUPPLIED (0x4)
2654
+ #define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED)
2655
+ #define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED)
2656
+
2657
+ typedef struct tagHW_PROFILE_INFOA {
2658
+ DWORD dwDockInfo;
2659
+ CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
2660
+ CHAR szHwProfileName[MAX_PROFILE_LEN];
2661
+ } HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA;
2662
+
2663
+ typedef struct tagHW_PROFILE_INFOW {
2664
+ DWORD dwDockInfo;
2665
+ WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
2666
+ WCHAR szHwProfileName[MAX_PROFILE_LEN];
2667
+ } HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW;
2668
+
2669
+ #ifdef UNICODE
2670
+ typedef HW_PROFILE_INFOW HW_PROFILE_INFO;
2671
+ typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO;
2672
+ #else
2673
+ typedef HW_PROFILE_INFOA HW_PROFILE_INFO;
2674
+ typedef LPHW_PROFILE_INFOA LPHW_PROFILE_INFO;
2675
+ #endif
2676
+
2677
+ #ifdef UNICODE
2678
+ #define GetCurrentHwProfile GetCurrentHwProfileW
2679
+ #define GetVersionEx GetVersionExW
2680
+ #define VerifyVersionInfo VerifyVersionInfoW
2681
+ #else
2682
+ #define GetCurrentHwProfile GetCurrentHwProfileA
2683
+ #define GetVersionEx GetVersionExA
2684
+ #define VerifyVersionInfo VerifyVersionInfoA
2685
+ #endif
2686
+
2687
+ WINADVAPI WINBOOL WINAPI GetCurrentHwProfileA (LPHW_PROFILE_INFOA lpHwProfileInfo);
2688
+ WINADVAPI WINBOOL WINAPI GetCurrentHwProfileW (LPHW_PROFILE_INFOW lpHwProfileInfo);
2689
+ WINBASEAPI WINBOOL WINAPI QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);
2690
+ WINBASEAPI WINBOOL WINAPI QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
2691
+ WINBASEAPI WINBOOL WINAPI GetVersionExA(LPOSVERSIONINFOA lpVersionInformation);
2692
+ WINBASEAPI WINBOOL WINAPI GetVersionExW(LPOSVERSIONINFOW lpVersionInformation);
2693
+ WINBASEAPI WINBOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA lpVersionInformation,DWORD dwTypeMask,DWORDLONG dwlConditionMask);
2694
+ WINBASEAPI WINBOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW lpVersionInformation,DWORD dwTypeMask,DWORDLONG dwlConditionMask);
2695
+
2696
+ #include <winerror.h>
2697
+
2698
+ #define TC_NORMAL 0
2699
+ #define TC_HARDERR 1
2700
+ #define TC_GP_TRAP 2
2701
+ #define TC_SIGNAL 3
2702
+
2703
+ #define AC_LINE_OFFLINE 0x0
2704
+ #define AC_LINE_ONLINE 0x1
2705
+ #define AC_LINE_BACKUP_POWER 0x2
2706
+ #define AC_LINE_UNKNOWN 0xff
2707
+
2708
+ #define BATTERY_FLAG_HIGH 0x1
2709
+ #define BATTERY_FLAG_LOW 0x2
2710
+ #define BATTERY_FLAG_CRITICAL 0x4
2711
+ #define BATTERY_FLAG_CHARGING 0x8
2712
+ #define BATTERY_FLAG_NO_BATTERY 0x80
2713
+ #define BATTERY_FLAG_UNKNOWN 0xff
2714
+
2715
+ #define BATTERY_PERCENTAGE_UNKNOWN 0xff
2716
+
2717
+ #define BATTERY_LIFE_UNKNOWN 0xffffffff
2718
+
2719
+ typedef struct _SYSTEM_POWER_STATUS {
2720
+ BYTE ACLineStatus;
2721
+ BYTE BatteryFlag;
2722
+ BYTE BatteryLifePercent;
2723
+ BYTE Reserved1;
2724
+ DWORD BatteryLifeTime;
2725
+ DWORD BatteryFullLifeTime;
2726
+ } SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
2727
+
2728
+ #ifdef UNICODE
2729
+ #define CreateJobObject CreateJobObjectW
2730
+ #define OpenJobObject OpenJobObjectW
2731
+ #define FindFirstVolume FindFirstVolumeW
2732
+ #define FindNextVolume FindNextVolumeW
2733
+ #define FindFirstVolumeMountPoint FindFirstVolumeMountPointW
2734
+ #define FindNextVolumeMountPoint FindNextVolumeMountPointW
2735
+ #define SetVolumeMountPoint SetVolumeMountPointW
2736
+ #define DeleteVolumeMountPoint DeleteVolumeMountPointW
2737
+ #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW
2738
+ #define GetVolumePathName GetVolumePathNameW
2739
+ #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW
2740
+ #else
2741
+ #define CreateJobObject CreateJobObjectA
2742
+ #define OpenJobObject OpenJobObjectA
2743
+ #define FindFirstVolume FindFirstVolumeA
2744
+ #define FindNextVolume FindNextVolumeA
2745
+ #define FindFirstVolumeMountPoint FindFirstVolumeMountPointA
2746
+ #define FindNextVolumeMountPoint FindNextVolumeMountPointA
2747
+ #define SetVolumeMountPoint SetVolumeMountPointA
2748
+ #define DeleteVolumeMountPoint DeleteVolumeMountPointA
2749
+ #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointA
2750
+ #define GetVolumePathName GetVolumePathNameA
2751
+ #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameA
2752
+ #endif
2753
+
2754
+ WINBOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS lpSystemPowerStatus);
2755
+ WINBOOL WINAPI SetSystemPowerState(WINBOOL fSuspend,WINBOOL fForce);
2756
+ WINBASEAPI WINBOOL WINAPI AllocateUserPhysicalPages(HANDLE hProcess,PULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2757
+ WINBASEAPI WINBOOL WINAPI FreeUserPhysicalPages(HANDLE hProcess,PULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2758
+ WINBASEAPI WINBOOL WINAPI MapUserPhysicalPages(PVOID VirtualAddress,ULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2759
+ WINBASEAPI WINBOOL WINAPI MapUserPhysicalPagesScatter(PVOID *VirtualAddresses,ULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2760
+ WINBASEAPI HANDLE WINAPI CreateJobObjectA(LPSECURITY_ATTRIBUTES lpJobAttributes,LPCSTR lpName);
2761
+ WINBASEAPI HANDLE WINAPI CreateJobObjectW(LPSECURITY_ATTRIBUTES lpJobAttributes,LPCWSTR lpName);
2762
+ WINBASEAPI HANDLE WINAPI OpenJobObjectA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
2763
+ WINBASEAPI HANDLE WINAPI OpenJobObjectW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
2764
+ WINBASEAPI WINBOOL WINAPI AssignProcessToJobObject(HANDLE hJob,HANDLE hProcess);
2765
+ WINBASEAPI WINBOOL WINAPI TerminateJobObject(HANDLE hJob,UINT uExitCode);
2766
+ WINBASEAPI WINBOOL WINAPI QueryInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,LPVOID lpJobObjectInformation,DWORD cbJobObjectInformationLength,LPDWORD lpReturnLength);
2767
+ WINBASEAPI WINBOOL WINAPI SetInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,LPVOID lpJobObjectInformation,DWORD cbJobObjectInformationLength);
2768
+ WINBASEAPI WINBOOL WINAPI IsProcessInJob(HANDLE ProcessHandle,HANDLE JobHandle,PBOOL Result);
2769
+ WINBASEAPI WINBOOL WINAPI CreateJobSet(ULONG NumJob,PJOB_SET_ARRAY UserJobSet,ULONG Flags);
2770
+ WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler (ULONG First,PVECTORED_EXCEPTION_HANDLER Handler);
2771
+ WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler(PVOID Handle);
2772
+ WINBASEAPI PVOID WINAPI AddVectoredContinueHandler (ULONG First,PVECTORED_EXCEPTION_HANDLER Handler);
2773
+ WINBASEAPI ULONG WINAPI RemoveVectoredContinueHandler(PVOID Handle);
2774
+ WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPSTR lpszVolumeName,DWORD cchBufferLength);
2775
+ WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPWSTR lpszVolumeName,DWORD cchBufferLength);
2776
+ WINBASEAPI WINBOOL WINAPI FindNextVolumeA(HANDLE hFindVolume,LPSTR lpszVolumeName,DWORD cchBufferLength);
2777
+ WINBASEAPI WINBOOL WINAPI FindNextVolumeW(HANDLE hFindVolume,LPWSTR lpszVolumeName,DWORD cchBufferLength);
2778
+ WINBASEAPI WINBOOL WINAPI FindVolumeClose(HANDLE hFindVolume);
2779
+ WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA(LPCSTR lpszRootPathName,LPSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2780
+ WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW(LPCWSTR lpszRootPathName,LPWSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2781
+ WINBASEAPI WINBOOL WINAPI FindNextVolumeMountPointA(HANDLE hFindVolumeMountPoint,LPSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2782
+ WINBASEAPI WINBOOL WINAPI FindNextVolumeMountPointW(HANDLE hFindVolumeMountPoint,LPWSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2783
+ WINBASEAPI WINBOOL WINAPI FindVolumeMountPointClose(HANDLE hFindVolumeMountPoint);
2784
+ WINBASEAPI WINBOOL WINAPI SetVolumeMountPointA(LPCSTR lpszVolumeMountPoint,LPCSTR lpszVolumeName);
2785
+ WINBASEAPI WINBOOL WINAPI SetVolumeMountPointW(LPCWSTR lpszVolumeMountPoint,LPCWSTR lpszVolumeName);
2786
+ WINBASEAPI WINBOOL WINAPI DeleteVolumeMountPointA(LPCSTR lpszVolumeMountPoint);
2787
+ WINBASEAPI WINBOOL WINAPI DeleteVolumeMountPointW(LPCWSTR lpszVolumeMountPoint);
2788
+ WINBASEAPI WINBOOL WINAPI GetVolumeNameForVolumeMountPointA(LPCSTR lpszVolumeMountPoint,LPSTR lpszVolumeName,DWORD cchBufferLength);
2789
+ WINBASEAPI WINBOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR lpszVolumeMountPoint,LPWSTR lpszVolumeName,DWORD cchBufferLength);
2790
+ WINBASEAPI WINBOOL WINAPI GetVolumePathNameA(LPCSTR lpszFileName,LPSTR lpszVolumePathName,DWORD cchBufferLength);
2791
+ WINBASEAPI WINBOOL WINAPI GetVolumePathNameW(LPCWSTR lpszFileName,LPWSTR lpszVolumePathName,DWORD cchBufferLength);
2792
+ WINBASEAPI WINBOOL WINAPI GetVolumePathNamesForVolumeNameA(LPCSTR lpszVolumeName,LPCH lpszVolumePathNames,DWORD cchBufferLength,PDWORD lpcchReturnLength);
2793
+ WINBASEAPI WINBOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR lpszVolumeName,LPWCH lpszVolumePathNames,DWORD cchBufferLength,PDWORD lpcchReturnLength);
2794
+
2795
+ #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID 0x1
2796
+ #define ACTCTX_FLAG_LANGID_VALID 0x2
2797
+ #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x4
2798
+ #define ACTCTX_FLAG_RESOURCE_NAME_VALID 0x8
2799
+ #define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x10
2800
+ #define ACTCTX_FLAG_APPLICATION_NAME_VALID 0x20
2801
+ #define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF 0x40
2802
+ #define ACTCTX_FLAG_HMODULE_VALID 0x80
2803
+
2804
+ typedef struct tagACTCTXA {
2805
+ ULONG cbSize;
2806
+ DWORD dwFlags;
2807
+ LPCSTR lpSource;
2808
+ USHORT wProcessorArchitecture;
2809
+ LANGID wLangId;
2810
+ LPCSTR lpAssemblyDirectory;
2811
+ LPCSTR lpResourceName;
2812
+ LPCSTR lpApplicationName;
2813
+ HMODULE hModule;
2814
+ } ACTCTXA,*PACTCTXA;
2815
+
2816
+ typedef struct tagACTCTXW {
2817
+ ULONG cbSize;
2818
+ DWORD dwFlags;
2819
+ LPCWSTR lpSource;
2820
+ USHORT wProcessorArchitecture;
2821
+ LANGID wLangId;
2822
+ LPCWSTR lpAssemblyDirectory;
2823
+ LPCWSTR lpResourceName;
2824
+ LPCWSTR lpApplicationName;
2825
+ HMODULE hModule;
2826
+ } ACTCTXW,*PACTCTXW;
2827
+
2828
+ typedef const ACTCTXA *PCACTCTXA;
2829
+ typedef const ACTCTXW *PCACTCTXW;
2830
+
2831
+ #ifdef UNICODE
2832
+ typedef ACTCTXW ACTCTX;
2833
+ typedef PACTCTXW PACTCTX;
2834
+ typedef PCACTCTXW PCACTCTX;
2835
+ #else
2836
+ typedef ACTCTXA ACTCTX;
2837
+ typedef PACTCTXA PACTCTX;
2838
+ typedef PCACTCTXA PCACTCTX;
2839
+ #endif
2840
+
2841
+ #ifdef UNICODE
2842
+ #define CreateActCtx CreateActCtxW
2843
+ #else
2844
+ #define CreateActCtx CreateActCtxA
2845
+ #endif
2846
+
2847
+ WINBASEAPI HANDLE WINAPI CreateActCtxA(PCACTCTXA pActCtx);
2848
+ WINBASEAPI HANDLE WINAPI CreateActCtxW(PCACTCTXW pActCtx);
2849
+ WINBASEAPI VOID WINAPI AddRefActCtx(HANDLE hActCtx);
2850
+ WINBASEAPI VOID WINAPI ReleaseActCtx(HANDLE hActCtx);
2851
+ WINBASEAPI WINBOOL WINAPI ZombifyActCtx(HANDLE hActCtx);
2852
+ WINBASEAPI WINBOOL WINAPI ActivateActCtx(HANDLE hActCtx,ULONG_PTR *lpCookie);
2853
+
2854
+ #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION (0x1)
2855
+
2856
+ WINBASEAPI WINBOOL WINAPI DeactivateActCtx(DWORD dwFlags,ULONG_PTR ulCookie);
2857
+ WINBASEAPI WINBOOL WINAPI GetCurrentActCtx(HANDLE *lphActCtx);
2858
+
2859
+ typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
2860
+ ULONG cbSize;
2861
+ ULONG ulDataFormatVersion;
2862
+ PVOID lpData;
2863
+ ULONG ulLength;
2864
+ PVOID lpSectionGlobalData;
2865
+ ULONG ulSectionGlobalDataLength;
2866
+ PVOID lpSectionBase;
2867
+ ULONG ulSectionTotalLength;
2868
+ HANDLE hActCtx;
2869
+ ULONG ulAssemblyRosterIndex;
2870
+ } ACTCTX_SECTION_KEYED_DATA_2600,*PACTCTX_SECTION_KEYED_DATA_2600;
2871
+
2872
+ typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
2873
+
2874
+ typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
2875
+ PVOID lpInformation;
2876
+ PVOID lpSectionBase;
2877
+ ULONG ulSectionLength;
2878
+ PVOID lpSectionGlobalDataBase;
2879
+ ULONG ulSectionGlobalDataLength;
2880
+ } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA,*PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
2881
+
2882
+ typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
2883
+
2884
+ typedef struct tagACTCTX_SECTION_KEYED_DATA {
2885
+ ULONG cbSize;
2886
+ ULONG ulDataFormatVersion;
2887
+ PVOID lpData;
2888
+ ULONG ulLength;
2889
+ PVOID lpSectionGlobalData;
2890
+ ULONG ulSectionGlobalDataLength;
2891
+ PVOID lpSectionBase;
2892
+ ULONG ulSectionTotalLength;
2893
+ HANDLE hActCtx;
2894
+ ULONG ulAssemblyRosterIndex;
2895
+
2896
+ ULONG ulFlags;
2897
+ ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
2898
+ } ACTCTX_SECTION_KEYED_DATA,*PACTCTX_SECTION_KEYED_DATA;
2899
+
2900
+ typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
2901
+
2902
+ #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX 0x1
2903
+ #define FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS 0x2
2904
+ #define FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA 0x4
2905
+
2906
+ #ifdef UNICODE
2907
+ #define FindActCtxSectionString FindActCtxSectionStringW
2908
+ #else
2909
+ #define FindActCtxSectionString FindActCtxSectionStringA
2910
+ #endif
2911
+
2912
+ WINBASEAPI WINBOOL WINAPI FindActCtxSectionStringA(DWORD dwFlags,const GUID *lpExtensionGuid,ULONG ulSectionId,LPCSTR lpStringToFind,PACTCTX_SECTION_KEYED_DATA ReturnedData);
2913
+ WINBASEAPI WINBOOL WINAPI FindActCtxSectionStringW(DWORD dwFlags,const GUID *lpExtensionGuid,ULONG ulSectionId,LPCWSTR lpStringToFind,PACTCTX_SECTION_KEYED_DATA ReturnedData);
2914
+ WINBASEAPI WINBOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags,const GUID *lpExtensionGuid,ULONG ulSectionId,const GUID *lpGuidToFind,PACTCTX_SECTION_KEYED_DATA ReturnedData);
2915
+
2916
+ #ifndef RC_INVOKED
2917
+ #ifndef ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED
2918
+
2919
+ typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
2920
+ HANDLE hActCtx;
2921
+ DWORD dwFlags;
2922
+ } ACTIVATION_CONTEXT_BASIC_INFORMATION,*PACTIVATION_CONTEXT_BASIC_INFORMATION;
2923
+
2924
+ typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
2925
+
2926
+ #define ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED 1
2927
+ #endif
2928
+ #endif
2929
+
2930
+ #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX 0x4
2931
+ #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE 0x8
2932
+ #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS 0x10
2933
+ #define QUERY_ACTCTX_FLAG_NO_ADDREF 0x80000000
2934
+
2935
+ WINBASEAPI WINBOOL WINAPI QueryActCtxW(DWORD dwFlags,HANDLE hActCtx,PVOID pvSubInstance,ULONG ulInfoClass,PVOID pvBuffer,SIZE_T cbBuffer,SIZE_T *pcbWrittenOrRequired);
2936
+
2937
+ typedef WINBOOL (WINAPI *PQUERYACTCTXW_FUNC)(DWORD dwFlags,HANDLE hActCtx,PVOID pvSubInstance,ULONG ulInfoClass,PVOID pvBuffer,SIZE_T cbBuffer,SIZE_T *pcbWrittenOrRequired);
2938
+
2939
+ WINBASEAPI WINBOOL WINAPI ProcessIdToSessionId(DWORD dwProcessId,DWORD *pSessionId);
2940
+ WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId();
2941
+ WINBASEAPI WINBOOL WINAPI IsWow64Process(HANDLE hProcess,PBOOL Wow64Process);
2942
+ WINBASEAPI WINBOOL WINAPI GetLogicalProcessorInformation(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer,PDWORD ReturnedLength);
2943
+ WINBASEAPI WINBOOL WINAPI GetNumaHighestNodeNumber(PULONG HighestNodeNumber);
2944
+ WINBASEAPI WINBOOL WINAPI GetNumaProcessorNode(UCHAR Processor,PUCHAR NodeNumber);
2945
+ WINBASEAPI WINBOOL WINAPI GetNumaNodeProcessorMask(UCHAR Node,PULONGLONG ProcessorMask);
2946
+ WINBASEAPI WINBOOL WINAPI GetNumaAvailableMemoryNode(UCHAR Node,PULONGLONG AvailableBytes);
2947
+
2948
+ #ifdef __cplusplus
2949
+ }
2950
+ #endif
2951
+ #endif