• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
Drugwash

KernelEx -- On building, debugging and related matters...

152 posts in this topic

What if we built the struct in Assembler? Would there be a chance to crop whatever name variable to an 8-byte array then?

Or define a temporary zero-filled 8-byte array, memcpy the first (max.8) chars (bytes) from the #name variable to the array and use the array in the struct declaration.

Dunno if I'm making much sense here - as I said, I'm not a professional programmer.:blushing:

0

Share this post


Link to post
Share on other sites

What if we built the struct in Assembler? Would there be a chance to crop whatever name variable to an 8-byte array then?

Yes. Look at VMM.INC for more info.

Or define a temporary zero-filled 8-byte array, memcpy the first (max.8) chars (bytes) from the #name variable to the array and use the array in the struct declaration.

Dunno if I'm making much sense here - as I said, I'm not a professional programmer.:blushing:

The array is embedded in the Struct, you can't use a pointer to it. You would have to copy the characters into the Struct directly.

memcpy would run during initialization. As I said before, I cannot be sure that the Struct is not scanned or copied before initialization.

0

Share this post


Link to post
Share on other sites

Sorry, I tried but obviously my ASM knowledge is way too scarse for this (simple) task. Would you please do the honors? The only other people I know that could cope with ASM are Xeno86 and Tihiy; there used to be PassingBy, but he's long gone and I don't know if Leyok knows any ASM - never mentioned it so far.

And just to prove I did try:

struct VxD_Desc_Block name##_DDB = \
{ \
__asm DD 0 \
__asm DW DDK_VERSION \
__asm DW device_num \
__asm DB ver_major \
__asm DB ver_minor \
__asm DW 0 \
__asm DB[8] name " " \
__asm DD init_order \
__asm DD &name##_CTRL \
__asm DD &V86_proc \
__asm DD &PM_proc \
__asm DD 0 \
__asm DD 0 \
__asm DD ref_data \
__asm DD 0 \
__asm DD 0 \
__asm DD 0 \
__asm DD 'Prev' \
__asm DD SIZE(VxD_Desc_Block) \
__asm DD 'Rsv1' \
__asm DD 'Rsv2' \
__asm DD 'Rsv3' \
}

This one obviously works, but loses flexibility:


EXTERNC struct VxD_Desc_Block name##_DDB = \
{ \
0, DDK_VERSION, device_num, ver_major, ver_minor, 0, \
{'V', 'K', 'R', 'N', 'L', 'E', 'X', ' '}, init_order, (ULONG)name##_CTRL, (ULONG)V86_proc, (ULONG)PM_proc, \
0, 0, ref_data, 0, 0, 0, 'Prev', sizeof(struct VxD_Desc_Block), \
'Rsv1', 'Rsv2', 'Rsv3' \
}

0

Share this post


Link to post
Share on other sites
@dencorso: A patch would not work for eight character identifiers since the program cannot be patched if it cannot be compiled. It could only be used to fix the padding issue.

With all due respect, of course it would: when the 8th character is a space, one patches 0x00 to 0x20. But if there are 8 characters, it's simply a question of using an incomplete 7 characters string at build time, and then patching the final 0x00, added by C++, with the right value for the 8th character. :w00t:

Yes, but that would require generating a separate 7 Character string when the Identifier is 8 Characters. That would defeat the purpose of using the util.h Macro as is. It would also require specifying the eighth Character to the Patcher.

VMM.H defines these Macros also, but Microsoft specifies a separate "quote_name" argument in addition to using a "name" argument.

OMG. What is the problem? The driver works as is... so why patch, why bother?

0

Share this post


Link to post
Share on other sites

Well, one thing led to another and this came to attention at some point. We thought "Whadda heck, since we stumbled into it, let's fix it". But it turned out to be harder than expected, at least for an amateur like me. Dunno about Leyok, probably has bigger fish to fry. EDIT: Actually, he commited a fix to this already, although it seems more complicated than it should, considering flexibility is lost anyway.

But major problem for me is that none of my builds will work properly. Did you ever manage to compile and install from Leyok's repository succesfully? It compiles fine by me, but always stumbles in kexbases (logs are attached somewhere in previous posts). If I replace mine with Leyok's, it works fine. No idea what's going on, since your code builds and runs fine and I also built and ran many other projects without problems.

Edited by Drugwash
0

Share this post


Link to post
Share on other sites

Sorry, I tried but obviously my ASM knowledge is way too scarse for this (simple) task. Would you please do the honors? The only other people I know that could cope with ASM are Xeno86 and Tihiy; there used to be PassingBy, but he's long gone and I don't know if Leyok knows any ASM - never mentioned it so far.

And just to prove I did try:

struct VxD_Desc_Block name##_DDB = \
{ \
__asm DD 0 \
__asm DW DDK_VERSION \
__asm DW device_num \
__asm DB ver_major \
__asm DB ver_minor \
__asm DW 0 \
__asm DB[8] name " " \
__asm DD init_order \
__asm DD &name##_CTRL \
__asm DD &V86_proc \
__asm DD &PM_proc \
__asm DD 0 \
__asm DD 0 \
__asm DD ref_data \
__asm DD 0 \
__asm DD 0 \
__asm DD 0 \
__asm DD 'Prev' \
__asm DD SIZE(VxD_Desc_Block) \
__asm DD 'Rsv1' \
__asm DD 'Rsv2' \
__asm DD 'Rsv3' \
}

This one obviously works, but loses flexibility:


EXTERNC struct VxD_Desc_Block name##_DDB = \
{ \
0, DDK_VERSION, device_num, ver_major, ver_minor, 0, \
{'V', 'K', 'R', 'N', 'L', 'E', 'X', ' '}, init_order, (ULONG)name##_CTRL, (ULONG)V86_proc, (ULONG)PM_proc, \
0, 0, ref_data, 0, 0, 0, 'Prev', sizeof(struct VxD_Desc_Block), \
'Rsv1', 'Rsv2', 'Rsv3' \
}

I was thinking of separately Compiled Assembly Code, not embedded Assembly.

OMG. What is the problem? The driver works as is... so why patch, why bother?

That is because VKRNLEX.VXD does not export any Dynacall or Win32 Services. It doesn't even have a Numerical ID.

I already said for this application, the issue is cosmetic and can optionally be fixed with a Character Array.

0

Share this post


Link to post
Share on other sites

Well, one thing led to another and this came to attention at some point. We thought "Whadda heck, since we stumbled into it, let's fix it". But it turned out to be harder than expected, at least for an amateur like me. Dunno about Leyok, probably has bigger fish to fry. EDIT: Actually, he commited a fix to this already, although it seems more complicated than it should, considering flexibility is lost anyway.

Why be concerned about maintaining flexibility when it will never be needed? MS defined this thing as eight characters with space padding, so why not simply follow Mr Loew's character array suggestion?

Joe.

0

Share this post


Link to post
Share on other sites

As you can see in the EDIT you quoted, Leyok had already taken care of the issue. Generally, I like to keep things open for improvements, but if that's not really necessary for the near future then it may be put to hold.

Anyway, this is not my project so I'm gonna stick with compilation issues for now. We'll see what comes.

0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

I'm trying to compile the newest build, but there's one problem - KexBases.dll doesn't build with the other files with batch build nor alone with batch build. Here's the debug log:


Deleting intermediate files and output files for project 'KernelEx Base Shared - Win32 Release'.
Deleting intermediate files and output files for project 'KernelEx Base Shared - Win32 Debug'.
--------------------Configuration: KernelEx Base Shared - Win32 Release--------------------
Performing Custom Build Step on .\dirlist
Error - compile PREP (Release) project first
'choice' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.

kexbases.dll - 1 error(s), 0 warning(s)
--------------------Configuration: KernelEx Base Shared - Win32 Debug--------------------
Performing Custom Build Step on .\dirlist
Error - compile PREP (Release) project first
'choice' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.

kexbases.dll - 1 error(s), 0 warning(s)

This hasn't happened until PrintDlgEx was renamed to print.c in the latest repository. It says in the debug log I have to compile PREP (release) project first, but I HAD already compiled it. In fact, I just compiled it with batch build just now manually. I just copied PREP.EXE to the Release folder. But I'm still getting the same error.

Here's KexBases.plg:


Build Log

--------------------Configuration: KernelEx Base Shared - Win32 Release--------------------

