Exetools

Exetools (https://forum.exetools.com/index.php)
-   General Discussion (https://forum.exetools.com/forumdisplay.php?f=2)
-   -   IceExt 0.51 - With Installer (https://forum.exetools.com/showthread.php?t=2650)

wps8848 09-12-2003 16:34

to Sten:
Quote:

Well, it's up to you now to determine why memory reference to HalInitializeProcessor leads to BSOD.. There is routine inside multicpu.cpp that counts number of CPUs (mp_GetNumberOfCPUs()). And this routine references to HalInitializeProcessor. You can insert breakpoint at the begining
What dose this means?

On this machine, I pluged a PCI 2 USB2.0 Card. Which can not work. The card is manufactured by a small company and is very cheap. Maybe some bugs exists with it. I've try it on two machines. It cannot work on both of them.

wps8848 09-12-2003 16:43

:o
I'm sorry for the mistakes in the reply above.
It should like this one. :)
Quote:

Do you have a non-standard HAL?
What dose this means?

On this machine, I pluged a PCI 2 USB2.0 Card. Which can not work. The card is manufactured by a small company and is very cheap. Maybe some bugs exists with it. I've try it on two machines. It cannot work on both of them.

Satyric0n 09-12-2003 17:19

Sten, adding that registry entry worked great. Runs perfectly now. Thanks very much!

Sten 09-12-2003 17:23

Quote:

What dose this means?
I mean, do you have a hal.dll from manufacturer other than Microsoft?

wps8848 09-12-2003 17:29

Quote:

I mean, do you have a hal.dll from manufacturer other than Microsoft?
I've checked the hal.dll file.
I's from MS.

in the property of it, i can get some information like this.
5.2.3790.0
Hardware Abstraction Layer DLL
� Microsoft Corporation. All rights reserved.
5.2.3790.0 (srv03_rtm.030324-2048)

I've try to bpx on HalInitializeProcessor. cannot break at there.
error & BSOD ocurred.

I have no the ability to debug drivers.

Sten 09-12-2003 17:56

Quote:

I've try to bpx on HalInitializeProcessor. cannot break at there.
error & BSOD ocurred.
HalInitializeProcessor executes only at system startup for each processor in the system. It's useless to set breakpoint there.

What I asked you was to insert INT 3 instruction in IceExt source code (at the beginning of mp_GetNumberOfCPUs). Then recompile IceExt and run it. (ensure you have i3here ON or DRV). Then just trace through this routine.

You can also use

!PTE HalInitializeProteccor

command. Send me the results. (but beware! there is bug in !PTE implementation in IceExt 0.51 so some PTE bits are decoded incorrectly - this will be fixed soon).

Quote:

I have no the ability to debug drivers.
You have SoftICE installed. So you DO have the ability to debug drivers. :D
The only thing you need is some patience. :cool:

wps8848 09-12-2003 18:07

to Sten:
Quote:

You have SoftICE installed. So you DO have the ability to debug drivers.
OK. I'll try it the next week. Today is friday. I'll go home a few min later.
:)

I'm looking for a new job.
Quote:

You can also use !PTE HalInitializeProteccor
all cmd of IceExt cannot be used now. :)

I'll insert int 3 and trace it.

wps8848 09-16-2003 13:59

I've modified the source code and traced into it.

error occured at here in the file multicpu.cpp

DWORD __declspec(naked) mp_GetNumberOfCPUs()
{
__asm
{
pushad
int 3
mov ecx, 128
mov edi, offset HalInitializeProcessor
mov edi, [edi]
cld

search_some_bytes:
mov al, 89h
repne scasb <====!!!! error ocurred here
jnz short return_default
..........
retn
}
}

cause my PC has only one CPU. so, i modified this function like this

DWORD __declspec(naked) mp_GetNumberOfCPUs()
{
__asm{
xor eax,eax
inc eax
retn
}
}

after rebuild, IceExt works fine.

Sten 09-16-2003 19:19

Hi All!

First of all IceExt 0.53 has been released.

wps8848:
Quote:

mov al, 89h
repne scasb <====!!!! error ocurred here
jnz short return_default
Well, mp_GetNumberOfCPUs() is not very good name for this routine. It has a side effect - on multicpu platforms it sets mp_PCR_VA_array variable. For one-cpu computer mp_PCR_VA_array has default value so you patch works quite well.
I dediced to rename this routine to the mp_AnalyzeHalInitProcessor.

Now you have a choice - to patch this routine in the every next build :-) or to dig a little deeper in order to determine why 89h byte can not be found in your HalInitializeProcessor or why read access to HalInitiailzeProcessor routine lead to BSOD..

As I described earlier you can do something like this:

db HalInitializeProcessor

If you seen some question marks - that's bad..
And more poverfull command:

!PTE HalInitializeProcessor

should tell you everything about the memory page where the HalInitializeProcessor is located.

wps8848 09-17-2003 09:35

1 Attachment(s)
Sten,
Quote:

As I described earlier you can do something like this:

db HalInitializeProcessor

If you seen some question marks - that's bad..
And more poverfull command:

!PTE HalInitializeProcessor

should tell you everything about the memory page where the HalInitializeProcessor is located.
I have done as your sugests.

I use db & !pte on two of my machines.
the result is different.
the dumped file is in the attachment.
two files included.

err.bin the screen i dumped using !dumpscreen on the machine BSOD occurs there
ok.bin the screen i dumped using !dumpscreen on the machine worked fine

use SiwRender.exe translate them to BMP yourself.

best regards.

Sten 09-17-2003 17:10

Ok. So HalInitializeProcessor is inaccessible on you system where IceExt fails. Quite strange..
I'll code simple workaroung in the next IceExt version.

3boy 09-27-2003 11:20

why ?when is rebuild the ICeExt.sys is error on the build lib kosxxxx.lib
 
please send your iceext.sys to my [email protected]
thk

wps8848 10-08-2003 09:13

Re: why ?when is rebuild the ICeExt.sys is error on the build lib kosxxxx.lib
 
Quote:

Originally posted by 3boy
please send your iceext.sys to my [email protected]
thk

I am sorry for so much latency. I read your post just now.

to rebuild it with w2k3 DDK, do like this.

1. modify the file "sources" in the SRC.
in the file , something like this
# *********************************************************************
# remove ntoskrnlnt4.lib if you don't have it
# I'm using old library for NT4 compability
# *********************************************************************
TARGETLIBS=$(BASEDIR)\LIB\W2K\i386\ntoskrnlnt4.lib $(BASEDIR)\LIB\W2K\i386\hal.lib ntice.lib

I modified it as this
TARGETLIBS=$(BASEDIR)\LIB\Wnet\i386\ntoskrnl.lib $(BASEDIR)\LIB\Wnet\i386\hal.lib ntice.lib

2. modify the file "make.bat" (maybe not needed)

et SAVEDDIR=%CD%

call %BASEDIR%\bin\setenv.bat %BASEDIR% fre wnet
cd /d %SAVEDDIR%

set SAVEDDIR=

del .\objfre_wnet_x86\i386\*.res

prefast build
prefast list


All times are GMT +8. The time now is 22:05.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX