• R/O
  • SSH
  • HTTPS

exewrap: Commit


Commit MetaInfo

Revision31 (tree)
Time2017-01-26 00:21:36
Authorhirukawa_ryo

Log Message

*1.1.4 Windows Driver Kit 7.1 (WinDDK) でビルドするように変更しました。トレース機能をいったん外しました。

Change Summary

Incremental Difference

--- exewrap/trunk/exewrap/src/Make.bat (revision 30)
+++ exewrap/trunk/exewrap/src/Make.bat (revision 31)
@@ -1,33 +1,72 @@
11 @ECHO OFF
22
33 SETLOCAL
4-SET VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
4+SET DDK=C:\WinDDK
5+SET PATH_ORIGINAL=%PATH%
56
7+REM clean ############################################################
8+
9+CALL :SETENV_X86
610 IF "%1" == "clean" (
7-call "%VCDIR%\vcvarsall.bat"
811 nmake /nologo clean
912 IF ERRORLEVEL 1 GOTO ERR
1013 goto SUCCESS
1114 )
1215
13-call "%VCDIR%\vcvarsall.bat" x86
16+
17+REM IMAGE ############################################################
18+
19+CALL :SETENV_X86
1420 nmake /nologo IMAGE_X86
1521 IF ERRORLEVEL 1 GOTO ERR
1622
17-call "%VCDIR%\vcvarsall.bat" x64
23+CALL :SETENV_X64
1824 nmake /nologo IMAGE_X64
1925 IF ERRORLEVEL 1 GOTO ERR
2026
21-call "%VCDIR%\vcvarsall.bat" x86
27+REM EXEWRAP ##########################################################
28+
29+CALL :SETENV_X86
2230 nmake /nologo EXEWRAP_X86
31+IF ERRORLEVEL 1 GOTO ERR
32+
33+CALL :SETENV_X64
34+nmake /nologo EXEWRAP_X64
35+IF ERRORLEVEL 1 GOTO ERR
36+
37+
38+REM SKIP TRACE VERSION
39+goto SUCCESS
40+
41+REM TRACE IMAGE ######################################################
42+
43+CALL :SETENV_X86
44+nmake /nologo TRACE_IMAGE_X86
45+IF ERRORLEVEL 1 GOTO ERR
46+
47+CALL :SETENV_X64
48+nmake /nologo TRACE_IMAGE_X64
49+IF ERRORLEVEL 1 GOTO ERR
50+
51+REM TRACE EXEWRAP ####################################################
52+
53+CALL :SETENV_X86
54+nmake /nologo TRACE_EXEWRAP_X86
55+IF ERRORLEVEL 1 GOTO ERR
56+
2357 nmake /nologo JREMIN_X86
2458 IF ERRORLEVEL 1 GOTO ERR
2559
26-call "%VCDIR%\vcvarsall.bat" x64
27-nmake /nologo EXEWRAP_X64
60+CALL :SETENV_X64
61+nmake /nologo TRACE_EXEWRAP_X64
62+IF ERRORLEVEL 1 GOTO ERR
63+
2864 nmake /nologo JREMIN_X64
2965 IF ERRORLEVEL 1 GOTO ERR
3066
67+
68+REM ##################################################################
69+
3170 :SUCCESS
3271 echo 正常に終了しました。
3372 goto END
@@ -36,6 +75,23 @@
3675 echo エラーが発生しました。
3776 goto END
3877
78+
79+REM SETENV ###########################################################
80+
81+:SETENV_X86
82+SET PATH=%DDK%\bin\x86\x86;%DDK%\bin\x86;%PATH_ORIGINAL%
83+SET INCLUDE=%DDK%\inc\crt;%DDK%\inc\api
84+SET LIB=%DDK%\lib\win7\i386;%DDK%\lib\crt\i386
85+exit /b
86+
87+:SETENV_X64
88+SET PATH=%DDK%\bin\x86\amd64;%DDK%\bin\x86;%PATH_ORIGINAL%
89+SET INCLUDE=%DDK%\inc\crt;%DDK%\inc\api
90+SET LIB=%DDK%\lib\win7\amd64;%DDK%\lib\crt\amd64
91+exit /b
92+
93+
94+REM END ##############################################################
95+
3996 :END
40-
4197 ENDLOCAL
--- exewrap/trunk/exewrap/src/Makefile (revision 30)
+++ exewrap/trunk/exewrap/src/Makefile (revision 31)
@@ -1,9 +1,11 @@
1+
12 INC = /I ..\include /I ..\include\win32
23 LIBS = kernel32.lib user32.lib advapi32.lib shell32.lib
34
45 CC = cl.exe
56 LINK = link.exe
6-RC = RC.exe
7+RC = rc.exe
8+MT = mt.exe
79 JAVAC = javac.exe
810 JAR = jar.exe
911
@@ -12,15 +14,15 @@
1214 BITS=64
1315 BIN=..\bin\x64
1416 OBJ=..\obj\x64
15-CRT=..\lib\crt\amd64
1617 TARGET_VER=,5.02
18+MSVCRT_PATCH=msvcrt_win2003.obj
1719 !else
1820 ARCHITECTURE=x86
1921 BITS=32
2022 BIN=..\bin\x86
2123 OBJ=..\obj\x86
22-CRT=..\lib\crt
2324 TARGET_VER=,5.01
25+MSVCRT_PATCH=msvcrt_winxp.obj
2426 !endif
2527
2628 CFLAGS=\
@@ -28,19 +30,14 @@
2830 /MD\
2931 /W3\
3032 /O1\
31- /GS-\
32- /GL\
3333 /c
3434
3535 LDFLAGS=\
3636 /nologo\
37+ /MACHINE:$(ARCHITECTURE)\
3738 /LTCG\
38- /OPT:REF\
39- /LIBPATH:$(CRT)
39+ /OPT:REF
4040
41-RCFLAGS=\
42- /nologo
43-
4441 ALL :
4542 Make.bat
4643
@@ -47,11 +44,15 @@
4744 EXEWRAP_X86 : $(BIN)\exewrap.exe
4845 EXEWRAP_X64 : $(BIN)\exewrap.exe
4946
50-IMAGE_X86 : $(OBJ)\image_console.exe $(OBJ)\image_gui.exe $(OBJ)\image_service.exe \
51- $(OBJ)\image_console_trace.exe $(OBJ)\image_gui_trace.exe $(OBJ)\image_service_trace.exe
52-IMAGE_X64 : $(OBJ)\image_console.exe $(OBJ)\image_gui.exe $(OBJ)\image_service.exe \
53- $(OBJ)\image_console_trace.exe $(OBJ)\image_gui_trace.exe $(OBJ)\image_service_trace.exe
47+IMAGE_X86 : $(OBJ)\image_console.exe $(OBJ)\image_gui.exe $(OBJ)\image_service.exe
48+IMAGE_X64 : $(OBJ)\image_console.exe $(OBJ)\image_gui.exe $(OBJ)\image_service.exe
5449
50+TRACE_EXEWRAP_X86 : $(BIN)\exewrap-trace.exe
51+TRACE_EXEWRAP_X64 : $(BIN)\exewrap-trace.exe
52+
53+TRACE_IMAGE_X86 : $(OBJ)\image_console_trace.exe $(OBJ)\image_gui_trace.exe $(OBJ)\image_service_trace.exe
54+TRACE_IMAGE_X64 : $(OBJ)\image_console_trace.exe $(OBJ)\image_gui_trace.exe $(OBJ)\image_service_trace.exe
55+
5556 JREMIN_X86 : $(BIN)\jremin.exe
5657 JREMIN_X64 : $(BIN)\jremin.exe
5758
@@ -68,10 +69,10 @@
6869 $(BIN)\exewrap.exe : $(BIN) $(OBJ) $(OBJ)\exewrap.res $(OBJ)\exewrap.obj \
6970 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj \
7071 $(OBJ)\image_console.exe $(OBJ)\image_gui.exe $(OBJ)\image_service.exe \
71- $(OBJ)\image_console_trace.exe \
7272 $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\tool.jar
73- $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST:EMBED /OUT:$(BIN)\exewrap.exe $(OBJ)\exewrap.res $(OBJ)\exewrap.obj \
74- $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj $(LIBS)
73+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(BIN)\exewrap.exe $(OBJ)\exewrap.res $(OBJ)\exewrap.obj \
74+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
75+ $(MT) -manifest $(BIN)\exewrap.exe.manifest -outputresource:$(BIN)\exewrap.exe;1
7576 $(OBJ)\bindres.exe $(BIN)\exewrap.exe VERSION_INFO resources\versioninfo.bin
7677 $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_CONSOLE_32 $(OBJ)\..\x86\image_console.exe
7778 $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_CONSOLE_64 $(OBJ)\..\x64\image_console.exe
@@ -79,12 +80,6 @@
7980 $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_GUI_64 $(OBJ)\..\x64\image_gui.exe
8081 $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_SERVICE_32 $(OBJ)\..\x86\image_service.exe
8182 $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_SERVICE_64 $(OBJ)\..\x64\image_service.exe
82- $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_TRACE_CONSOLE_32 $(OBJ)\..\x86\image_console_trace.exe
83- $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_TRACE_CONSOLE_64 $(OBJ)\..\x64\image_console_trace.exe
84- $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_TRACE_GUI_32 $(OBJ)\..\x86\image_gui_trace.exe
85- $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_TRACE_GUI_64 $(OBJ)\..\x64\image_gui_trace.exe
86- $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_TRACE_SERVICE_32 $(OBJ)\..\x86\image_service_trace.exe
87- $(OBJ)\bindres.exe -r $(BIN)\exewrap.exe IMAGE_TRACE_SERVICE_64 $(OBJ)\..\x64\image_service_trace.exe
8883 $(OBJ)\bindres.exe $(BIN)\exewrap.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
8984 $(OBJ)\bindres.exe $(BIN)\exewrap.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
9085 $(OBJ)\bindres.exe $(BIN)\exewrap.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
@@ -93,17 +88,40 @@
9388 $(OBJ)\bindres.exe $(BIN)\exewrap.exe UTIL_JAR $(OBJ)\util.jar
9489 $(OBJ)\bindres.exe $(BIN)\exewrap.exe JAR $(OBJ)\tool.jar
9590
91+$(BIN)\exewrap-trace.exe : $(BIN) $(OBJ) $(OBJ)\exewrap.res $(OBJ)\exewrap.obj \
92+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj \
93+ $(OBJ)\image_console_trace.exe $(OBJ)\image_gui_trace.exe $(OBJ)\image_service_trace.exe \
94+ $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\tool.jar
95+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(BIN)\exewrap-trace.exe $(OBJ)\exewrap.res $(OBJ)\exewrap.obj \
96+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
97+ $(MT) -manifest $(BIN)\exewrap-trace.exe.manifest -outputresource:$(BIN)\exewrap-trace.exe;1
98+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe VERSION_INFO resources\versioninfo.bin
99+ $(OBJ)\bindres.exe -r $(BIN)\exewrap-trace.exe IMAGE_TRACE_CONSOLE_32 $(OBJ)\..\x86\image_console_trace.exe
100+ $(OBJ)\bindres.exe -r $(BIN)\exewrap-trace.exe IMAGE_TRACE_CONSOLE_64 $(OBJ)\..\x64\image_console_trace.exe
101+ $(OBJ)\bindres.exe -r $(BIN)\exewrap-trace.exe IMAGE_TRACE_GUI_32 $(OBJ)\..\x86\image_gui_trace.exe
102+ $(OBJ)\bindres.exe -r $(BIN)\exewrap-trace.exe IMAGE_TRACE_GUI_64 $(OBJ)\..\x64\image_gui_trace.exe
103+ $(OBJ)\bindres.exe -r $(BIN)\exewrap-trace.exe IMAGE_TRACE_SERVICE_32 $(OBJ)\..\x86\image_service_trace.exe
104+ $(OBJ)\bindres.exe -r $(BIN)\exewrap-trace.exe IMAGE_TRACE_SERVICE_64 $(OBJ)\..\x64\image_service_trace.exe
105+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
106+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
107+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
108+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe URL_STREAM_HANDLER $(OBJ)\exewrap\core\URLStreamHandler.class
109+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe EXEWRAP_CLASS_LOADER $(OBJ)\exewrap\core\ExewrapClassLoader.class
110+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe UTIL_JAR $(OBJ)\util.jar
111+ $(OBJ)\bindres.exe $(BIN)\exewrap-trace.exe JAR $(OBJ)\tool.jar
112+
96113 $(OBJ)\exewrap.obj : $(OBJ) exewrap.c
97114 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\exewrap.obj exewrap.c
98115
99116 $(OBJ)\exewrap.res : $(OBJ) resources\exewrap.rc
100- $(RC) $(RCFLAGS) /fo$(OBJ)\exewrap.res resources\exewrap.rc
117+ $(RC) /fo$(OBJ)\exewrap.res resources\exewrap.rc
101118
102119 $(OBJ)\image_console.exe : $(OBJ) $(OBJ)\image_console.res $(OBJ)\image_console.obj \
103120 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj \
104121 $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\PackInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\exewrap\core\URLConnection.class $(OBJ)\exewrap\core\URLStreamHandler.class $(OBJ)\util.jar
105- $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST:EMBED /OUT:$(OBJ)\image_console.exe $(OBJ)\image_console.obj \
106- $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS)
122+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_console.exe $(OBJ)\image_console.obj \
123+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
124+ $(MT) -manifest $(OBJ)\image_console.exe.manifest -outputresource:$(OBJ)\image_console.exe;1
107125 $(OBJ)\bindres.exe $(OBJ)\image_console.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
108126 $(OBJ)\bindres.exe $(OBJ)\image_console.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
109127 $(OBJ)\bindres.exe $(OBJ)\image_console.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
@@ -115,9 +133,10 @@
115133 $(OBJ)\buffer.obj $(OBJ)\hde$(BITS).obj $(OBJ)\hook.obj $(OBJ)\trampoline.obj \
116134 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj \
117135 $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\PackInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\exewrap\core\URLConnection.class $(OBJ)\exewrap\core\URLStreamHandler.class $(OBJ)\util.jar
118- $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST:EMBED /OUT:$(OBJ)\image_console_trace.exe $(OBJ)\image_console_trace.obj $(OBJ)\trace.obj \
136+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_console_trace.exe $(OBJ)\image_console_trace.obj $(OBJ)\trace.obj \
119137 $(OBJ)\buffer.obj $(OBJ)\hde$(BITS).obj $(OBJ)\hook.obj $(OBJ)\trampoline.obj \
120- $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS)
138+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
139+ $(MT) -manifest $(OBJ)\image_console_trace.exe.manifest -outputresource:$(OBJ)\image_console_trace.exe;1
121140 $(OBJ)\bindres.exe $(OBJ)\image_console_trace.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
122141 $(OBJ)\bindres.exe $(OBJ)\image_console_trace.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
123142 $(OBJ)\bindres.exe $(OBJ)\image_console_trace.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
@@ -126,7 +145,7 @@
126145 $(OBJ)\bindres.exe $(OBJ)\image_console_trace.exe UTIL_JAR $(OBJ)\util.jar
127146
128147 $(OBJ)\image_console.res : $(OBJ) resources\image_console.rc resources\eventlog.bin
129- $(RC) $(RCFLAGS) /fo$(OBJ)\image_console.res resources\image_console.rc
148+ $(RC) /fo$(OBJ)\image_console.res resources\image_console.rc
130149
131150 $(OBJ)\image_console.obj : $(OBJ) image_console.c
132151 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\image_console.obj image_console.c
@@ -137,8 +156,9 @@
137156 $(OBJ)\image_gui.exe : $(OBJ) $(OBJ)\image_gui.res $(OBJ)\image_gui.obj \
138157 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj \
139158 $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\PackInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\exewrap\core\URLConnection.class $(OBJ)\exewrap\core\URLStreamHandler.class $(OBJ)\util.jar
140- $(LINK) $(LDFLAGS) /SUBSYSTEM:WINDOWS /MANIFEST:EMBED /OUT:$(OBJ)\image_gui.exe $(OBJ)\image_gui.res $(OBJ)\image_gui.obj \
141- $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS)
159+ $(LINK) $(LDFLAGS) /SUBSYSTEM:WINDOWS$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_gui.exe $(OBJ)\image_gui.res $(OBJ)\image_gui.obj \
160+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
161+ $(MT) -manifest $(OBJ)\image_gui.exe.manifest -outputresource:$(OBJ)\image_gui.exe;1
142162 $(OBJ)\bindres.exe $(OBJ)\image_gui.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
143163 $(OBJ)\bindres.exe $(OBJ)\image_gui.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
144164 $(OBJ)\bindres.exe $(OBJ)\image_gui.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
@@ -150,9 +170,10 @@
150170 $(OBJ)\buffer.obj $(OBJ)\hde$(BITS).obj $(OBJ)\hook.obj $(OBJ)\trampoline.obj \
151171 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj \
152172 $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\PackInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\exewrap\core\URLConnection.class $(OBJ)\exewrap\core\URLStreamHandler.class $(OBJ)\util.jar
153- $(LINK) $(LDFLAGS) /SUBSYSTEM:WINDOWS$(TARGET_VER) /MANIFEST:EMBED /OUT:$(OBJ)\image_gui_trace.exe $(OBJ)\image_gui.res $(OBJ)\image_gui_trace.obj $(OBJ)\trace.obj \
173+ $(LINK) $(LDFLAGS) /SUBSYSTEM:WINDOWS$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_gui_trace.exe $(OBJ)\image_gui.res $(OBJ)\image_gui_trace.obj $(OBJ)\trace.obj \
154174 $(OBJ)\buffer.obj $(OBJ)\hde$(BITS).obj $(OBJ)\hook.obj $(OBJ)\trampoline.obj \
155- $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS)
175+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
176+ $(MT) -manifest $(OBJ)\image_gui_trace.exe.manifest -outputresource:$(OBJ)\image_gui_trace.exe;1
156177 $(OBJ)\bindres.exe $(OBJ)\image_gui_trace.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
157178 $(OBJ)\bindres.exe $(OBJ)\image_gui_trace.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
158179 $(OBJ)\bindres.exe $(OBJ)\image_gui_trace.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
@@ -161,7 +182,7 @@
161182 $(OBJ)\bindres.exe $(OBJ)\image_gui_trace.exe UTIL_JAR $(OBJ)\util.jar
162183
163184 $(OBJ)\image_gui.res : $(OBJ) resources\image_gui.rc resources\eventlog.bin
164- $(RC) $(RCFLAGS) /fo$(OBJ)\image_gui.res resources\image_gui.rc
185+ $(RC) /fo$(OBJ)\image_gui.res resources\image_gui.rc
165186
166187 $(OBJ)\image_gui.obj : $(OBJ) image_gui.c
167188 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\image_gui.obj image_gui.c
@@ -172,8 +193,9 @@
172193 $(OBJ)\image_service.exe : $(OBJ) $(OBJ)\image_service.res $(OBJ)\image_service.obj \
173194 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj \
174195 $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\PackInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\exewrap\core\URLConnection.class $(OBJ)\exewrap\core\URLStreamHandler.class $(OBJ)\util.jar
175- $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST:EMBED /OUT:$(OBJ)\image_service.exe $(OBJ)\image_service.res $(OBJ)\image_service.obj \
176- $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj $(LIBS)
196+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_service.exe $(OBJ)\image_service.res $(OBJ)\image_service.obj \
197+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
198+ $(MT) -manifest $(OBJ)\image_service.exe.manifest -outputresource:$(OBJ)\image_service.exe;1
177199 $(OBJ)\bindres.exe $(OBJ)\image_service.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
178200 $(OBJ)\bindres.exe $(OBJ)\image_service.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
179201 $(OBJ)\bindres.exe $(OBJ)\image_service.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
@@ -185,9 +207,10 @@
185207 $(OBJ)\buffer.obj $(OBJ)\hde$(BITS).obj $(OBJ)\hook.obj $(OBJ)\trampoline.obj \
186208 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj \
187209 $(OBJ)\bindres.exe $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\PackInputStream.class $(OBJ)\exewrap\core\ExewrapClassLoader.class $(OBJ)\exewrap\core\URLConnection.class $(OBJ)\exewrap\core\URLStreamHandler.class $(OBJ)\util.jar
188- $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST:EMBED /OUT:$(OBJ)\image_service_trace.exe $(OBJ)\image_service.res $(OBJ)\image_service_trace.obj $(OBJ)\trace.obj \
210+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_service_trace.exe $(OBJ)\image_service.res $(OBJ)\image_service_trace.obj $(OBJ)\trace.obj \
189211 $(OBJ)\buffer.obj $(OBJ)\hde$(BITS).obj $(OBJ)\hook.obj $(OBJ)\trampoline.obj \
190- $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj $(LIBS)
212+ $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
213+ $(MT) -manifest $(OBJ)\image_service_trace.exe.manifest -outputresource:$(OBJ)\image_service_trace.exe;1
191214 $(OBJ)\bindres.exe $(OBJ)\image_service_trace.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
192215 $(OBJ)\bindres.exe $(OBJ)\image_service_trace.exe PACK_INPUT_STREAM $(OBJ)\exewrap\core\PackInputStream.class
193216 $(OBJ)\bindres.exe $(OBJ)\image_service_trace.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
@@ -196,7 +219,7 @@
196219 $(OBJ)\bindres.exe $(OBJ)\image_service_trace.exe UTIL_JAR $(OBJ)\util.jar
197220
198221 $(OBJ)\image_service.res : $(OBJ) resources\image_service.rc resources\eventlog.bin
199- $(RC) $(RCFLAGS) /fo$(OBJ)\image_service.res resources\image_service.rc
222+ $(RC) /fo$(OBJ)\image_service.res resources\image_service.rc
200223
201224 $(OBJ)\image_service.obj : $(OBJ) image_service.c
202225 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\image_service.obj image_service.c
@@ -223,7 +246,7 @@
223246 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\trace.obj trace.c
224247
225248 $(OBJ)\bindres.exe : $(OBJ) $(OBJ)\bindres.obj
226- $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /OUT:$(OBJ)\bindres.exe $(OBJ)\bindres.obj $(LIBS)
249+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /OUT:$(OBJ)\bindres.exe $(OBJ)\bindres.obj $(LIBS) $(MSVCRT_PATCH)
227250
228251 $(OBJ)\bindres.obj : $(OBJ) bindres.c
229252 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\bindres.obj bindres.c
@@ -237,7 +260,7 @@
237260 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\buffer.obj minhook\src\buffer.c
238261
239262 $(OBJ)\hook.obj : minhook\src\hook.c
240- $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\hook.obj minhook\src\hook.c
263+ $(CC) $(CFLAGS) $(INC) /I minhook\WindowsSDK\include /Fo$(OBJ)\hook.obj minhook\src\hook.c
241264
242265 $(OBJ)\trampoline.obj : minhook\src\trampoline.c
243266 $(CC) $(CFLAGS) $(INC) /Fo$(OBJ)\trampoline.obj minhook\src\trampoline.c
--- exewrap/trunk/exewrap/src/bindres.c (revision 30)
+++ exewrap/trunk/exewrap/src/bindres.c (revision 31)
@@ -30,7 +30,7 @@
3030
3131 if(argc < 4 || (strcmp(argv[1], "-r") == 0 && argc < 5))
3232 {
33- printf("Usage: %s [-r] <filename> <resource-name> <resource-file>\n", argv[0]);
33+ //printf("Usage: %s [-r] <filename> <resource-name> <resource-file>\n", argv[0]);
3434 return -1;
3535 }
3636
@@ -48,7 +48,7 @@
4848 hRscFile = CreateFile(rscFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
4949 if(hRscFile == INVALID_HANDLE_VALUE)
5050 {
51- printf("Failed to open: %s\n", rscFileName);
51+ //printf("Failed to open: %s\n", rscFileName);
5252 return -2;
5353 }
5454 rscSize = GetFileSize(hRscFile, NULL);
@@ -61,7 +61,7 @@
6161 {
6262 if(ReadFile(hRscFile, p, r, &readSize, NULL) == 0)
6363 {
64- printf("Failed to read: %s\n", rscFileName);
64+ //printf("Failed to read: %s\n", rscFileName);
6565 return -3;
6666 }
6767 p += readSize;
--- exewrap/trunk/exewrap/src/eventlog.c (revision 30)
+++ exewrap/trunk/exewrap/src/eventlog.c (revision 31)
@@ -138,13 +138,13 @@
138138
139139 void ShowErrorMessage()
140140 {
141- LPVOID Message = NULL;
141+ LPSTR Message = NULL;
142142 DWORD LastError = GetLastError();
143143
144144 if(LastError != 0)
145145 {
146146 FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
147- NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&Message, 0, NULL);
147+ NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&Message, 0, NULL);
148148
149149 printf("%s", Message);
150150 LocalFree(Message);
--- exewrap/trunk/exewrap/src/exewrap.c (revision 30)
+++ exewrap/trunk/exewrap/src/exewrap.c (revision 31)
@@ -52,6 +52,7 @@
5252 DWORD jar_len;
5353 char* ext_flags = NULL;
5454 char* vmargs = NULL;
55+ char* vmargs_b = NULL;
5556 char* version_number;
5657 char* file_description;
5758 char* copyright;
@@ -60,6 +61,7 @@
6061 char* product_version;
6162 char* original_filename;
6263 char* new_version;
64+ BOOL is_trace_version = FALSE;
6365
6466 char* buf = NULL;
6567 char* ptr = NULL;
@@ -80,33 +82,35 @@
8082 {
8183 exe_file = argv[0];
8284 }
85+
86+ is_trace_version = strstr(exe_file, "trace") != NULL;
8387
84- printf("exewrap 1.1.2 for %s (%d-bit)\r\n"
88+ printf("exewrap 1.1.4 for %s (%d-bit) %s\r\n"
8589 "Native executable java application wrapper.\r\n"
86- "Copyright (C) 2005-2015 HIRUKAWA Ryo. All rights reserved.\r\n"
90+ "Copyright (C) 2005-2017 HIRUKAWA Ryo. All rights reserved.\r\n"
8791 "\r\n"
8892 "Usage: %s <options> <jar-file>\r\n"
8993 "Options:\r\n"
90- " -g \t create Window application.\r\n"
91- " -s \t create Windows Service application.\r\n"
92- " -A <architecture> \t select exe-file architecture. (default %s)\r\n"
93- " -t <version> \t set target java runtime version. (default 1.5)\r\n"
94- " -2 \t disable Pack200.\r\n"
95- " -T \t enable trace for to shrink JRE.\r\n"
96- " -M <main-class> \t set main-class.\r\n"
97- " -L <ext-dirs> \t set ext-dirs.\r\n"
98- " -e <ext-flags> \t set extended flags.\r\n"
99- " -a <vm-args> \t set Java VM arguments.\r\n"
100- " -i <icon-file> \t set application icon.\r\n"
101- " -v <version> \t set version number.\r\n"
102- " -d <description> \t set file description.\r\n"
103- " -c <copyright> \t set copyright.\r\n"
104- " -C <company-name> \t set company name.\r\n"
105- " -p <product-name> \t set product name.\r\n"
106- " -V <product-version>\t set product version.\r\n"
107- " -j <jar-file> \t input jar-file.\r\n"
108- " -o <exe-file> \t output exe-file.\r\n"
109- , (bits == 64 ? "x64" : "x86"), bits, exe_file, (bits == 64 ? "x64" : "x86"));
94+ " -g \t Create Window application.\r\n"
95+ " -s \t Create Windows Service application.\r\n"
96+ " -A <architecture> \t Select exe-file architecture. (default %s)\r\n"
97+ " -t <version> \t Set target java runtime version. (default 1.5)\r\n"
98+ " -2 \t Disable Pack200.\r\n"
99+ " -M <main-class> \t Set main-class.\r\n"
100+ " -L <ext-dirs> \t Set ext-dirs.\r\n"
101+ " -e <ext-flags> \t Set extended flags.\r\n"
102+ " -a <vm-args> \t Set Java VM arguments.\r\n"
103+ " -b <vm-args> \t This arguments will be applied when the service was started without the SCM.\r\n"
104+ " -i <icon-file> \t Set application icon.\r\n"
105+ " -v <version> \t Set version number.\r\n"
106+ " -d <description> \t Set file description.\r\n"
107+ " -c <copyright> \t Set copyright.\r\n"
108+ " -C <company-name> \t Set company name.\r\n"
109+ " -p <product-name> \t Set product name.\r\n"
110+ " -V <product-version>\t Set product version.\r\n"
111+ " -j <jar-file> \t Input jar-file.\r\n"
112+ " -o <exe-file> \t Output exe-file.\r\n"
113+ , (bits == 64 ? "x64" : "x86"), bits, (is_trace_version ? "[ TRACE VERSION ]" : ""), exe_file, (bits == 64 ? "x64" : "x86"));
110114
111115 return 0;
112116 }
@@ -157,7 +161,7 @@
157161 *strrchr(strrchr(exe_file, '\\' + 1), '.') = '\0';
158162 strcat(exe_file, ".exe");
159163 }
160- if (opt['T'])
164+ if (is_trace_version)
161165 {
162166 *strrchr(exe_file, '.') = '\0';
163167 strcat(exe_file, ".TRACE.exe");
@@ -182,15 +186,15 @@
182186
183187 if(opt['g'])
184188 {
185- sprintf(image_name, "IMAGE%s_GUI_%d", (opt['T'] ? "_TRACE" : ""), architecture_bits);
189+ sprintf(image_name, "IMAGE%s_GUI_%d", (is_trace_version ? "_TRACE" : ""), architecture_bits);
186190 }
187191 else if(opt['s'])
188192 {
189- sprintf(image_name, "IMAGE%s_SERVICE_%d", (opt['T'] ? "_TRACE" : ""), architecture_bits);
193+ sprintf(image_name, "IMAGE%s_SERVICE_%d", (is_trace_version ? "_TRACE" : ""), architecture_bits);
190194 }
191195 else
192196 {
193- sprintf(image_name, "IMAGE%s_CONSOLE_%d", (opt['T'] ? "_TRACE" : ""), architecture_bits);
197+ sprintf(image_name, "IMAGE%s_CONSOLE_%d", (is_trace_version ? "_TRACE" : ""), architecture_bits);
194198 }
195199
196200 GetResource(image_name, &res);
@@ -232,7 +236,7 @@
232236 set_resource(exe_file, "EXTDIRS", RT_RCDATA, "lib", 4);
233237 }
234238
235- enable_java = CreateJavaVM(NULL, FALSE, FALSE, NULL) != NULL;
239+ enable_java = CreateJavaVM(NULL, FALSE, TRUE, NULL) != NULL;
236240 if (enable_java)
237241 {
238242 LOAD_RESULT result;
@@ -383,7 +387,7 @@
383387
384388 ext_flags = (char*)malloc(1024);
385389 ext_flags[0] = '\0';
386- if (opt['T'])
390+ if (is_trace_version)
387391 {
388392 strcat(ext_flags, "NOSIDEBYSIDE;");
389393 }
@@ -394,7 +398,7 @@
394398 set_resource(exe_file, "EXTFLAGS", RT_RCDATA, ext_flags, (DWORD)strlen(ext_flags) + 1);
395399 free(ext_flags);
396400
397- if (opt['T'])
401+ if (is_trace_version)
398402 {
399403 if (vmargs == NULL)
400404 {
@@ -426,6 +430,25 @@
426430 free(vmargs);
427431 }
428432
433+ if(opt['b'] && *opt['b'] != '\0')
434+ {
435+ if (vmargs_b == NULL)
436+ {
437+ vmargs_b = (char*)malloc(2048);
438+ vmargs_b[0] = '\0';
439+ }
440+ else
441+ {
442+ strcat(vmargs_b, " ");
443+ }
444+ strcat(vmargs_b, opt['b']);
445+ }
446+ if (vmargs_b != NULL)
447+ {
448+ set_resource(exe_file, "VMARGS_B", RT_RCDATA, vmargs_b, (DWORD)strlen(vmargs_b) + 1);
449+ free(vmargs_b);
450+ }
451+
429452 if(opt['i'] && *opt['i'] != '-' && *opt['i'] != '\0')
430453 {
431454 set_application_icon(exe_file, opt['i']);
@@ -676,16 +699,19 @@
676699 CloseHandle(hFile);
677700
678701 len = strlen(HEADER);
679- for (i = 0; i < size - len; i++)
702+ if(size > len)
680703 {
681- for (j = 0; j < len; j++)
704+ for (i = 0; i < size - len; i++)
682705 {
683- if (buf[i + j * 2] != HEADER[j]) break;
706+ for (j = 0; j < len; j++)
707+ {
708+ if (buf[i + j * 2] != HEADER[j]) break;
709+ }
710+ if (j == strlen(HEADER))
711+ {
712+ revision = ((buf[i + 47] << 8) & 0xFF00) | ((buf[i + 46]) & 0x00FF);
713+ }
684714 }
685- if (j == strlen(HEADER))
686- {
687- revision = ((buf[i + 47] << 8) & 0xFF00) | ((buf[i + 46]) & 0x00FF);
688- }
689715 }
690716
691717 EXIT:
--- exewrap/trunk/exewrap/src/image_service.c (revision 30)
+++ exewrap/trunk/exewrap/src/image_service.c (revision 31)
@@ -60,9 +60,9 @@
6060 char* relative_classpath;
6161 char* relative_extdirs;
6262 BOOL use_server_vm;
63- BOOL use_side_by_side_jre;
63+ BOOL use_side_by_side_jre;
6464 char* ext_flags;
65- char* vm_args_opt;
65+ char* vm_args_opt = NULL;
6666 char utilities[128];
6767 RESOURCE res;
6868 LOAD_RESULT result;
@@ -88,7 +88,12 @@
8888 use_side_by_side_jre = (ext_flags == NULL) || (strstr(ext_flags, "NOSIDEBYSIDE") == NULL);
8989 InitializePath(relative_classpath, relative_extdirs, use_server_vm, use_side_by_side_jre);
9090
91- vm_args_opt = (char*)GetResource("VMARGS", NULL);
91+ if(!is_service) {
92+ vm_args_opt = (char*)GetResource("VMARGS_B", NULL);
93+ }
94+ if(vm_args_opt == NULL) {
95+ vm_args_opt = (char*)GetResource("VMARGS", NULL);
96+ }
9297 CreateJavaVM(vm_args_opt, use_server_vm, use_side_by_side_jre, &err);
9398 if (err != JNI_OK)
9499 {
@@ -173,10 +178,6 @@
173178 {
174179 WriteEventLog(EVENTLOG_INFORMATION_TYPE, result.msg);
175180 }
176- else
177- {
178- OutputMessage(result.msg);
179- }
180181
181182 // JavaVM が CTRL_SHUTDOWN_EVENT を受け取って終了してしまわないように、ハンドラを登録して先取りします。
182183 SetConsoleCtrlHandler((PHANDLER_ROUTINE)console_control_handler, TRUE);
@@ -210,10 +211,6 @@
210211 {
211212 WriteEventLog(EVENTLOG_INFORMATION_TYPE, result.msg);
212213 }
213- else
214- {
215- OutputMessage(result.msg);
216- }
217214 }
218215
219216 EXIT:
@@ -286,14 +283,17 @@
286283 HANDLE pipe = NULL;
287284 int exit_code = 0;
288285
289- set_current_dir();
290286 service_name = get_service_name(NULL);
291287 flags = parse_args(&argc, argv, &opt_end);
292288
293289 if (flags & SHOW_HELP_MESSAGE)
294290 {
295- show_help_message();
296- goto EXIT;
291+ char* ext_flags = (char*)GetResource("EXTFLAGS", NULL);
292+ if(ext_flags == NULL || strstr(ext_flags, "NOHELP") == NULL)
293+ {
294+ show_help_message();
295+ goto EXIT;
296+ }
297297 }
298298
299299 if (flags & SERVICE_START_BY_SCM)
@@ -300,6 +300,8 @@
300300 {
301301 SERVICE_TABLE_ENTRY ServiceTable[2];
302302
303+ set_current_dir();
304+
303305 ARG_COUNT = argc;
304306 ARG_VALUE = argv;
305307
@@ -1140,10 +1142,11 @@
11401142 }
11411143 else if (ret == TRUE)
11421144 {
1143- buf = (char*)HeapAlloc(GetProcessHeap(), 0, 1024);
11441145 DWORD read_size;
11451146 DWORD write_size;
11461147
1148+ buf = (char*)HeapAlloc(GetProcessHeap(), 0, 1024);
1149+
11471150 if (!ConnectNamedPipe(pipe, NULL))
11481151 {
11491152 OutputMessage(GetWinErrorMessage(GetLastError(), &exit_code, NULL));
--- exewrap/trunk/exewrap/src/minhook/WindowsSDK/include/TlHelp32.h (nonexistent)
+++ exewrap/trunk/exewrap/src/minhook/WindowsSDK/include/TlHelp32.h (revision 31)
@@ -0,0 +1,325 @@
1+/*****************************************************************************\
2+* *
3+* tlhelp32.h - WIN32 tool help functions, types, and definitions *
4+* *
5+* Version 1.0 *
6+* *
7+* NOTE: windows.h/winbase.h must be #included first *
8+* *
9+* Copyright (c) Microsoft Corp. All rights reserved. *
10+* *
11+\*****************************************************************************/
12+
13+#ifndef _INC_TOOLHELP32
14+#define _INC_TOOLHELP32
15+
16+#if _MSC_VER > 1000
17+#pragma once
18+#endif
19+#include <winapifamily.h>
20+
21+#pragma region Desktop Family
22+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
23+
24+
25+#ifdef __cplusplus
26+extern "C" { /* Assume C declarations for C++ */
27+#endif /* __cplusplus */
28+
29+#define MAX_MODULE_NAME32 255
30+
31+/****** Shapshot function **********************************************/
32+
33+HANDLE
34+WINAPI
35+CreateToolhelp32Snapshot(
36+ DWORD dwFlags,
37+ DWORD th32ProcessID
38+ );
39+
40+//
41+// The th32ProcessID argument is only used if TH32CS_SNAPHEAPLIST or
42+// TH32CS_SNAPMODULE is specified. th32ProcessID == 0 means the current
43+// process.
44+//
45+// NOTE that all of the snapshots are global except for the heap and module
46+// lists which are process specific. To enumerate the heap or module
47+// state for all WIN32 processes call with TH32CS_SNAPALL and the
48+// current process. Then for each process in the TH32CS_SNAPPROCESS
49+// list that isn't the current process, do a call with just
50+// TH32CS_SNAPHEAPLIST and/or TH32CS_SNAPMODULE.
51+//
52+// dwFlags
53+//
54+#define TH32CS_SNAPHEAPLIST 0x00000001
55+#define TH32CS_SNAPPROCESS 0x00000002
56+#define TH32CS_SNAPTHREAD 0x00000004
57+#define TH32CS_SNAPMODULE 0x00000008
58+#define TH32CS_SNAPMODULE32 0x00000010
59+#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
60+#define TH32CS_INHERIT 0x80000000
61+//
62+// Use CloseHandle to destroy the snapshot
63+//
64+
65+/****** heap walking ***************************************************/
66+
67+typedef struct tagHEAPLIST32
68+{
69+ SIZE_T dwSize;
70+ DWORD th32ProcessID; // owning process
71+ ULONG_PTR th32HeapID; // heap (in owning process's context!)
72+ DWORD dwFlags;
73+} HEAPLIST32;
74+typedef HEAPLIST32 * PHEAPLIST32;
75+typedef HEAPLIST32 * LPHEAPLIST32;
76+//
77+// dwFlags
78+//
79+#define HF32_DEFAULT 1 // process's default heap
80+#define HF32_SHARED 2 // is shared heap
81+
82+BOOL
83+WINAPI
84+Heap32ListFirst(
85+ HANDLE hSnapshot,
86+ LPHEAPLIST32 lphl
87+ );
88+
89+BOOL
90+WINAPI
91+Heap32ListNext(
92+ HANDLE hSnapshot,
93+ LPHEAPLIST32 lphl
94+ );
95+
96+typedef struct tagHEAPENTRY32
97+{
98+ SIZE_T dwSize;
99+ HANDLE hHandle; // Handle of this heap block
100+ ULONG_PTR dwAddress; // Linear address of start of block
101+ SIZE_T dwBlockSize; // Size of block in bytes
102+ DWORD dwFlags;
103+ DWORD dwLockCount;
104+ DWORD dwResvd;
105+ DWORD th32ProcessID; // owning process
106+ ULONG_PTR th32HeapID; // heap block is in
107+} HEAPENTRY32;
108+typedef HEAPENTRY32 * PHEAPENTRY32;
109+typedef HEAPENTRY32 * LPHEAPENTRY32;
110+//
111+// dwFlags
112+//
113+#define LF32_FIXED 0x00000001
114+#define LF32_FREE 0x00000002
115+#define LF32_MOVEABLE 0x00000004
116+
117+BOOL
118+WINAPI
119+Heap32First(
120+ LPHEAPENTRY32 lphe,
121+ DWORD th32ProcessID,
122+ ULONG_PTR th32HeapID
123+ );
124+
125+BOOL
126+WINAPI
127+Heap32Next(
128+ LPHEAPENTRY32 lphe
129+ );
130+
131+BOOL
132+WINAPI
133+Toolhelp32ReadProcessMemory(
134+ DWORD th32ProcessID,
135+ LPCVOID lpBaseAddress,
136+ LPVOID lpBuffer,
137+ SIZE_T cbRead,
138+ SIZE_T *lpNumberOfBytesRead
139+ );
140+
141+/***** Process walking *************************************************/
142+
143+typedef struct tagPROCESSENTRY32W
144+{
145+ DWORD dwSize;
146+ DWORD cntUsage;
147+ DWORD th32ProcessID; // this process
148+ ULONG_PTR th32DefaultHeapID;
149+ DWORD th32ModuleID; // associated exe
150+ DWORD cntThreads;
151+ DWORD th32ParentProcessID; // this process's parent process
152+ LONG pcPriClassBase; // Base priority of process's threads
153+ DWORD dwFlags;
154+ WCHAR szExeFile[MAX_PATH]; // Path
155+} PROCESSENTRY32W;
156+typedef PROCESSENTRY32W * PPROCESSENTRY32W;
157+typedef PROCESSENTRY32W * LPPROCESSENTRY32W;
158+
159+BOOL
160+WINAPI
161+Process32FirstW(
162+ HANDLE hSnapshot,
163+ LPPROCESSENTRY32W lppe
164+ );
165+
166+BOOL
167+WINAPI
168+Process32NextW(
169+ HANDLE hSnapshot,
170+ LPPROCESSENTRY32W lppe
171+ );
172+
173+typedef struct tagPROCESSENTRY32
174+{
175+ DWORD dwSize;
176+ DWORD cntUsage;
177+ DWORD th32ProcessID; // this process
178+ ULONG_PTR th32DefaultHeapID;
179+ DWORD th32ModuleID; // associated exe
180+ DWORD cntThreads;
181+ DWORD th32ParentProcessID; // this process's parent process
182+ LONG pcPriClassBase; // Base priority of process's threads
183+ DWORD dwFlags;
184+ CHAR szExeFile[MAX_PATH]; // Path
185+} PROCESSENTRY32;
186+typedef PROCESSENTRY32 * PPROCESSENTRY32;
187+typedef PROCESSENTRY32 * LPPROCESSENTRY32;
188+
189+BOOL
190+WINAPI
191+Process32First(
192+ HANDLE hSnapshot,
193+ LPPROCESSENTRY32 lppe
194+ );
195+
196+BOOL
197+WINAPI
198+Process32Next(
199+ HANDLE hSnapshot,
200+ LPPROCESSENTRY32 lppe
201+ );
202+
203+#ifdef UNICODE
204+#define Process32First Process32FirstW
205+#define Process32Next Process32NextW
206+#define PROCESSENTRY32 PROCESSENTRY32W
207+#define PPROCESSENTRY32 PPROCESSENTRY32W
208+#define LPPROCESSENTRY32 LPPROCESSENTRY32W
209+#endif // !UNICODE
210+
211+/***** Thread walking **************************************************/
212+
213+typedef struct tagTHREADENTRY32
214+{
215+ DWORD dwSize;
216+ DWORD cntUsage;
217+ DWORD th32ThreadID; // this thread
218+ DWORD th32OwnerProcessID; // Process this thread is associated with
219+ LONG tpBasePri;
220+ LONG tpDeltaPri;
221+ DWORD dwFlags;
222+} THREADENTRY32;
223+typedef THREADENTRY32 * PTHREADENTRY32;
224+typedef THREADENTRY32 * LPTHREADENTRY32;
225+
226+BOOL
227+WINAPI
228+Thread32First(
229+ HANDLE hSnapshot,
230+ LPTHREADENTRY32 lpte
231+ );
232+
233+BOOL
234+WINAPI
235+Thread32Next(
236+ HANDLE hSnapshot,
237+ LPTHREADENTRY32 lpte
238+ );
239+
240+/***** Module walking *************************************************/
241+
242+typedef struct tagMODULEENTRY32W
243+{
244+ DWORD dwSize;
245+ DWORD th32ModuleID; // This module
246+ DWORD th32ProcessID; // owning process
247+ DWORD GlblcntUsage; // Global usage count on the module
248+ DWORD ProccntUsage; // Module usage count in th32ProcessID's context
249+ BYTE * modBaseAddr; // Base address of module in th32ProcessID's context
250+ DWORD modBaseSize; // Size in bytes of module starting at modBaseAddr
251+ HMODULE hModule; // The hModule of this module in th32ProcessID's context
252+ WCHAR szModule[MAX_MODULE_NAME32 + 1];
253+ WCHAR szExePath[MAX_PATH];
254+} MODULEENTRY32W;
255+typedef MODULEENTRY32W * PMODULEENTRY32W;
256+typedef MODULEENTRY32W * LPMODULEENTRY32W;
257+
258+BOOL
259+WINAPI
260+Module32FirstW(
261+ HANDLE hSnapshot,
262+ LPMODULEENTRY32W lpme
263+ );
264+
265+BOOL
266+WINAPI
267+Module32NextW(
268+ HANDLE hSnapshot,
269+ LPMODULEENTRY32W lpme
270+ );
271+
272+
273+typedef struct tagMODULEENTRY32
274+{
275+ DWORD dwSize;
276+ DWORD th32ModuleID; // This module
277+ DWORD th32ProcessID; // owning process
278+ DWORD GlblcntUsage; // Global usage count on the module
279+ DWORD ProccntUsage; // Module usage count in th32ProcessID's context
280+ BYTE * modBaseAddr; // Base address of module in th32ProcessID's context
281+ DWORD modBaseSize; // Size in bytes of module starting at modBaseAddr
282+ HMODULE hModule; // The hModule of this module in th32ProcessID's context
283+ char szModule[MAX_MODULE_NAME32 + 1];
284+ char szExePath[MAX_PATH];
285+} MODULEENTRY32;
286+typedef MODULEENTRY32 * PMODULEENTRY32;
287+typedef MODULEENTRY32 * LPMODULEENTRY32;
288+
289+//
290+// NOTE CAREFULLY that the modBaseAddr and hModule fields are valid ONLY
291+// in th32ProcessID's process context.
292+//
293+
294+BOOL
295+WINAPI
296+Module32First(
297+ HANDLE hSnapshot,
298+ LPMODULEENTRY32 lpme
299+ );
300+
301+BOOL
302+WINAPI
303+Module32Next(
304+ HANDLE hSnapshot,
305+ LPMODULEENTRY32 lpme
306+ );
307+
308+#ifdef UNICODE
309+#define Module32First Module32FirstW
310+#define Module32Next Module32NextW
311+#define MODULEENTRY32 MODULEENTRY32W
312+#define PMODULEENTRY32 PMODULEENTRY32W
313+#define LPMODULEENTRY32 LPMODULEENTRY32W
314+#endif // !UNICODE
315+
316+
317+#ifdef __cplusplus
318+}
319+#endif
320+
321+
322+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
323+#pragma endregion
324+
325+#endif // _INC_TOOLHELP32
--- exewrap/trunk/exewrap/src/minhook/WindowsSDK/include/winapifamily.h (nonexistent)
+++ exewrap/trunk/exewrap/src/minhook/WindowsSDK/include/winapifamily.h (revision 31)
@@ -0,0 +1,240 @@
1+/*
2+
3+Copyright (c) Microsoft Corporation. All rights reserved.
4+
5+Module Name:
6+
7+ winapifamily.h
8+
9+Abstract:
10+
11+ Master include file for API family partitioning.
12+
13+*/
14+
15+#ifndef _INC_WINAPIFAMILY
16+#define _INC_WINAPIFAMILY
17+
18+#if defined(_MSC_VER) && !defined(MOFCOMP_PASS)
19+#if _MSC_VER >= 1200
20+#pragma warning(push)
21+#pragma warning(disable:4001) /* nonstandard extension 'single line comment' was used */
22+#endif
23+#pragma once
24+#endif // defined(_MSC_VER) && !defined(MOFCOMP_PASS)
25+
26+#include <winpackagefamily.h>
27+
28+/*
29+ * When compiling C and C++ code using SDK header files, the development
30+ * environment can specify a target platform by #define-ing the
31+ * pre-processor symbol WINAPI_FAMILY to one of the following values.
32+ * Each FAMILY value denotes an application family for which a different
33+ * subset of the total set of header-file-defined APIs are available.
34+ * Setting the WINAPI_FAMILY value will effectively hide from the
35+ * editing and compilation environments the existence of APIs that
36+ * are not applicable to the family of applications targeting a
37+ * specific platform.
38+ */
39+
40+/* In Windows 10, WINAPI_PARTITIONs will be used to add additional
41+ * device specific APIs to a particular WINAPI_FAMILY.
42+ * For example, when writing Windows Universal apps, specifying
43+ * WINAPI_FAMILY_APP will hide phone APIs from compilation.
44+ * However, specifying WINAPI_PARTITION_PHONE_APP=1 additionally, will
45+ * unhide any API hidden behind the partition, to the compiler.
46+
47+ * The following partitions are currently defined:
48+ * WINAPI_PARTITION_DESKTOP // usable for Desktop Win32 apps (but not store apps)
49+ * WINAPI_PARTITION_APP // usable for Windows Universal store apps
50+ * WINAPI_PARTITION_PC_APP // specific to Desktop-only store apps
51+ * WINAPI_PARTITION_PHONE_APP // specific to Phone-only store apps
52+ * WINAPI_PARTITION_SYSTEM // specific to System applications
53+
54+ * The following partitions are indirect partitions and defined in
55+ * winpackagefamily.h. These partitions are related to package based
56+ * partitions. For example, specifying WINAPI_PARTITION_SERVER=1 will light up
57+ * any API hidden behind the package based partitions that are bound to
58+ * WINAPI_PARTITION_SERVER, to the compiler.
59+ * WINAPI_PARTITION_SERVER // specific to Server applications
60+*/
61+
62+/*
63+ * The WINAPI_FAMILY values of 0 and 1 are reserved to ensure that
64+ * an error will occur if WINAPI_FAMILY is set to any
65+ * WINAPI_PARTITION value (which must be 0 or 1, see below).
66+ */
67+#define WINAPI_FAMILY_PC_APP 2 /* Windows Store Applications */
68+#define WINAPI_FAMILY_PHONE_APP 3 /* Windows Phone Applications */
69+#define WINAPI_FAMILY_SYSTEM 4 /* Windows Drivers and Tools */
70+#define WINAPI_FAMILY_SERVER 5 /* Windows Server Applications */
71+#define WINAPI_FAMILY_DESKTOP_APP 100 /* Windows Desktop Applications */
72+/* The value of WINAPI_FAMILY_DESKTOP_APP may change in future SDKs. */
73+/* Additional WINAPI_FAMILY values may be defined in future SDKs. */
74+
75+/*
76+ * For compatibility with Windows 8 header files, the following
77+ * synonym for WINAPI_FAMILY_PC_APP is temporarily #define'd.
78+ * Use of this symbol should be considered deprecated.
79+ */
80+#define WINAPI_FAMILY_APP WINAPI_FAMILY_PC_APP
81+
82+/*
83+ * If no WINAPI_FAMILY value is specified, then all APIs available to
84+ * Windows desktop applications are exposed.
85+ */
86+#ifndef WINAPI_FAMILY
87+#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
88+#endif
89+
90+/*
91+ * API PARTITONs are part of an indirection mechanism for mapping between
92+ * individual APIs and the FAMILYs to which they apply.
93+ * Each PARTITION is a category or subset of named APIs. PARTITIONs
94+ * are permitted to have overlapping membership -- some single API
95+ * might be part of more than one PARTITION. PARTITIONS are each #define-ed
96+ * to be either 1 or 0 or depending on the platform at which the app is targeted.
97+ */
98+
99+/*
100+ * The mapping between families and partitions is summarized here.
101+ * An X indicates that the given partition is active for the given
102+ * platform/family.
103+ *
104+ * +-------------------+---+
105+ * | *Partition* | |
106+ * +---+---+---+---+---+---+
107+ * | | | | | | |
108+ * | | | | | | |
109+ * | | | | P | | |
110+ * | | | | H | | |
111+ * | D | | | O | | |
112+ * | E | | P | N | S | S |
113+ * | S | | C | E | Y | E |
114+ * | K | | _ | _ | S | R |
115+ * | T | A | A | A | T | V |
116+ * +-------------------------+----+ O | P | P | P | E | E |
117+ * | *Platform/Family* \| P | P | P | P | M | R |
118+ * +------------------------------+---+---+---+---+---+---+
119+ * | WINAPI_FAMILY_DESKTOP_APP | X | X | X | | | |
120+ * +------------------------------+---+---+---+---+---+---+
121+ * | WINAPI_FAMILY_PC_APP | | X | X | | | |
122+ * +------------------------------+---+---+---+---+---+---+
123+ * | WINAPI_FAMILY_PHONE_APP | | X | | X | | |
124+ * +----------------------------- +---+---+---+---+---+---+
125+ * | WINAPI_FAMILY_SYSTEM | | | | | X | |
126+ * +----------------------------- +---+---+---+---+---+---+
127+ * | WINAPI_FAMILY_SERVER | | | | | X | X |
128+ * +------------------------------+---+---+---+---+---+---+
129+ *
130+ * The table above is encoded in the following expressions,
131+ * each of which evaluates to 1 or 0.
132+ *
133+ * Whenever a new family is added, all of these expressions
134+ * need to be reconsidered.
135+ */
136+#if WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP && \
137+ WINAPI_FAMILY != WINAPI_FAMILY_PC_APP && \
138+ WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP && \
139+ WINAPI_FAMILY != WINAPI_FAMILY_SYSTEM && \
140+ WINAPI_FAMILY != WINAPI_FAMILY_SERVER
141+#error Unknown WINAPI_FAMILY value. Was it defined in terms of a WINAPI_PARTITION_* value?
142+#endif
143+
144+#ifndef WINAPI_PARTITION_DESKTOP
145+#define WINAPI_PARTITION_DESKTOP (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
146+#endif
147+
148+#ifndef WINAPI_PARTITION_APP
149+#define WINAPI_PARTITION_APP \
150+ (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP || \
151+ WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || \
152+ WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
153+#endif
154+
155+#ifndef WINAPI_PARTITION_PC_APP
156+#define WINAPI_PARTITION_PC_APP \
157+ (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP || \
158+ WINAPI_FAMILY == WINAPI_FAMILY_PC_APP)
159+#endif
160+
161+#ifndef WINAPI_PARTITION_PHONE_APP
162+#define WINAPI_PARTITION_PHONE_APP (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
163+#endif
164+
165+/*
166+ * SYSTEM is the only partition defined here.
167+ * All other System based editions are defined as packages
168+ * on top of the System partition.
169+ * See winpackagefamily.h for packages level partitions
170+ */
171+#ifndef WINAPI_PARTITION_SYSTEM
172+#define WINAPI_PARTITION_SYSTEM \
173+ (WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM || \
174+ WINAPI_FAMILY == WINAPI_FAMILY_SERVER)
175+#endif
176+
177+/*
178+ * For compatibility with Windows Phone 8 header files, the following
179+ * synonym for WINAPI_PARTITION_PHONE_APP is temporarily #define'd.
180+ * Use of this symbol should be regarded as deprecated.
181+ */
182+#define WINAPI_PARTITION_PHONE WINAPI_PARTITION_PHONE_APP
183+
184+/*
185+ * Header files use the WINAPI_FAMILY_PARTITION macro to assign one or
186+ * more declarations to some group of partitions. The macro chooses
187+ * whether the preprocessor will emit or omit a sequence of declarations
188+ * bracketed by an #if/#endif pair. All header file references to the
189+ * WINAPI_PARTITION_* values should be in the form of occurrences of
190+ * WINAPI_FAMILY_PARTITION(...).
191+ *
192+ * For example, the following usage of WINAPI_FAMILY_PARTITION identifies
193+ * a sequence of declarations that are part of both the Windows Desktop
194+ * Partition and the Windows-Phone-Specific Store Partition:
195+ *
196+ * #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PHONE_APP)
197+ * ...
198+ * #endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PHONE_APP)
199+ *
200+ * The comment on the closing #endif allow tools as well as people to find the
201+ * matching #ifdef properly.
202+ *
203+ * Usages of WINAPI_FAMILY_PARTITION may be combined, when the partitition definitions are
204+ * related. In particular one might use declarations like
205+ *
206+ * #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
207+ *
208+ * or
209+ *
210+ * #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
211+ *
212+ * Direct references to WINAPI_PARTITION_ values (eg #if !WINAPI_FAMILY_PARTITION_...)
213+ * should not be used.
214+ */
215+#define WINAPI_FAMILY_PARTITION(Partitions) (Partitions)
216+
217+/*
218+ * Macro used to #define or typedef a symbol used for selective deprecation
219+ * of individual methods of a COM interfaces that are otherwise available
220+ * for a given set of partitions.
221+ */
222+#define _WINAPI_DEPRECATED_DECLARATION __declspec(deprecated("This API cannot be used in the context of the caller's application type."))
223+
224+/*
225+ * For compatibility with Windows 8 header files, the following
226+ * symbol is temporarily conditionally #define'd. Additional symbols
227+ * like this should be not defined in winapifamily.h, but rather should be
228+ * introduced locally to the header files of the component that needs them.
229+ */
230+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
231+# define APP_DEPRECATED_HRESULT HRESULT _WINAPI_DEPRECATED_DECLARATION
232+#endif // WINAPIFAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
233+
234+#if defined(_MSC_VER) && !defined(MOFCOMP_PASS)
235+#if _MSC_VER >= 1200
236+#pragma warning(pop)
237+#endif
238+#endif
239+
240+#endif /* !_INC_WINAPIFAMILY */
--- exewrap/trunk/exewrap/src/minhook/WindowsSDK/include/winpackagefamily.h (nonexistent)
+++ exewrap/trunk/exewrap/src/minhook/WindowsSDK/include/winpackagefamily.h (revision 31)
@@ -0,0 +1,91 @@
1+/*
2+
3+Copyright (c) Microsoft Corporation. All rights reserved.
4+
5+Module Name:
6+
7+ winpackagefamily.h
8+
9+Abstract:
10+
11+ API family partitioning based on packages.
12+
13+*/
14+
15+#ifndef _INC_WINPACKAGEFAMILY
16+#define _INC_WINPACKAGEFAMILY
17+
18+#if defined(_MSC_VER) && !defined(MOFCOMP_PASS)
19+#if _MSC_VER >= 1200
20+#pragma warning(push)
21+#pragma warning(disable:4001) /* nonstandard extension 'single line comment' was used */
22+#endif
23+#pragma once
24+#endif // defined(_MSC_VER) && !defined(MOFCOMP_PASS)
25+
26+#ifndef WINAPI_PARTITION_SERVER
27+#define WINAPI_PARTITION_SERVER (WINAPI_FAMILY == WINAPI_FAMILY_SERVER)
28+#endif
29+
30+/*
31+ * PARTITIONS based on packages are each #undef'ed below, and then will be #define-ed
32+ * to be either 1 or 0 or depending on the active WINAPI_FAMILY.
33+ */
34+#undef WINAPI_PARTITION_PKG_WINTRUST
35+#undef WINAPI_PARTITION_PKG_WEBSERVICES
36+#undef WINAPI_PARTITION_PKG_EVENTLOGSERVICE
37+#undef WINAPI_PARTITION_PKG_VHD
38+#undef WINAPI_PARTITION_PKG_PERFCOUNTER
39+#undef WINAPI_PARTITION_PKG_SECURESTARTUP
40+#undef WINAPI_PARTITION_PKG_REMOTEFS
41+#undef WINAPI_PARTITION_PKG_BOOTABLESKU
42+#undef WINAPI_PARTITION_PKG_CMDTOOLS
43+#undef WINAPI_PARTITION_PKG_DISM
44+#undef WINAPI_PARTITION_PKG_CORESETUP
45+#undef WINAPI_PARTITION_PKG_APPRUNTIME
46+#undef WINAPI_PARTITION_PKG_ESENT
47+#undef WINAPI_PARTITION_PKG_WINMGMT
48+#undef WINAPI_PARTITION_PKG_WNV
49+#undef WINAPI_PARTITION_PKG_CLUSTER
50+#undef WINAPI_PARTITION_PKG_VSS
51+#undef WINAPI_PARTITION_PKG_TRAFFIC
52+#undef WINAPI_PARTITION_PKG_ISCSI
53+#undef WINAPI_PARTITION_PKG_STORAGE
54+#undef WINAPI_PARTITION_PKG_MPSSVC
55+#undef WINAPI_PARTITION_PKG_APPXDEPLOYMENT
56+#undef WINAPI_PARTITION_PKG_WER
57+
58+/*
59+ * PARTITIONS for feature packages. Each package might be active for one or more editions
60+ */
61+#define WINAPI_PARTITION_PKG_WINTRUST (WINAPI_PARTITION_SERVER == 1)
62+#define WINAPI_PARTITION_PKG_WEBSERVICES (WINAPI_PARTITION_SERVER == 1)
63+#define WINAPI_PARTITION_PKG_EVENTLOGSERVICE (WINAPI_PARTITION_SERVER == 1)
64+#define WINAPI_PARTITION_PKG_VHD (WINAPI_PARTITION_SERVER == 1)
65+#define WINAPI_PARTITION_PKG_PERFCOUNTER (WINAPI_PARTITION_SERVER == 1)
66+#define WINAPI_PARTITION_PKG_SECURESTARTUP (WINAPI_PARTITION_SERVER == 1)
67+#define WINAPI_PARTITION_PKG_REMOTEFS (WINAPI_PARTITION_SERVER == 1)
68+#define WINAPI_PARTITION_PKG_BOOTABLESKU (WINAPI_PARTITION_SERVER == 1)
69+#define WINAPI_PARTITION_PKG_CMDTOOLS (WINAPI_PARTITION_SERVER == 1)
70+#define WINAPI_PARTITION_PKG_DISM (WINAPI_PARTITION_SERVER == 1)
71+#define WINAPI_PARTITION_PKG_CORESETUP (WINAPI_PARTITION_SERVER == 1)
72+#define WINAPI_PARTITION_PKG_APPRUNTIME (WINAPI_PARTITION_SERVER == 1)
73+#define WINAPI_PARTITION_PKG_ESENT (WINAPI_PARTITION_SERVER == 1)
74+#define WINAPI_PARTITION_PKG_WINMGMT (WINAPI_PARTITION_SERVER == 1)
75+#define WINAPI_PARTITION_PKG_WNV (WINAPI_PARTITION_SERVER == 1)
76+#define WINAPI_PARTITION_PKG_CLUSTER (WINAPI_PARTITION_SERVER == 1)
77+#define WINAPI_PARTITION_PKG_VSS (WINAPI_PARTITION_SERVER == 1)
78+#define WINAPI_PARTITION_PKG_TRAFFIC (WINAPI_PARTITION_SERVER == 1)
79+#define WINAPI_PARTITION_PKG_ISCSI (WINAPI_PARTITION_SERVER == 1)
80+#define WINAPI_PARTITION_PKG_STORAGE (WINAPI_PARTITION_SERVER == 1)
81+#define WINAPI_PARTITION_PKG_MPSSVC (WINAPI_PARTITION_SERVER == 1)
82+#define WINAPI_PARTITION_PKG_APPXDEPLOYMENT (WINAPI_PARTITION_SERVER == 1)
83+#define WINAPI_PARTITION_PKG_WER (WINAPI_PARTITION_SERVER == 1)
84+
85+#if defined(_MSC_VER) && !defined(MOFCOMP_PASS)
86+#if _MSC_VER >= 1200
87+#pragma warning(pop)
88+#endif
89+#endif
90+
91+#endif /* !_INC_WINPACKAGEFAMILY */
Show on old repository browser