Command Lines
Creating temporary file "C:\DOCUME~1\John\LOCALS~1\Temp\RSP143.bat" with contents
[
@echo off
if not exist "C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\util\prep\Release\prep.exe" goto error
"C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\util\prep\Release\prep.exe" "."
goto quit
:error
echo Error - compile PREP (Release) project first
echo 1 | choice /C:1 /N >NUL
:quit
]
Creating command line "C:\DOCUME~1\John\LOCALS~1\Temp\RSP143.bat"
Creating temporary file "C:\DOCUME~1\John\LOCALS~1\Temp\RSP144.bat" with contents
[
@echo off
echo /nologo /c /TC /DK32ORD_IMPLIB >"%TEMP%\resp1455.tmp"
echo /Fo".\Release\k32ord.obj" >>"%TEMP%\resp1455.tmp"
echo "C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\common\k32ord.h" >>"%TEMP%\resp1455.tmp"
cl @"%TEMP%\resp1455.tmp"
del "%TEMP%\resp1455.tmp" >NUL
echo /DLL /NOENTRY /NOLOGO /IGNORE:4070 /MACHINE:IX86 >"%TEMP%\resp1456.tmp"
echo /DEF:"C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\common\k32ord.def" >>"%TEMP%\resp1456.tmp"
echo /OUT:".\Release\k32ord.dll" >>"%TEMP%\resp1456.tmp"
echo /IMPLIB:".\Release\k32ord.lib" >>"%TEMP%\resp1456.tmp"
echo ".\Release\k32ord.obj" >>"%TEMP%\resp1456.tmp"
link @"%TEMP%\resp1456.tmp"
del "%TEMP%\resp1456.tmp" >NUL
del ".\Release\k32ord.exp" >NUL
del ".\Release\k32ord.obj" >NUL
del ".\Release\k32ord.dll" >NUL
]
Creating command line "C:\DOCUME~1\John\LOCALS~1\Temp\RSP144.bat"
Creating command line "rc.exe /l 0x415 /fo"Release/kexbases.res" /i "../../common" /d "NDEBUG" "C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\kexbases.rc""
Performing Custom Build Step on .\dirlist
Error - compile PREP (Release) project first
'choice' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.
Output Window



Results
kexbases.dll - 1 error(s), 0 warning(s)

--------------------Configuration: KernelEx Base Shared - Win32 Debug--------------------

Command Lines
Creating temporary file "C:\DOCUME~1\John\LOCALS~1\Temp\RSP145.bat" with contents
[
@echo off
if not exist "C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\util\prep\Release\prep.exe" goto error
"C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\util\prep\Release\prep.exe" "."
goto quit
:error
echo Error - compile PREP (Release) project first
echo 1 | choice /C:1 /N >NUL
:quit
]
Creating command line "C:\DOCUME~1\John\LOCALS~1\Temp\RSP145.bat"
Creating temporary file "C:\DOCUME~1\John\LOCALS~1\Temp\RSP146.bat" with contents
[
@echo off
echo /nologo /c /TC /DK32ORD_IMPLIB >"%TEMP%\resp1455.tmp"
echo /Fo".\Debug\k32ord.obj" >>"%TEMP%\resp1455.tmp"
echo "C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\common\k32ord.h" >>"%TEMP%\resp1455.tmp"
cl @"%TEMP%\resp1455.tmp"
del "%TEMP%\resp1455.tmp" >NUL
echo /DLL /NOENTRY /NOLOGO /IGNORE:4070 /MACHINE:IX86 >"%TEMP%\resp1456.tmp"
echo /DEF:"C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\common\k32ord.def" >>"%TEMP%\resp1456.tmp"
echo /OUT:".\Debug\k32ord.dll" >>"%TEMP%\resp1456.tmp"
echo /IMPLIB:".\Debug\k32ord.lib" >>"%TEMP%\resp1456.tmp"
echo ".\Debug\k32ord.obj" >>"%TEMP%\resp1456.tmp"
link @"%TEMP%\resp1456.tmp"
del "%TEMP%\resp1456.tmp" >NUL
del ".\Debug\k32ord.exp" >NUL
del ".\Debug\k32ord.obj" >NUL
del ".\Debug\k32ord.dll" >NUL
]
Creating command line "C:\DOCUME~1\John\LOCALS~1\Temp\RSP146.bat"
Creating command line "rc.exe /l 0x415 /fo"Debug/kexbases.res" /i "../../common" /d "_DEBUG" "C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbases\kexbases.rc""
Performing Custom Build Step on .\dirlist
Error - compile PREP (Release) project first
'choice' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.
Output Window



Results
kexbases.dll - 1 error(s), 0 warning(s)

Edited by coolman
0

Share this post


Link to post
Share on other sites

@ coolman: Haven't checked the latest commits yet, but apparently there's a new pre/post build command that involves cmd.exe, which is not available in Win9x, hence the error.

@ Leyok: Yes, I've seen the changes you mentioned, albeit a bit later. I mentioned flexibility in the idea another VxD would ever be added to the project and would require the use of that struct, not only a possible name change for VKRNLEX. But the use of an extra parameter, defined as an array, would take care of the issue anyway, so I guess we cleared this one out.

Oh and sorry about the ASM mention - it should've been obvious to me.:blushing:

0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

@coolman : I missed to add comdlg\print.c to project (fixed the issue from http://www.msfn.org/...h-kernelex-451/).

As for the commands, I didn't add any pre/post build commands to the project.

Alright, I just grabbed the newest repository and the build was a complete success. Here's the new build:

KernelEx-dev.7z

I always did a batch build, it used to work in Xeno's version, only that kexcontrol had to be executed separately, after Core (Debug) and sdbcreate must be disabled since it won't execute under Win9x (I use 98SE).

sdbcreate.exe failed to build. But the .NSI installer compiled OK so I don't think this is a big deal because Drugwash says it won't run under Win9x as mentioned in the quote above. Or was that only Xeno's builds? Oh, it doesn't matter. It seemed to have tried to execute an instance of CMD.EXE, which is not present in a clean install of a Win9x machine. You have to get it from a 3rd Party, the Win2k one that was re-compiled to work under Win9x.

@Leyok Something I've noticed with your new builds, Firefox 3 doesn't install, it just stops at 'Installing Language Files (en-US)'. After some working around that, I got it to install, then I ran it, and it tries to load but it doesn't run or show the GUI or ANYTHING and just crashes on start. It doesn't show its presence, just this one error message:

ZVEPkcj.png

I can't figure out what the deal is with that. KernelEx 4.5.2 runs Firefox 3 perfectly.

By the way, just a warning everyone: DON'T install Revolutions Pack along with this. The following has been mentioned before, SP3.x MAY be fine, but RP and Leyok's builds together can make deleted files stay in their original locations and new changes/items and icons not appear until you hit F5 to refresh and make your icons and taskbar glitchy and just make your system more unstable and unusable. Once again, ABSOLUTELY DON'T install RP with one of these new builds installed. But now I can sort of understand why RP (sometimes USP) wasn't built to go with Kex and Kex wasn't built to go with RP/USP. I say USP sometimes because of the bottom line of this quote, which I made bold for your convenience:

Test results:

* Freshly installed Win98 SE: OK.

* Freshly installed Win98 SE and IE 6.0 SP1: OK.

* Freshly installed Win98 SE, IE 6.0 SP1 and KernelEx 4: OK.

But if it says that, I guess the newer USP has a little more problems running with Kex. But who's to know, and what can I say? This is only Beta software so far. It's what you have to expect from it.

Also, after I've installed these recent builds, the computer hasn't been able to restart using the Start Menu shutdown, It just acts like nothing happened. So I try restarting again or run some sort of application (any application, including others that allow the computer to restart such as SHExitWindowsEx (same as start menu shutdown), runonce -q, and others. But it just gives me an error message like this:

wPgHCL8.png

I just have to force it to restart by holding the power button.

Anyway, here's the compile log:


Deleting intermediate files and output files for project 'kexcrt - Win32 Release'.
Deleting intermediate files and output files for project 'Core - Win32 Release'.
Deleting intermediate files and output files for project 'Core - Win32 Debug'.
Deleting intermediate files and output files for project 'Core - Win32 Release APIHOOK'.
Deleting intermediate files and output files for project 'prep - Win32 Release'.
Deleting intermediate files and output files for project 'prep - Win32 Debug'.
Deleting intermediate files and output files for project 'KernelEx Base NonShared - Win32 Release'.
Deleting intermediate files and output files for project 'KernelEx Base NonShared - Win32 Debug'.
Deleting intermediate files and output files for project 'KernelEx Base Shared - Win32 Release'.
Deleting intermediate files and output files for project 'KernelEx Base Shared - Win32 Debug'.
Deleting intermediate files and output files for project 'VxD - Win32 Release'.
Deleting intermediate files and output files for project 'VxD - Win32 Debug'.
Deleting intermediate files and output files for project 'Core - Win32 Release'.
Deleting intermediate files and output files for project 'auxiliary - Win32 Release'.
Deleting intermediate files and output files for project 'kexCOM - Win32 Release'.
Deleting intermediate files and output files for project 'kexCOM - Win32 Debug'.
Deleting intermediate files and output files for project 'kexcontrol - Win32 Release'.
Deleting intermediate files and output files for project 'kexcontrol - Win32 Debug'.
Deleting intermediate files and output files for project 'sdbcreate - Win32 Release'.
Deleting intermediate files and output files for project 'sdbcreate - Win32 Debug'.
Deleting intermediate files and output files for project 'sheet - Win32 Release'.
Deleting intermediate files and output files for project 'sheet - Win32 Debug'.
Deleting intermediate files and output files for project 'verify - Win32 Release'.
Deleting intermediate files and output files for project 'verify - Win32 Debug'.
--------------------Configuration: kexcrt - Win32 Release--------------------
Compiling...
_vsnprintf.c
abort.c
argcargv.c
assert.c
atoi.c
atol.c
atoll.c
concrt0.c
ctypes.c
dllcrt0.c
exit.c
init.c
isalnum.c
isalpha.c
isascii.c
isblank.c
iscntrl.c
isdigit.c
isgraph.c
islower.c
Generating Code...
Compiling...
isprint.c
ispunct.c
isspace.c
isupper.c
isxdigit.c
memccpy.c
memchr.c
memcmp.c
memcpy.c
memmem.c
memmove.c
Generating Code...
Compiling...
memory-cpp.cpp
Generating Code...
Compiling...
memory.c
memrchr.c
memset.c
memswap.c
printf.c
purecall.c
snprintf.c
sprintf.c
sscanf.c
strcat.c
strchr.c
strcmp.c
strcmpi.c
strcpy.c
strdup.c
strlen.c
strncat.c
strncmp.c
strncpy.c
strnicmp.c
Generating Code...
Compiling...
strnlen.c
strntoimax.c
strntoumax.c
strpbrk.c
strrchr.c
strsep.c
strstr.c
strtok.c
strtok_r.c
strtol.c
strtoll.c
strtoul.c
strtoull.c
strtoumax.c
strupr.c
strxspn.c
tolower.c
toupper.c
vsnprintf.c
vsprintf.c
Generating Code...
Compiling...
vsscanf.c
wincrt0.c
write.c
Generating Code...
Creating library...

kexcrt.lib - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Release--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Release/KernelEx.lib and object Release/KernelEx.exp
1 file(s) copied.

KernelEx.dll - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Debug--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Debug\k32ord.lib and object .\Debug\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
debug.cpp
debugproto.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Debug/KernelEx.lib and object Debug/KernelEx.exp
1 file(s) copied.

KernelEx.dll - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Release APIHOOK--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Release_APIHOOK\k32ord.lib and object .\Release_APIHOOK\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Release_APIHOOK/KernelEx.lib and object Release_APIHOOK/KernelEx.exp
1 file(s) copied.

KernelEx.dll - 0 error(s), 0 warning(s)
--------------------Configuration: prep - Win32 Release--------------------
Compiling...
prep.cpp
Linking...

prep.exe - 0 error(s), 0 warning(s)
--------------------Configuration: prep - Win32 Debug--------------------
Compiling...
prep.cpp
Linking...

prep.exe - 0 error(s), 0 warning(s)
--------------------Configuration: KernelEx Base NonShared - Win32 Release--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'rpcrt4\'
Directory is up to date
Processing directory: 'winspool\'
Directory is up to date
Processing directory: 'shfolder\'
Directory is up to date
Processing directory: 'winmm\'
Directory is up to date
Processing directory: 'ws2_32\'
Directory is up to date
Processing directory: 'ole32\'
Directory is up to date
Processing directory: 'cryptui\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Processing directory: 'netapi32\'
Directory is up to date
Performing Custom Build Step on .\kexbasen.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
allocator.c
C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbasen\kernel32\jemalloc/jemalloc.c(239) : warning C4163: '_BitScanForward' : not available as an intrinsic function
DelayLoadFailureHook.c
ThreadPool.c
TlsExt.c
unikernel32.c
_user32_apilist.c
uniuser32.c
_gdi32_apilist.c
ScriptCache.cpp
UberGDI.c
unigdi32.c
_advapi32_apilist.c
uniadvapi32.c
_comdlg32_apilist.c
openfilename_fix.c
opensavefile.c
unicomdlg32.c
_shell32_apilist.c
SHBindToParent.c
SHCreateDirectoryEx.c
SHGetFolderLocation.c
SHGetFolderPath.c
SHGetSpecialFolder.c
SHParseDisplayName.c
unishell32.c
_rpcrt4_apilist.c
NdrDllGetClassObject.c
unirpcrt4.c
_winspool_apilist.c
_winspool_stubs.c
DefaultPrinter.c
uniwinspool.c
_shfolder_apilist.c
shfolder.c
_winmm_apilist.c
uniwinmm.c
_ws2_32_apilist.c
addinfo.c
select_fix.c
_ole32_apilist.c
CoWaitForMultipleHandles.c
_cryptui_apilist.c
CryptUIDlgViewContext.c
_ntdll_apilist.c
_ntdll_stubs.c
ntruntime.c
_netapi32_apilist.c
netalert.c
netbuffer.c
netget.c
netshare.c
common.c
main.c
shlord.c
unifwd.c
Linking...
Creating library Release/kexbasen.lib and object Release/kexbasen.exp

kexbasen.dll - 0 error(s), 1 warning(s)
--------------------Configuration: KernelEx Base NonShared - Win32 Debug--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'rpcrt4\'
Directory is up to date
Processing directory: 'winspool\'
Directory is up to date
Processing directory: 'shfolder\'
Directory is up to date
Processing directory: 'winmm\'
Directory is up to date
Processing directory: 'ws2_32\'
Directory is up to date
Processing directory: 'ole32\'
Directory is up to date
Processing directory: 'cryptui\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Processing directory: 'netapi32\'
Directory is up to date
Performing Custom Build Step on .\kexbasen.def
k32ord.h
Creating library .\Debug\k32ord.lib and object .\Debug\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
allocator.c
C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbasen\kernel32\jemalloc/jemalloc.c(239) : warning C4163: '_BitScanForward' : not available as an intrinsic function
DelayLoadFailureHook.c
ThreadPool.c
TlsExt.c
unikernel32.c
_user32_apilist.c
uniuser32.c
_gdi32_apilist.c
ScriptCache.cpp
UberGDI.c
unigdi32.c
_advapi32_apilist.c
uniadvapi32.c
_comdlg32_apilist.c
openfilename_fix.c
opensavefile.c
unicomdlg32.c
_shell32_apilist.c
SHBindToParent.c
SHCreateDirectoryEx.c
SHGetFolderLocation.c
SHGetFolderPath.c
SHGetSpecialFolder.c
SHParseDisplayName.c
unishell32.c
_rpcrt4_apilist.c
NdrDllGetClassObject.c
unirpcrt4.c
_winspool_apilist.c
_winspool_stubs.c
DefaultPrinter.c
uniwinspool.c
_shfolder_apilist.c
shfolder.c
_winmm_apilist.c
uniwinmm.c
_ws2_32_apilist.c
addinfo.c
select_fix.c
_ole32_apilist.c
CoWaitForMultipleHandles.c
_cryptui_apilist.c
CryptUIDlgViewContext.c
_ntdll_apilist.c
_ntdll_stubs.c
ntruntime.c
_netapi32_apilist.c
netalert.c
netbuffer.c
netget.c
netshare.c
common.c
main.c
shlord.c
unifwd.c
Linking...
Creating library Debug/kexbasen.lib and object Debug/kexbasen.exp

kexbasen.dll - 0 error(s), 1 warning(s)
--------------------Configuration: KernelEx Base Shared - Win32 Release--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'version\'
Directory is up to date
Processing directory: 'comctl32\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Performing Custom Build Step on .\kexbases.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
_kernel32_stubs.c
console.c
critsect.c
directory.c
file.c
handle.c
inter.c
IsProcessorFeaturePresent.c
jobs.c
KEXVersion.c
locale.c
locale_casemap.c
locale_collation.c
locale_fold.c
locale_sortkey.c
locale_wctype.c
mem.c
module.c
pointer.c
port.c
process.c
RtlCaptureContext.c
session.c
thread.c
time.c
uilang.c
unikernel32.c
version.c
volume.c
widecharconv.c
_user32_apilist.c
_user32_stubs.c
desktop.c
dialog.c
display.c
exit.c
hung.c
input.c
lstr.c
menu.c
message.c
SystemParametersInfo_fix.c
thuni_conv.c
thuni_layer.c
thuni_proc.c
thuni_stuff.c
thuni_thunk.c
uniuser32.c
window.c
winsta.c
_gdi32_apilist.c
_gdi32_stubs.c
EnumFont.c
FontResourceEx.c
GdiObjects.c
GetGlyphOutlineA_fix.c
GetTextExtentPoint32_fix.c
MaskBlt.c
Orhpans.cpp
TextOut.c
unigdi32.c
_advapi32_apilist.c
_advapi32_stubs.c
lsa.c
OpenSCManager_stub.c
reg.c
RtlGenRandom.c
security.c
TraceMessage.c
uniadvapi32.c
_comdlg32_apilist.c
print.c
_version_apilist.c
universion.c
_shell32_apilist.c
_shell32_stubs.c
CommandLineToArgvW.c
IsUserAnAdmin.c
shexec.c
shexit.c
shmain.c
_comctl32_apilist.c
newclassreg.c
syslink.c
_ntdll_apilist.c
_ntdll_stubs.c
error.c
ldr.c
ntfile.c
nthandle.c
ntmem.c
ntprocess.c
ntthread.c
rtl.c
sys.c
token.c
common.c
main.c
Linking...
Creating library Release/kexbases.lib and object Release/kexbases.exp
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF

kexbases.dll - 0 error(s), 1 warning(s)
--------------------Configuration: KernelEx Base Shared - Win32 Debug--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'version\'
Directory is up to date
Processing directory: 'comctl32\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Performing Custom Build Step on .\kexbases.def
k32ord.h
Creating library .\Debug\k32ord.lib and object .\Debug\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
_kernel32_stubs.c
console.c
critsect.c
directory.c
file.c
handle.c
inter.c
IsProcessorFeaturePresent.c
jobs.c
KEXVersion.c
locale.c
locale_casemap.c
locale_collation.c
locale_fold.c
locale_sortkey.c
locale_wctype.c
mem.c
module.c
pointer.c
port.c
process.c
RtlCaptureContext.c
session.c
thread.c
time.c
uilang.c
unikernel32.c
version.c
volume.c
widecharconv.c
_user32_apilist.c
_user32_stubs.c
desktop.c
dialog.c
display.c
exit.c
hung.c
input.c
lstr.c
menu.c
message.c
SystemParametersInfo_fix.c
thuni_conv.c
thuni_layer.c
thuni_proc.c
thuni_stuff.c
thuni_thunk.c
uniuser32.c
window.c
winsta.c
_gdi32_apilist.c
_gdi32_stubs.c
EnumFont.c
FontResourceEx.c
GdiObjects.c
GetGlyphOutlineA_fix.c
GetTextExtentPoint32_fix.c
MaskBlt.c
Orhpans.cpp
TextOut.c
unigdi32.c
_advapi32_apilist.c
_advapi32_stubs.c
lsa.c
OpenSCManager_stub.c
reg.c
RtlGenRandom.c
security.c
TraceMessage.c
uniadvapi32.c
_comdlg32_apilist.c
print.c
_version_apilist.c
universion.c
_shell32_apilist.c
_shell32_stubs.c
CommandLineToArgvW.c
IsUserAnAdmin.c
shexec.c
shexit.c
shmain.c
_comctl32_apilist.c
newclassreg.c
syslink.c
_ntdll_apilist.c
_ntdll_stubs.c
error.c
ldr.c
ntfile.c
nthandle.c
ntmem.c
ntprocess.c
ntthread.c
rtl.c
sys.c
token.c
common.c
main.c
Linking...
Creating library Debug/kexbases.lib and object Debug/kexbases.exp

kexbases.dll - 0 error(s), 0 warning(s)
--------------------Configuration: VxD - Win32 Release--------------------
Compiling...
patch.cpp
patch_ifsmgr.cpp
patch_kernel32.cpp
pemanip.cpp
Generating Code...
Compiling...
util.c
Generating Code...
Compiling...
vxdmain.cpp
Generating Code...
Linking...

VKrnlEx.vxd - 0 error(s), 0 warning(s)
--------------------Configuration: VxD - Win32 Debug--------------------
Compiling...
debug.cpp
patch.cpp
patch_ifsmgr.cpp
patch_kernel32.cpp
pemanip.cpp
Generating Code...
Compiling...
util.c
Generating Code...
Compiling...
vxdmain.cpp
Generating Code...
Linking...

VKrnlEx.vxd - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Release--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Release/KernelEx.lib and object Release/KernelEx.exp
1 file(s) copied.
--------------------Configuration: auxiliary - Win32 Release--------------------
cd msimg32
cl /nologo /W3 /O2 /Oi /FD /c /Fomsimg32.obj msimg32.c
msimg32.c
rc /r msimgme
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:msimg32.def /OUT:..\..\output-i386\Release\msimg32.dll -nodefaultlib kernel32.lib gdi32.lib ../../kexcrt/kexcrt.lib msimg32.obj msimgme.res
Creating library ..\..\output-i386\Release\msimg32.lib and object ..\..\output-i386\Release\msimg32.exp
cd ..
cd pdh
link /LIB /NOLOGO /MACHINE:IX86 /DEF:kord.def /OUT:kord.lib
Creating library kord.lib and object kord.exp
cl /nologo /W3 /O2 /Oi /FD /c /Fopdh.obj pdh.c
pdh.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:pdh.def /OUT:..\..\output-i386\Release\pdh.dll -nodefaultlib kernel32.lib gdi32.lib kord.lib pdh.obj
Creating library ..\..\output-i386\Release\pdh.lib and object ..\..\output-i386\Release\pdh.exp
cd ..
cd winsta
link /LIB /NOLOGO /MACHINE:IX86 /DEF:winsta.def /OUT:winsta.lib
Creating library winsta.lib and object winsta.exp
cl /nologo /W3 /O2 /Oi /FD /c /Fowinsta.obj winsta.c
winsta.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:winsta.def /OUT:..\..\output-i386\Release\winsta.dll -nodefaultlib kernel32.lib gdi32.lib user32.lib ../../kexcrt/kexcrt.lib ../../common/KernelEx.lib winsta.lib winsta.obj
Creating library ..\..\output-i386\Release\winsta.lib and object ..\..\output-i386\Release\winsta.exp
cd ..
cd wtsapi32
cl /nologo /W3 /O2 /Oi /FD /c /Fowtsapi32.obj wtsapi32.c
wtsapi32.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:wtsapi32.def /OUT:..\..\output-i386\Release\wtsapi32.dll -nodefaultlib kernel32.lib gdi32.lib user32.lib ../../kexcrt/kexcrt.lib ../winsta/winsta.lib ../../common/KernelEx.lib wtsapi32.obj
Creating library ..\..\output-i386\Release\wtsapi32.lib and object ..\..\output-i386\Release\wtsapi32.exp
cd ..
cd uxtheme
link /LIB /NOLOGO /MACHINE:IX86 /DEF:kord.def /OUT:kord.lib
Creating library kord.lib and object kord.exp
cl /nologo /W3 /O2 /Oi /FD /c /Fouxtheme.obj uxtheme.c
uxtheme.c
cl /nologo /W3 /O2 /Oi /FD /c /Fometric.obj metric.c
metric.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:uxtheme.def /OUT:..\..\output-i386\Release\uxtheme.dll -nodefaultlib kernel32.lib gdi32.lib user32.lib kord.lib uxtheme.obj metric.obj
Creating library ..\..\output-i386\Release\uxtheme.lib and object ..\..\output-i386\Release\uxtheme.exp
cd ..
cd psapi
cl /nologo /W3 /O2 /Oi /FD /I../../common /c /Fopsapi.obj psapi.c
psapi.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /LIBPATH:../../common KernelEx.lib /DEF:psapi.def /OUT:..\..\output-i386\Release\psapi.dll -nodefaultlib kernel32.lib psapi.obj
Creating library ..\..\output-i386\Release\psapi.lib and object ..\..\output-i386\Release\psapi.exp
cd ..
cd userenv
cl /nologo /W3 /O2 /Oi /FD /c /Fouserenv.obj userenv.c
userenv.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:userenv.def /OUT:..\..\output-i386\Release\userenv.dll -nodefaultlib kernel32.lib gdi32.lib shell32.lib shlwapi.lib userenv.obj
Creating library ..\..\output-i386\Release\userenv.lib and object ..\..\output-i386\Release\userenv.exp
cd ..
cd msimg32
cd ..
cd pdh
cd ..
cd winsta
cd ..
cd wtsapi32
cd ..
cd uxtheme
cd ..
cd psapi
cd ..
cd userenv
cd ..

auxiliary - 0 error(s), 0 warning(s)
--------------------Configuration: kexCOM - Win32 Release--------------------
Compiling...
factory.cpp
server.cpp
shelllink.cpp
Linking...
Creating library Release/kexCOM.lib and object Release/kexCOM.exp

kexCOM.dll - 0 error(s), 0 warning(s)
--------------------Configuration: kexCOM - Win32 Debug--------------------
Compiling...
factory.cpp
server.cpp
shelllink.cpp
Linking...
Creating library Debug/kexCOM.lib and object Debug/kexCOM.exp

kexCOM.dll - 0 error(s), 0 warning(s)
--------------------Configuration: kexcontrol - Win32 Release--------------------
Compiling...
kexcontrol.cpp
Linking...

kexcontrol.exe - 0 error(s), 0 warning(s)
--------------------Configuration: kexcontrol - Win32 Debug--------------------
Compiling...
kexcontrol.cpp
Linking...

kexcontrol.exe - 0 error(s), 0 warning(s)
--------------------Configuration: sdbcreate - Win32 Release--------------------
Performing Custom Build Step on .\sdbapi.h
sdbapi.h
Creating library .\Release\sdbapi.lib and object .\Release\sdbapi.exp
Compiling...
sdbcreate.cpp
Linking...
'\Documents' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.

sdbcreate.exe - 1 error(s), 0 warning(s)
--------------------Configuration: sdbcreate - Win32 Debug--------------------
Performing Custom Build Step on .\sdbapi.h
sdbapi.h
Creating library .\Debug\sdbapi.lib and object .\Debug\sdbapi.exp
Compiling...
sdbcreate.cpp
Linking...
'\Documents' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.

sdbcreate.exe - 1 error(s), 0 warning(s)
--------------------Configuration: sheet - Win32 Release--------------------
Compiling resources...
Compiling...
factory.cpp
KexLinkage.cpp
server.cpp
sheet.cpp
Linking...
Creating library Release/sheet.lib and object Release/sheet.exp

sheet.dll - 0 error(s), 0 warning(s)
--------------------Configuration: sheet - Win32 Debug--------------------
Compiling resources...
Compiling...
factory.cpp
KexLinkage.cpp
server.cpp
sheet.cpp
Linking...
Creating library Debug/sheet.lib and object Debug/sheet.exp

sheet.dll - 0 error(s), 0 warning(s)
--------------------Configuration: verify - Win32 Release--------------------
Compiling resources...
Compiling...
main.c
Linking...

verify.exe - 0 error(s), 0 warning(s)
--------------------Configuration: verify - Win32 Debug--------------------
Compiling resources...
Compiling...
main.c
Linking...

verify.exe - 0 error(s), 0 warning(s)

Edited by coolman
0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

The debug log, I mean the one that KernelEx create (either in the COM port or in the WINDOWS\KernelEx dir called KernelEx.log) ;)

As for Mozilla, when did you compile the project ? I removed some remade functions (which could be the cause) around 11:00 AM-12:00 PM.

KernelEx and RP9 should be compatible, I work with RP9, I will see why new icons doesn't appear (only when pressing F5).

This application error message is a security to prevent apps started when logging off.

Obviously, if nothing happen, the cause is MPREXE is terminated.

In the shutdown thread, it directly continue the loop instead of cleaning up thing when there is an error, it will be fixed.

Sorry, by debug log in the last post, I meant compile log. I just fixed it right now. I'll post a KernelEx.log.

RP9 still not compatible. Firefox not installing, seems to freeze at Installing Language Files (en-US)

60f89f4889ae4648a80694c.png

EDIT: I couldn't find a KernelEx.log anywhere in the system. Pretty peculiar, because I could find one before. Hmm.

Edited by coolman
0

Share this post


Link to post
Share on other sites

As for the commands, I didn't add any pre/post build commands to the project.

sdbcreate.exe failed to build. But the .NSI installer compiled OK so I don't think this is a big deal because Drugwash says it won't run under Win9x as mentioned in the quote above. Or was that only Xeno's builds? Oh, it doesn't matter. It seemed to have tried to execute an instance of CMD.EXE, which is not present in a clean install of a Win9x machine. You have to get it from a 3rd Party, the Win2k one that was re-compiled to work under Win9x.

My bad, wrong assumption about added commands.:blushing: That CMD.EXE command in coolman's log only shows up when sdbcreate fails to build (as I notice when building under XP), because under my main 98SE I can compile sdbcreate without problems and when it automatically tries to run (twice, as it builds both Release and Debug versions through the full batch command), it only shows a MessageBox saying:

"The APPHELP.DLL file is linked to missing export NTDLL.DLL:NtOpenFile."

But there is no mention of CMD.EXE anywhere in my 98SE compilation log.

Up until this time, I haven't been able to succesfully install one single build of my own, despite everything being built without problems. Neither the ones built under 98SE, nor the ones built under XP-SP3. They all report failing to open WinSta0, install verification never happens (when uninstalling in Safe Mode, there's always two registry keys: "KexNeedsReboot" and "KexVerify" that must be deleted prior to uninstalling).

Again, building and installing 4.5.2 under the very same conditions, complete flawlessly and the test system works correctly. Therefore I ask again, for the last time:

does anybody build and install correctly from Leyok's code at GitHub, under the following environment?

- VisualC 6.0 (Enterprise or Professional) with XTREE patch applied

- PlatformSDK february 2003

- Windows98 DDK

- NSIS installer 2.44 or 2.46

0

Share this post


Link to post
Share on other sites

As for the commands, I didn't add any pre/post build commands to the project.

sdbcreate.exe failed to build. But the .NSI installer compiled OK so I don't think this is a big deal because Drugwash says it won't run under Win9x as mentioned in the quote above. Or was that only Xeno's builds? Oh, it doesn't matter. It seemed to have tried to execute an instance of CMD.EXE, which is not present in a clean install of a Win9x machine. You have to get it from a 3rd Party, the Win2k one that was re-compiled to work under Win9x.

My bad, wrong assumption about added commands.:blushing: That CMD.EXE command in coolman's log only shows up when sdbcreate fails to build (as I notice when building under XP), because under my main 98SE I can compile sdbcreate without problems and when it automatically tries to run (twice, as it builds both Release and Debug versions through the full batch command), it only shows a MessageBox saying:

"The APPHELP.DLL file is linked to missing export NTDLL.DLL:NtOpenFile."

But there is no mention of CMD.EXE anywhere in my 98SE compilation log.

Up until this time, I haven't been able to succesfully install one single build of my own, despite everything being built without problems. Neither the ones built under 98SE, nor the ones built under XP-SP3. They all report failing to open WinSta0, install verification never happens (when uninstalling in Safe Mode, there's always two registry keys: "KexNeedsReboot" and "KexVerify" that must be deleted prior to uninstalling).

Again, building and installing 4.5.2 under the very same conditions, complete flawlessly and the test system works correctly. Therefore I ask again, for the last time:

does anybody build and install correctly from Leyok's code at GitHub, under the following environment?

- VisualC 6.0 (Enterprise or Professional) with XTREE patch applied

- PlatformSDK february 2003

- Windows98 DDK

- NSIS installer 2.44 or 2.46

Do you have the Directories correct? (Include files, Library files, entries in autoexec.bat (especially in 98SE), etc.). You mentioned it yourself. Check this out:

All the errors you get are due to incorrect/incomplete installation of the development environment. The file COMPILE.TXT in the root of the KernelEx source folder specifies the prerequisites:

- Visual C++ 6.0 SP6

- updated xtree header

- Platform SDK february 2003

- Windows 98/2000 DDK

In VC6 main menu > Tools > Options > Directories go through all items in the 'Show directories for' list and make sure the order of the items is as follows (that's important!):

Executable files

C:\Program Files\Microsoft Visual Studio\VC98\BIN

C:\Program Files\Microsoft Visual Studio\COMMON\MSDEV98\BIN

C:\Program Files\Microsoft Visual Studio\COMMON\TOOLS

C:\Program Files\Microsoft Visual Studio\COMMON\TOOLS\WIN95

C:\Program Files\Microsoft SDK\BIN

<other>

Include files

C:\Program Files\Microsoft SDK\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

C:\Program Files\98DDK\INC\WIN98

<other>

Library files

C:\Program Files\Microsoft SDK\LIB

C:\Program Files\Microsoft Visual Studio\VC98\LIB

C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

C:\Program Files\98DDK\LIB\I386\FREE

<other>

Source files

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC

C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC

<other>

Also, if you're running VC6 under Win98/ME (and maybe not only these), there are a few additions required in AUTOEXEC.BAT so the system would know where to get the tools from:


SET PATH=%PATH%;C:\PROGRA~1\MICROS~6\Bin;C:\PROGRA~1\MICROS~6\Bin\Win9x;C:\PROGRA~1\MICROS~4\Common\MSDev98\Bin;C:\PROGRA~1\MICROS~4\Common\Tools
SET Basemake="C:\Program Files\Microsoft SDK\Include\BKOffice.Mak"
SET Bkoffice="C:\Program Files\Microsoft SDK\."
SET INCLUDE="C:\Program Files\Microsoft SDK\Include\."
SET INETSDK="C:\Program Files\Microsoft SDK\."
SET LIB="C:\Program Files\Microsoft SDK\Lib\."
SET MSSdk="C:\Program Files\Microsoft SDK\."
SET Mstools="C:\Program Files\Microsoft SDK\."

Please note that some of the items in the PATH variable may have different short names on each system, depending on the path they've been installed to; they usually are added by VC6 at installation time but I recall there's an option to skip this step so please check. There may be an option to add these system variables from within VC6 but I can't say where exactly - maybe someone else could chime in on this matter.

Also please note that not all of the items in the Directory list groups are required in order to correctly compile KernelEx but they may be required for other projects, so it's a good idea to set them up properly right now. If someone more knowledgeable notices anything wrong or missing with my advices, please do correct me.

Finally, please do read above in this topic in regard to a few minor issues in the KernelEx project files.

Oh and just to be clear: the NSIS packager cannot pack something that has not been compiled, so you definitely have to make VC6 work, compile the whole KernelEx project in batch mode and only after that launch the NSIS packager. The current .nsi script builds the Debug version of KernelEx so all pertaining components should be compiled and available. Using the modified project files I provided in the reply above, should allow a flawless batch compilation of the whole project. Just make sure there's enough free space on that partition.

Good luck! ;)

Here is COMPILE.TXT, FYI.

To compile you need Microsoft Visual C++ 6.0 SP6

with updated xtree header (http://web.archive.org/web/20090416130215/http://dinkumware.com/xtree.txt)

and supplied with Platform SDK 2003.

You can use batch build feature to automate builds.

If you build manually, you need to compile KEXCRT and PREP projects first as other projects rely on them.

To build KEXCONTROL you have to build debug CORE first.

KEXBASES and KEXBASEN projects rely on CORE be built first.

To build VKRNLEX project you need Microsoft Windows 98 Driver Development Kit (DDK) or Microsoft Windows 2000 Driver Development Kit (DDK).

To build installer you need NSIS install system.

-Xeno86

Install Service Pack 6 for Visual C++ 6.0. Then try to build again. Post your compile log. Let me take a look. I'll see if I can figure out why your builds don't work.

Edited by coolman
0

Share this post


Link to post
Share on other sites

My VC6 setup on the 98SE machine is years old, I used to compile Miranda IM at the time and I had to set it up properly back then. I'm building all kinds of projects, from Code-Project, Sourceforge or elsewhere. KernelEx 4.5.2 compiles, installs and runs perfectly. Only Leyok's code compiles but hangs at install time. I've posted KEx debug logs, they're all the same. Compilation always flows without a hitch, as I said above I can even compile sdbcreate correctly, so I strongly doubt there's something wrong with my setup.

But why am I asking over and over again if you all use the recommended setup and I don't get a clear answer? At this point, the only problem I can think of is you using the Win2000 DDK and not the 98 one, otherwise I really can't see why the same code works for you and not for me. And remember I've said it before: the problem is only in kexbases.dll - if I replace it with one built by Leyok, my whole installation works. I'm gonna try with your kexbases soon, see if it works with it too.

EDIT:

Just for the sake of it, I reinstalled SP6 on the XP machine, then reapplied the XTREE patch, then recompiled KernelEx. Upon installing, same behavior as before. Here are the logs: link

Edited by Drugwash
0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

Now we're getting somewhere! Those functions are still there!

All files in the latest zip have the timestamp 2013.03.31 3:27PM (that is most likely the time of the last commit, dunno how timezone weighs in). Anyway, since the fix was supposed to be commited long ago, it's obvious the GitHub was not synchronized at the time. I noticed that by looking at the Release Notes.txt file, which in your builds appears updated with your own changes and version, while the one in the zip is always the same old one by Xeno86. The GitHub also shows that file as being two months old.

Since you mentioned Tortoise SVN, I've already stated earlier that I used to have it installed, but removed it long ago because it was heavily slowing down my machine. Besides, the latest 9x-compatible version of it is quite old and - if I'm not mistaken - it may not be compatible with certain newer commands. I vaguely recall there's been a discussion on this topic, but can't recall where exactly.

Anyway, I have a feeling your local copy contains some files that - for some unknown reason - have not been synchronized with GitHub. It may well be TortoiseSVN's fault. Please check with the web interface, download the zip and compare files and directories between the zip and your local copy of the sources.

Scratch that, I wasn't paying attention. Those functions are not in OpenWindowStationA_new(), but much lower, in SetProcessWindowStation_new(). Sorry for the confusion, I'm too tired.

Edited by Drugwash
0

Share this post


Link to post
Share on other sites

Here's the new build!

KernelEx-dev.7z

Here's the compile log:


Deleting intermediate files and output files for project 'kexcrt - Win32 Release'.
Deleting intermediate files and output files for project 'Core - Win32 Release'.
Deleting intermediate files and output files for project 'Core - Win32 Debug'.
Deleting intermediate files and output files for project 'Core - Win32 Release APIHOOK'.
Deleting intermediate files and output files for project 'prep - Win32 Release'.
Deleting intermediate files and output files for project 'prep - Win32 Debug'.
Deleting intermediate files and output files for project 'KernelEx Base NonShared - Win32 Release'.
Deleting intermediate files and output files for project 'KernelEx Base NonShared - Win32 Debug'.
Deleting intermediate files and output files for project 'KernelEx Base Shared - Win32 Release'.
Deleting intermediate files and output files for project 'KernelEx Base Shared - Win32 Debug'.
Deleting intermediate files and output files for project 'VxD - Win32 Release'.
Deleting intermediate files and output files for project 'VxD - Win32 Debug'.
Deleting intermediate files and output files for project 'Core - Win32 Release'.
Deleting intermediate files and output files for project 'auxiliary - Win32 Release'.
Deleting intermediate files and output files for project 'kexCOM - Win32 Release'.
Deleting intermediate files and output files for project 'kexCOM - Win32 Debug'.
Deleting intermediate files and output files for project 'kexcontrol - Win32 Release'.
Deleting intermediate files and output files for project 'kexcontrol - Win32 Debug'.
Deleting intermediate files and output files for project 'sdbcreate - Win32 Release'.
Deleting intermediate files and output files for project 'sdbcreate - Win32 Debug'.
Deleting intermediate files and output files for project 'sheet - Win32 Release'.
Deleting intermediate files and output files for project 'sheet - Win32 Debug'.
Deleting intermediate files and output files for project 'verify - Win32 Release'.
Deleting intermediate files and output files for project 'verify - Win32 Debug'.
--------------------Configuration: kexcrt - Win32 Release--------------------
Compiling...
_vsnprintf.c
abort.c
argcargv.c
assert.c
atoi.c
atol.c
atoll.c
concrt0.c
ctypes.c
dllcrt0.c
exit.c
init.c
isalnum.c
isalpha.c
isascii.c
isblank.c
iscntrl.c
isdigit.c
isgraph.c
islower.c
Generating Code...
Compiling...
isprint.c
ispunct.c
isspace.c
isupper.c
isxdigit.c
memccpy.c
memchr.c
memcmp.c
memcpy.c
memmem.c
memmove.c
Generating Code...
Compiling...
memory-cpp.cpp
Generating Code...
Compiling...
memory.c
memrchr.c
memset.c
memswap.c
printf.c
purecall.c
snprintf.c
sprintf.c
sscanf.c
strcat.c
strchr.c
strcmp.c
strcmpi.c
strcpy.c
strdup.c
strlen.c
strncat.c
strncmp.c
strncpy.c
strnicmp.c
Generating Code...
Compiling...
strnlen.c
strntoimax.c
strntoumax.c
strpbrk.c
strrchr.c
strsep.c
strstr.c
strtok.c
strtok_r.c
strtol.c
strtoll.c
strtoul.c
strtoull.c
strtoumax.c
strupr.c
strxspn.c
tolower.c
toupper.c
vsnprintf.c
vsprintf.c
Generating Code...
Compiling...
vsscanf.c
wincrt0.c
write.c
Generating Code...
Creating library...

kexcrt.lib - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Release--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Release/KernelEx.lib and object Release/KernelEx.exp
1 file(s) copied.

KernelEx.dll - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Debug--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Debug\k32ord.lib and object .\Debug\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
debug.cpp
debugproto.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Debug/KernelEx.lib and object Debug/KernelEx.exp
1 file(s) copied.

KernelEx.dll - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Release APIHOOK--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Release_APIHOOK\k32ord.lib and object .\Release_APIHOOK\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Release_APIHOOK/KernelEx.lib and object Release_APIHOOK/KernelEx.exp
1 file(s) copied.

KernelEx.dll - 0 error(s), 0 warning(s)
--------------------Configuration: prep - Win32 Release--------------------
Compiling...
prep.cpp
Linking...

prep.exe - 0 error(s), 0 warning(s)
--------------------Configuration: prep - Win32 Debug--------------------
Compiling...
prep.cpp
Linking...

prep.exe - 0 error(s), 0 warning(s)
--------------------Configuration: KernelEx Base NonShared - Win32 Release--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'rpcrt4\'
Directory is up to date
Processing directory: 'winspool\'
Directory is up to date
Processing directory: 'shfolder\'
Directory is up to date
Processing directory: 'winmm\'
Directory is up to date
Processing directory: 'ws2_32\'
Directory is up to date
Processing directory: 'ole32\'
Directory is up to date
Processing directory: 'cryptui\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Processing directory: 'netapi32\'
Directory is up to date
Performing Custom Build Step on .\kexbasen.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
allocator.c
C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbasen\kernel32\jemalloc/jemalloc.c(239) : warning C4163: '_BitScanForward' : not available as an intrinsic function
DelayLoadFailureHook.c
ThreadPool.c
TlsExt.c
unikernel32.c
_user32_apilist.c
uniuser32.c
_gdi32_apilist.c
ScriptCache.cpp
UberGDI.c
unigdi32.c
_advapi32_apilist.c
uniadvapi32.c
_comdlg32_apilist.c
openfilename_fix.c
opensavefile.c
unicomdlg32.c
_shell32_apilist.c
SHBindToParent.c
SHCreateDirectoryEx.c
SHGetFolderLocation.c
SHGetFolderPath.c
SHGetSpecialFolder.c
SHParseDisplayName.c
unishell32.c
_rpcrt4_apilist.c
NdrDllGetClassObject.c
unirpcrt4.c
_winspool_apilist.c
_winspool_stubs.c
DefaultPrinter.c
uniwinspool.c
_shfolder_apilist.c
shfolder.c
_winmm_apilist.c
uniwinmm.c
_ws2_32_apilist.c
addinfo.c
select_fix.c
_ole32_apilist.c
CoWaitForMultipleHandles.c
_cryptui_apilist.c
CryptUIDlgViewContext.c
_ntdll_apilist.c
_ntdll_stubs.c
ntruntime.c
_netapi32_apilist.c
netalert.c
netbuffer.c
netget.c
netshare.c
common.c
main.c
shlord.c
unifwd.c
Linking...
Creating library Release/kexbasen.lib and object Release/kexbasen.exp

kexbasen.dll - 0 error(s), 1 warning(s)
--------------------Configuration: KernelEx Base NonShared - Win32 Debug--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'rpcrt4\'
Directory is up to date
Processing directory: 'winspool\'
Directory is up to date
Processing directory: 'shfolder\'
Directory is up to date
Processing directory: 'winmm\'
Directory is up to date
Processing directory: 'ws2_32\'
Directory is up to date
Processing directory: 'ole32\'
Directory is up to date
Processing directory: 'cryptui\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Processing directory: 'netapi32\'
Directory is up to date
Performing Custom Build Step on .\kexbasen.def
k32ord.h
Creating library .\Debug\k32ord.lib and object .\Debug\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
allocator.c
C:\Documents and Settings\John\Desktop\KernelEx-master\apilibs\kexbasen\kernel32\jemalloc/jemalloc.c(239) : warning C4163: '_BitScanForward' : not available as an intrinsic function
DelayLoadFailureHook.c
ThreadPool.c
TlsExt.c
unikernel32.c
_user32_apilist.c
uniuser32.c
_gdi32_apilist.c
ScriptCache.cpp
UberGDI.c
unigdi32.c
_advapi32_apilist.c
uniadvapi32.c
_comdlg32_apilist.c
openfilename_fix.c
opensavefile.c
unicomdlg32.c
_shell32_apilist.c
SHBindToParent.c
SHCreateDirectoryEx.c
SHGetFolderLocation.c
SHGetFolderPath.c
SHGetSpecialFolder.c
SHParseDisplayName.c
unishell32.c
_rpcrt4_apilist.c
NdrDllGetClassObject.c
unirpcrt4.c
_winspool_apilist.c
_winspool_stubs.c
DefaultPrinter.c
uniwinspool.c
_shfolder_apilist.c
shfolder.c
_winmm_apilist.c
uniwinmm.c
_ws2_32_apilist.c
addinfo.c
select_fix.c
_ole32_apilist.c
CoWaitForMultipleHandles.c
_cryptui_apilist.c
CryptUIDlgViewContext.c
_ntdll_apilist.c
_ntdll_stubs.c
ntruntime.c
_netapi32_apilist.c
netalert.c
netbuffer.c
netget.c
netshare.c
common.c
main.c
shlord.c
unifwd.c
Linking...
Creating library Debug/kexbasen.lib and object Debug/kexbasen.exp

kexbasen.dll - 0 error(s), 1 warning(s)
--------------------Configuration: KernelEx Base Shared - Win32 Release--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'version\'
Directory is up to date
Processing directory: 'comctl32\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Performing Custom Build Step on .\kexbases.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
_kernel32_stubs.c
console.c
critsect.c
directory.c
file.c
handle.c
inter.c
IsProcessorFeaturePresent.c
jobs.c
KEXVersion.c
locale.c
locale_casemap.c
locale_collation.c
locale_fold.c
locale_sortkey.c
locale_wctype.c
mem.c
module.c
pointer.c
port.c
process.c
RtlCaptureContext.c
session.c
thread.c
time.c
uilang.c
unikernel32.c
version.c
volume.c
widecharconv.c
_user32_apilist.c
_user32_stubs.c
desktop.c
dialog.c
display.c
exit.c
hung.c
input.c
lstr.c
menu.c
message.c
SystemParametersInfo_fix.c
thuni_conv.c
thuni_layer.c
thuni_proc.c
thuni_stuff.c
thuni_thunk.c
uniuser32.c
window.c
winsta.c
_gdi32_apilist.c
_gdi32_stubs.c
EnumFont.c
FontResourceEx.c
GdiObjects.c
GetGlyphOutlineA_fix.c
GetTextExtentPoint32_fix.c
MaskBlt.c
Orhpans.cpp
TextOut.c
unigdi32.c
_advapi32_apilist.c
_advapi32_stubs.c
lsa.c
OpenSCManager_stub.c
reg.c
RtlGenRandom.c
security.c
TraceMessage.c
uniadvapi32.c
_comdlg32_apilist.c
print.c
_version_apilist.c
universion.c
_shell32_apilist.c
_shell32_stubs.c
CommandLineToArgvW.c
IsUserAnAdmin.c
shexec.c
shexit.c
shmain.c
_comctl32_apilist.c
newclassreg.c
syslink.c
_ntdll_apilist.c
_ntdll_stubs.c
error.c
ldr.c
ntfile.c
nthandle.c
ntmem.c
ntprocess.c
ntthread.c
rtl.c
sys.c
token.c
common.c
main.c
Linking...
Creating library Release/kexbases.lib and object Release/kexbases.exp
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF

kexbases.dll - 0 error(s), 1 warning(s)
--------------------Configuration: KernelEx Base Shared - Win32 Debug--------------------
Performing Custom Build Step on .\dirlist
KernelEx source preparser by Xeno86
Processing project at: .
Processing directory: 'kernel32\'
Directory is up to date
Processing directory: 'user32\'
Directory is up to date
Processing directory: 'gdi32\'
Directory is up to date
Processing directory: 'advapi32\'
Directory is up to date
Processing directory: 'comdlg32\'
Directory is up to date
Processing directory: 'shell32\'
Directory is up to date
Processing directory: 'version\'
Directory is up to date
Processing directory: 'comctl32\'
Directory is up to date
Processing directory: 'ntdll\'
Directory is up to date
Performing Custom Build Step on .\kexbases.def
k32ord.h
Creating library .\Debug\k32ord.lib and object .\Debug\k32ord.exp
Compiling resources...
Compiling...
_kernel32_apilist.c
_kernel32_stubs.c
console.c
critsect.c
directory.c
file.c
handle.c
inter.c
IsProcessorFeaturePresent.c
jobs.c
KEXVersion.c
locale.c
locale_casemap.c
locale_collation.c
locale_fold.c
locale_sortkey.c
locale_wctype.c
mem.c
module.c
pointer.c
port.c
process.c
RtlCaptureContext.c
session.c
thread.c
time.c
uilang.c
unikernel32.c
version.c
volume.c
widecharconv.c
_user32_apilist.c
_user32_stubs.c
desktop.c
dialog.c
display.c
exit.c
hung.c
input.c
lstr.c
menu.c
message.c
SystemParametersInfo_fix.c
thuni_conv.c
thuni_layer.c
thuni_proc.c
thuni_stuff.c
thuni_thunk.c
uniuser32.c
window.c
winsta.c
_gdi32_apilist.c
_gdi32_stubs.c
EnumFont.c
FontResourceEx.c
GdiObjects.c
GetGlyphOutlineA_fix.c
GetTextExtentPoint32_fix.c
MaskBlt.c
Orhpans.cpp
TextOut.c
unigdi32.c
_advapi32_apilist.c
_advapi32_stubs.c
lsa.c
OpenSCManager_stub.c
reg.c
RtlGenRandom.c
security.c
TraceMessage.c
uniadvapi32.c
_comdlg32_apilist.c
print.c
_version_apilist.c
universion.c
_shell32_apilist.c
_shell32_stubs.c
CommandLineToArgvW.c
IsUserAnAdmin.c
shexec.c
shexit.c
shmain.c
_comctl32_apilist.c
newclassreg.c
syslink.c
_ntdll_apilist.c
_ntdll_stubs.c
error.c
ldr.c
ntfile.c
nthandle.c
ntmem.c
ntprocess.c
ntthread.c
rtl.c
sys.c
token.c
common.c
main.c
Linking...
Creating library Debug/kexbases.lib and object Debug/kexbases.exp

kexbases.dll - 0 error(s), 0 warning(s)
--------------------Configuration: VxD - Win32 Release--------------------
Compiling...
patch.cpp
patch_ifsmgr.cpp
patch_kernel32.cpp
pemanip.cpp
Generating Code...
Compiling...
util.c
Generating Code...
Compiling...
vxdmain.cpp
Generating Code...
Linking...

VKrnlEx.vxd - 0 error(s), 0 warning(s)
--------------------Configuration: VxD - Win32 Debug--------------------
Compiling...
debug.cpp
patch.cpp
patch_ifsmgr.cpp
patch_kernel32.cpp
pemanip.cpp
Generating Code...
Compiling...
util.c
Generating Code...
Compiling...
vxdmain.cpp
Generating Code...
Linking...

VKrnlEx.vxd - 0 error(s), 0 warning(s)
--------------------Configuration: Core - Win32 Release--------------------
Performing Custom Build Step on .\core.def
k32ord.h
Creating library .\Release\k32ord.lib and object .\Release\k32ord.exp
Compiling resources...
Compiling...
apiconf.cpp
apiconfmgr.cpp
apihook.cpp
apilib.cpp
internals.cpp
kexcoresdk.cpp
main.cpp
ModInit.cpp
pemanip.cpp
ProcessStorage.cpp
resolver.cpp
SettingsDB.cpp
sharedmem.cpp
thunks.cpp
wildcmp.cpp
Linking...
Creating library Release/KernelEx.lib and object Release/KernelEx.exp
1 file(s) copied.
--------------------Configuration: auxiliary - Win32 Release--------------------
cd msimg32
cl /nologo /W3 /O2 /Oi /FD /c /Fomsimg32.obj msimg32.c
msimg32.c
rc /r msimgme
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:msimg32.def /OUT:..\..\output-i386\Release\msimg32.dll -nodefaultlib kernel32.lib gdi32.lib ../../kexcrt/kexcrt.lib msimg32.obj msimgme.res
Creating library ..\..\output-i386\Release\msimg32.lib and object ..\..\output-i386\Release\msimg32.exp
cd ..
cd pdh
link /LIB /NOLOGO /MACHINE:IX86 /DEF:kord.def /OUT:kord.lib
Creating library kord.lib and object kord.exp
cl /nologo /W3 /O2 /Oi /FD /c /Fopdh.obj pdh.c
pdh.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:pdh.def /OUT:..\..\output-i386\Release\pdh.dll -nodefaultlib kernel32.lib gdi32.lib kord.lib pdh.obj
Creating library ..\..\output-i386\Release\pdh.lib and object ..\..\output-i386\Release\pdh.exp
cd ..
cd winsta
link /LIB /NOLOGO /MACHINE:IX86 /DEF:winsta.def /OUT:winsta.lib
Creating library winsta.lib and object winsta.exp
cl /nologo /W3 /O2 /Oi /FD /c /Fowinsta.obj winsta.c
winsta.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:winsta.def /OUT:..\..\output-i386\Release\winsta.dll -nodefaultlib kernel32.lib gdi32.lib user32.lib ../../kexcrt/kexcrt.lib ../../common/KernelEx.lib winsta.lib winsta.obj
Creating library ..\..\output-i386\Release\winsta.lib and object ..\..\output-i386\Release\winsta.exp
cd ..
cd wtsapi32
cl /nologo /W3 /O2 /Oi /FD /c /Fowtsapi32.obj wtsapi32.c
wtsapi32.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:wtsapi32.def /OUT:..\..\output-i386\Release\wtsapi32.dll -nodefaultlib kernel32.lib gdi32.lib user32.lib ../../kexcrt/kexcrt.lib ../winsta/winsta.lib ../../common/KernelEx.lib wtsapi32.obj
Creating library ..\..\output-i386\Release\wtsapi32.lib and object ..\..\output-i386\Release\wtsapi32.exp
cd ..
cd uxtheme
link /LIB /NOLOGO /MACHINE:IX86 /DEF:kord.def /OUT:kord.lib
Creating library kord.lib and object kord.exp
cl /nologo /W3 /O2 /Oi /FD /c /Fouxtheme.obj uxtheme.c
uxtheme.c
cl /nologo /W3 /O2 /Oi /FD /c /Fometric.obj metric.c
metric.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:uxtheme.def /OUT:..\..\output-i386\Release\uxtheme.dll -nodefaultlib kernel32.lib gdi32.lib user32.lib kord.lib uxtheme.obj metric.obj
Creating library ..\..\output-i386\Release\uxtheme.lib and object ..\..\output-i386\Release\uxtheme.exp
cd ..
cd psapi
cl /nologo /W3 /O2 /Oi /FD /I../../common /c /Fopsapi.obj psapi.c
psapi.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /LIBPATH:../../common KernelEx.lib /DEF:psapi.def /OUT:..\..\output-i386\Release\psapi.dll -nodefaultlib kernel32.lib psapi.obj
Creating library ..\..\output-i386\Release\psapi.lib and object ..\..\output-i386\Release\psapi.exp
cd ..
cd userenv
cl /nologo /W3 /O2 /Oi /FD /c /Fouserenv.obj userenv.c
userenv.c
link /nologo /DLL /OPT:NOWIN98 /ENTRY:DllMain@12 /DEF:userenv.def /OUT:..\..\output-i386\Release\userenv.dll -nodefaultlib kernel32.lib gdi32.lib shell32.lib shlwapi.lib userenv.obj
Creating library ..\..\output-i386\Release\userenv.lib and object ..\..\output-i386\Release\userenv.exp
cd ..
cd msimg32
cd ..
cd pdh
cd ..
cd winsta
cd ..
cd wtsapi32
cd ..
cd uxtheme
cd ..
cd psapi
cd ..
cd userenv
cd ..

auxiliary - 0 error(s), 0 warning(s)
--------------------Configuration: kexCOM - Win32 Release--------------------
Compiling...
factory.cpp
server.cpp
shelllink.cpp
Linking...
Creating library Release/kexCOM.lib and object Release/kexCOM.exp

kexCOM.dll - 0 error(s), 0 warning(s)
--------------------Configuration: kexCOM - Win32 Debug--------------------
Compiling...
factory.cpp
server.cpp
shelllink.cpp
Linking...
Creating library Debug/kexCOM.lib and object Debug/kexCOM.exp

kexCOM.dll - 0 error(s), 0 warning(s)
--------------------Configuration: kexcontrol - Win32 Release--------------------
Compiling...
kexcontrol.cpp
Linking...

kexcontrol.exe - 0 error(s), 0 warning(s)
--------------------Configuration: kexcontrol - Win32 Debug--------------------
Compiling...
kexcontrol.cpp
Linking...

kexcontrol.exe - 0 error(s), 0 warning(s)
--------------------Configuration: sdbcreate - Win32 Release--------------------
Performing Custom Build Step on .\sdbapi.h
sdbapi.h
Creating library .\Release\sdbapi.lib and object .\Release\sdbapi.exp
Compiling...
sdbcreate.cpp
Linking...
'\Documents' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.

sdbcreate.exe - 1 error(s), 0 warning(s)
--------------------Configuration: sdbcreate - Win32 Debug--------------------
Performing Custom Build Step on .\sdbapi.h
sdbapi.h
Creating library .\Debug\sdbapi.lib and object .\Debug\sdbapi.exp
Compiling...
sdbcreate.cpp
Linking...
'\Documents' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.

sdbcreate.exe - 1 error(s), 0 warning(s)
--------------------Configuration: sheet - Win32 Release--------------------
Compiling resources...
Compiling...
factory.cpp
KexLinkage.cpp
server.cpp
sheet.cpp
Linking...
Creating library Release/sheet.lib and object Release/sheet.exp

sheet.dll - 0 error(s), 0 warning(s)
--------------------Configuration: sheet - Win32 Debug--------------------
Compiling resources...
Compiling...
factory.cpp
KexLinkage.cpp
server.cpp
sheet.cpp
Linking...
Creating library Debug/sheet.lib and object Debug/sheet.exp

sheet.dll - 0 error(s), 0 warning(s)
--------------------Configuration: verify - Win32 Release--------------------
Compiling resources...
Compiling...
main.c
Linking...

verify.exe - 0 error(s), 0 warning(s)
--------------------Configuration: verify - Win32 Debug--------------------
Compiling resources...
Compiling...
main.c
Linking...

verify.exe - 0 error(s), 0 warning(s)

@Drugwash It doesn't seem like there's anything wrong. I checked the compile log and it looks fine.

Edited by coolman
0

Share this post


Link to post
Share on other sites
It doesn't seem like there's anything wrong. I checked the compile log and it looks fine.
Hence my frustration. :(

I grabbed kexbases.dll from your package above, installed my own package built under 98SE, rebooted in Safe Mode, replaced my kexbases with yours and rebooted normally. Everything went fine, verification reported KernelEx installed succesfully. I also noticed there's an addition to the PATH variable in AUTOEXEC.BAT - this is the first time it happens.

But then I ran GOM Player. One click on playlist window and it vanished. Another click on main window and that one vanished too. Tray icon was of no use, no context menu, no window show. I had to kill the process using Codestuff Starter; while there, the SizeNS cursor wouldn't show up when resizing the bottom ListView.

Then I ran Miranda IM 0.10.11.0 ANSI, built by myself yesterday. Resizing contact list was also funny, no size cursors. At one point, the actual list popped out of the main window and couldn't put it back, mouse wouldn't listen. Then, mouse buttons got reversed: left-click was showing context menu, while right-click was performing single left-click. Couldn't get rid of this behavior even after closing Miranda IM, so I wanted to reboot. Machine wouldn't. I tried from the Start menu, tried from the shortcuts in QuickLaunch (RUNDLL.EXE shell32.dll,SHExitWindowsEx 2 for reboot or 1 for shut down). Error related to RUNDLL32.EXE not being able to run because windows station was shutting down. Finally I managed to reboot by repeatedly performing the three finger salute.

After reboot, I disabled KernelEx for GOM Player and Miranda IM and they both behaved correctly afterwards (limited testing for both, though).

Oh and the error you get in sdbcreate seems to be caused by your sources being located in 'Documents and Settings' - a path containing spaces which VC6 doesn't quite like. Try moving the sources to a simple path like C:\KernelEx-master or on another partition, anything without spaces or funny characters in the path.

Question remains: how come I can't build a working kexbases on two different systems using similar environment?:(

0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites
[...] mouse buttons got reversed [...]
This was fixed [...]

I found the shut down problem [...] Fixed it and logoff/shutdown is working properly.

Thank you!
Can you explain more on why you can't build kexbases ?
I can build it. I can build all parts of the KernelEx project. I always could, albeit with slight changes to project files, at first; now, there's no need for any changes, it builds right away.

So I unzip the sources to a new folder, I launch the main .dsw project, I choose Batch build and in a few minutes all subprojects are compiled. I launch the NSIS script twice from context menu (remember I added the Debug item to the registry so I'm making a few slight changes to the .nsi file prior to launching) and the Debug/Release installers are ready.

But no matter what, the kexbases.dll built on either of my two machines (Pentium III Win98SE and Pentium4 WinXP-SP3) hangs the boot procedure in the 98SE test machine (AMD Duron 800MHz, 512MB RAM, Amptron/PCChips M810LR motherboard with SiS730 chipset). The error is always the same: Failed to open window station WinSta0 (kexbases\User32\desktop.c:296).

As I said in my previous reply, if upon first reboot I replace the kexbases built by me with one built by you or coolman, the rest of my build completes installation and appears to work correctly. So the problem has to be somewhere in the kexbases code and it has to be related to my own developing environment, since you and coolman can build working versions of kexbases. But none of you told me your exact setup so I could check if I'm missing something or need to replace something, such as the 98DDK with the 2000 DDK.

The test machine has uSP 3.19 installed, since it initially was prepared for uSP testing. I have no problems building KernelEx 4.5.2, installing and running it on the test machine - the few installed applications behave correctly with it.

0

Share this post


Link to post
Share on other sites

@Drugwash: May I suggest you zip and attach the flawed kexbases.dll, so that the others can test it in their environments?

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.