473,699 Members | 2,160 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

registering 64bit ATL COM dll error 0x80020009

I have built a 64bit ATL COM dll.

When i register the dll on IA64 windows Enterprise server 2003, i get
following error.

DllRegisterServ er in mydll.dll failed.
Return code was : 0x80020009

The command i am using to register the dll is

c:\test>regsvr3 2 mydll.dll

I have verified that even for 64bit the regsvr is called regsvr32.exe
in system32 folder.

Winerror.h says the error is DISP_E_EXCEPTIO N
which is Exception occurred.

#define DISP_E_EXCEPTIO N _HRESULT_TYPEDE F_(0x80020009L)

Can this be any alignment issue that is triggering this exception ?

I have verified using dependency walker that all the files referenced
by the dll
exist on the machine.

32bit version of the DLL same works perfectly well on 32bit machines.

My build machine setup is :
1)Windows 2003 standard server (32 bit)
2)VC++ .NET 2003 (v7.1)
2)Platform SDK April 2003

The target machine is Itanium based HP Rx 2600 with Windows Enterprise
server 2003.

Any clues will be greatly appreciated.

Regards,
Vijay Chegu
//vijaycheguregsv rexception
Nov 16 '05 #1
11 13297
Run it under the debugger and see, "ntsd -lines regsvr32 mydll.dll"

--

Ken Wickes [MSFT]
This posting is provided "AS IS" with no warranties, and confers no rights.
"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
I have built a 64bit ATL COM dll.

When i register the dll on IA64 windows Enterprise server 2003, i get
following error.

DllRegisterServ er in mydll.dll failed.
Return code was : 0x80020009

The command i am using to register the dll is

c:\test>regsvr3 2 mydll.dll

I have verified that even for 64bit the regsvr is called regsvr32.exe
in system32 folder.

Winerror.h says the error is DISP_E_EXCEPTIO N
which is Exception occurred.

#define DISP_E_EXCEPTIO N _HRESULT_TYPEDE F_(0x80020009L)

Can this be any alignment issue that is triggering this exception ?

I have verified using dependency walker that all the files referenced
by the dll
exist on the machine.

32bit version of the DLL same works perfectly well on 32bit machines.

My build machine setup is :
1)Windows 2003 standard server (32 bit)
2)VC++ .NET 2003 (v7.1)
2)Platform SDK April 2003

The target machine is Itanium based HP Rx 2600 with Windows Enterprise
server 2003.

Any clues will be greatly appreciated.

Regards,
Vijay Chegu
//vijaycheguregsv rexception

Nov 16 '05 #2
Hi Ken Wickes,

I have pasted the output obtained when i ran this command

c:\test\release >ntsd -lines regsvr32 mydll.dll

I couldnt make out any thing from the output :-(
I have pasted it below.

The dll is in the same folder from where i am executing this command.
But i see "The system cannot find the file specified." error.
Which file is it trying to find ?

When i ran
c:\test\release >regsvr32 mydll.dll

The error i get is not "file not found", so regsvr32 is definitely
able to find mydll.dll to register.

Can u kindly point me at some resources that can help me isolate the
problem ?

Thanx and Regards,
Vijay Chegu

------------->
Microsoft (R) Windows Debugger Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: regsvr32 mydll.dll
The call to LoadLibrary(ext ) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(ext s) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(uex t) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(nts dexts) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
Symbol search path is: *** Invalid *** : Verify _NT_SYMBOL_PATH
setting
Executable search path is:
ModLoad: 00000000`010000 00 00000000`010100 00 regsvr32.exe
ModLoad: 00000000`77e700 00 00000000`77ff40 00 ntdll.dll
ModLoad: 00000000`77c900 00 00000000`77e600 00
C:\WINDOWS.0\sy stem32\kernel32 .dl
l
ModLoad: 000006fb`7faa00 00 000006fb`7fb860 00
C:\WINDOWS.0\sy stem32\msvcrt.d ll
ModLoad: 000006fb`7fe800 00 000006fb`7ffe00 00
C:\WINDOWS.0\sy stem32\ADVAPI32 .dl
l
ModLoad: 000006fb`7fc600 00 000006fb`7fe740 00
C:\WINDOWS.0\sy stem32\RPCRT4.d ll
ModLoad: 00000000`77b300 00 00000000`77c8a0 00
C:\WINDOWS.0\sy stem32\USER32.d ll
ModLoad: 000006fb`7fb900 00 000006fb`7fc5e0 00
C:\WINDOWS.0\sy stem32\GDI32.dl l
ModLoad: 000006fb`7e7b00 00 000006fb`7eb200 00
C:\WINDOWS.0\sy stem32\ole32.dl l
(328.6e8): Break instruction exception - code 80000003 (first chance)
*** ERROR: Symbol file could not be found. Defaulted to export
symbols for ntdl
l.dll -
ntdll!EtwpGetTr aceBuffer+f4eb8 :
Falcon EM Decoder xversion 9.60, api 9.6, emdb 1.2
00000000`77f6be 58 break.i 80016

0:000>
<-------------

--------------
"Ken Wickes [MSFT]" <ke****@online. microsoft.com> wrote in message news:<eF******* *******@tk2msft ngp13.phx.gbl>. ..
Run it under the debugger and see, "ntsd -lines regsvr32 mydll.dll"

--

Nov 16 '05 #3
the break below is the initial breakpoint on process startup.

Get the debugger package from the web (dor IA64)
http://www.microsoft.com/whdc/ddk/de...g/default.mspx
and set the symbols path as per the documentation.

Then run
c:\debuggers>st art ntsd -g -G regsvr32.exe <FULL_PATH_TO_Y OUR_DLL>

If everything is OK, the debugger will start and exit cleanly,
otherwise it will break for good. Please report the output of the
break-for-good.
--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
Hi Ken Wickes,

I have pasted the output obtained when i ran this command

c:\test\release >ntsd -lines regsvr32 mydll.dll

I couldnt make out any thing from the output :-(
I have pasted it below.

The dll is in the same folder from where i am executing this command.
But i see "The system cannot find the file specified." error.
Which file is it trying to find ?

When i ran
c:\test\release >regsvr32 mydll.dll

The error i get is not "file not found", so regsvr32 is definitely
able to find mydll.dll to register.

Can u kindly point me at some resources that can help me isolate the
problem ?

Thanx and Regards,
Vijay Chegu

------------->
Microsoft (R) Windows Debugger Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: regsvr32 mydll.dll
The call to LoadLibrary(ext ) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(ext s) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(uex t) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(nts dexts) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
Symbol search path is: *** Invalid *** : Verify _NT_SYMBOL_PATH
setting
Executable search path is:
ModLoad: 00000000`010000 00 00000000`010100 00 regsvr32.exe
ModLoad: 00000000`77e700 00 00000000`77ff40 00 ntdll.dll
ModLoad: 00000000`77c900 00 00000000`77e600 00
C:\WINDOWS.0\sy stem32\kernel32 .dl
l
ModLoad: 000006fb`7faa00 00 000006fb`7fb860 00
C:\WINDOWS.0\sy stem32\msvcrt.d ll
ModLoad: 000006fb`7fe800 00 000006fb`7ffe00 00
C:\WINDOWS.0\sy stem32\ADVAPI32 .dl
l
ModLoad: 000006fb`7fc600 00 000006fb`7fe740 00
C:\WINDOWS.0\sy stem32\RPCRT4.d ll
ModLoad: 00000000`77b300 00 00000000`77c8a0 00
C:\WINDOWS.0\sy stem32\USER32.d ll
ModLoad: 000006fb`7fb900 00 000006fb`7fc5e0 00
C:\WINDOWS.0\sy stem32\GDI32.dl l
ModLoad: 000006fb`7e7b00 00 000006fb`7eb200 00
C:\WINDOWS.0\sy stem32\ole32.dl l
(328.6e8): Break instruction exception - code 80000003 (first chance)
*** ERROR: Symbol file could not be found. Defaulted to export
symbols for ntdl
l.dll -
ntdll!EtwpGetTr aceBuffer+f4eb8 :
Falcon EM Decoder xversion 9.60, api 9.6, emdb 1.2
00000000`77f6be 58 break.i 80016

0:000>
<-------------

--------------
"Ken Wickes [MSFT]" <ke****@online. microsoft.com> wrote in message

news:<eF******* *******@tk2msft ngp13.phx.gbl>. ..
Run it under the debugger and see, "ntsd -lines regsvr32 mydll.dll"

--

Nov 16 '05 #4
I ran ntsd on IA64 machine. I have used debug build.
I have copied the MFC related debug files also in the directory.
Trace statments from my program are preceeded by --->.

The actual dll is xena.dll, which uses xenautil.dll which is also in
the local folder. dependency walker shows no problem when i open
xena.dll.

Here is the output.

c:\>start ntsd -g -G regsvr32.exe c:\test\dbg\xen a.dll

Microsoft (R) Windows Debugger Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: regsvr32.exe c:\test\dbg\xen a.dll
The call to LoadLibrary(ext ) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(ext s) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(uex t) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(nts dexts) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
Symbol search path is: *** Invalid *** : Verify _NT_SYMBOL_PATH
setting
Executable search path is:
ModLoad: 00000000`010000 00 00000000`010100 00 regsvr32.exe
ModLoad: 00000000`77e700 00 00000000`77ff40 00 ntdll.dll
ModLoad: 00000000`77c900 00 00000000`77e600 00
C:\WINDOWS.0\sy stem32\kernel32 .dl
l
ModLoad: 000006fb`7faa00 00 000006fb`7fb860 00
C:\WINDOWS.0\sy stem32\msvcrt.d ll
ModLoad: 000006fb`7fe800 00 000006fb`7ffe00 00
C:\WINDOWS.0\sy stem32\ADVAPI32 .dl
l
ModLoad: 000006fb`7fc600 00 000006fb`7fe740 00
C:\WINDOWS.0\sy stem32\RPCRT4.d ll
ModLoad: 00000000`77b300 00 00000000`77c8a0 00
C:\WINDOWS.0\sy stem32\USER32.d ll
ModLoad: 000006fb`7fb900 00 000006fb`7fc5e0 00
C:\WINDOWS.0\sy stem32\GDI32.dl l
ModLoad: 000006fb`7e7b00 00 000006fb`7eb200 00
C:\WINDOWS.0\sy stem32\ole32.dl l
ModLoad: 00000000`100000 00 00000000`100c40 00 c:\test\dbg\xen a.dll
ModLoad: 000006fb`ff3200 00 000006fb`ff3a80 00 c:\test\dbg\xen apd.dll
ModLoad: 000006fb`ff2f00 00 000006fb`ff31e0 00
c:\test\dbg\xen autil.dll
ModLoad: 000006fb`7dbb00 00 000006fb`7dbf40 00
C:\WINDOWS.0\sy stem32\iphlpapi .dl
l
ModLoad: 000006fb`73b600 00 000006fb`73ba40 00
C:\WINDOWS.0\sy stem32\WS2_32.d ll
ModLoad: 000006fb`73b400 00 000006fb`73b5a0 00
C:\WINDOWS.0\sy stem32\WS2HELP. dll

ModLoad: 00000000`5f8000 00 00000000`5fbe00 00 c:\test\dbg\MFC 42uD.DLL
ModLoad: 00000000`102000 00 00000000`103e00 00 c:\test\dbg\MSV CRTD.dll
ModLoad: 00000000`5f6000 00 00000000`5f6280 00
c:\test\dbg\MFC N42uD.DLL
ModLoad: 000006fb`73ac00 00 000006fb`73ad00 00
C:\WINDOWS.0\sy stem32\WSOCK32. dll

ModLoad: 000006fb`7e4100 00 000006fb`7e7aa0 00
C:\WINDOWS.0\sy stem32\OLEAUT32 .dl
l
ModLoad: 00000000`104800 00 00000000`1061a0 00
c:\test\dbg\MSV CP60D.dll
ModLoad: 000006fb`7cc700 00 000006fb`7ce5e0 00
C:\WINDOWS.0\sy stem32\SETUPAPI .dl
l
ModLoad: 000006fb`fefe00 00 000006fb`ff2ee0 00
c:\test\dbg\MFC O42uD.DLL
ModLoad: 000006fb`792f00 00 000006fb`793420 00
C:\WINDOWS.0\sy stem32\oledlg.d ll
ModLoad: 000006fb`7c0500 00 000006fb`7c1980 00
C:\WINDOWS.0\sy stem32\urlmon.d ll
ModLoad: 000006fb`7eb300 00 000006fb`7ebec0 00
C:\WINDOWS.0\sy stem32\SHLWAPI. dll
ModLoad: 000006fb`7fa800 00 000006fb`7fa980 00
C:\WINDOWS.0\sy stem32\VERSION. dll
ModLoad: 000006fb`7ed900 00 000006fb`7fa0a0 00
C:\WINDOWS.0\sy stem32\SHELL32. dll
ModLoad: 000006fb`7d6700 00 000006fb`7d6d20 00
C:\WINDOWS.0\sy stem32\ATL.DLL
--->Xenautil.dll Initializing!
ModLoad: 000006fb`723700 00 000006fb`725a80 00
C:\WINDOWS.0\Wi nSxS\ia64_Micro sof
t.Windows.Commo n-Controls_6595b6 4144ccf1df_6.0. 100.0_x-ww_B3722BAB\com ctl32.dll
--->InitInstance
--->DllRegisterSer ver
--->About to call _Module.Registe rServer(FALSE)
ModLoad: 000006fb`7e1f00 00 000006fb`7e3380 00
C:\WINDOWS.0\sy stem32\CLBCatQ. DLL
ModLoad: 000006fb`7e3400 00 000006fb`7e40c0 00
C:\WINDOWS.0\sy stem32\COMRes.d ll

Dialog box pops up saying
DllRegisterServ er in c:\test\dbg\xen a.dll failed
Return code was : 0x80020009

Thanx and Regards,
Vijay Chegu
"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message news:<#w******* *******@TK2MSFT NGP11.phx.gbl>. ..
the break below is the initial breakpoint on process startup.

Get the debugger package from the web (dor IA64)
http://www.microsoft.com/whdc/ddk/de...g/default.mspx
and set the symbols path as per the documentation.

Then run
c:\debuggers>st art ntsd -g -G regsvr32.exe <FULL_PATH_TO_Y OUR_DLL>

If everything is OK, the debugger will start and exit cleanly,
otherwise it will break for good. Please report the output of the
break-for-good.
--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Nov 16 '05 #5
You will have to debug the DllRegisterServ er() till you get
to the point where the error 0x80020009 is generated.
There is nothing informative and no break below.
Looks like is coming from the SetErrorInfo wrapper offered by ATL.
Do you do anything special besides registry manipulation in your
RegisterServer ?

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
I ran ntsd on IA64 machine. I have used debug build.
I have copied the MFC related debug files also in the directory.
Trace statments from my program are preceeded by --->.

The actual dll is xena.dll, which uses xenautil.dll which is also in
the local folder. dependency walker shows no problem when i open
xena.dll.

Here is the output.

c:\>start ntsd -g -G regsvr32.exe c:\test\dbg\xen a.dll

Microsoft (R) Windows Debugger Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: regsvr32.exe c:\test\dbg\xen a.dll
The call to LoadLibrary(ext ) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(ext s) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(uex t) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(nts dexts) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
Symbol search path is: *** Invalid *** : Verify _NT_SYMBOL_PATH
setting
Executable search path is:
ModLoad: 00000000`010000 00 00000000`010100 00 regsvr32.exe
ModLoad: 00000000`77e700 00 00000000`77ff40 00 ntdll.dll
ModLoad: 00000000`77c900 00 00000000`77e600 00
C:\WINDOWS.0\sy stem32\kernel32 .dl
l
ModLoad: 000006fb`7faa00 00 000006fb`7fb860 00
C:\WINDOWS.0\sy stem32\msvcrt.d ll
ModLoad: 000006fb`7fe800 00 000006fb`7ffe00 00
C:\WINDOWS.0\sy stem32\ADVAPI32 .dl
l
ModLoad: 000006fb`7fc600 00 000006fb`7fe740 00
C:\WINDOWS.0\sy stem32\RPCRT4.d ll
ModLoad: 00000000`77b300 00 00000000`77c8a0 00
C:\WINDOWS.0\sy stem32\USER32.d ll
ModLoad: 000006fb`7fb900 00 000006fb`7fc5e0 00
C:\WINDOWS.0\sy stem32\GDI32.dl l
ModLoad: 000006fb`7e7b00 00 000006fb`7eb200 00
C:\WINDOWS.0\sy stem32\ole32.dl l
ModLoad: 00000000`100000 00 00000000`100c40 00 c:\test\dbg\xen a.dll
ModLoad: 000006fb`ff3200 00 000006fb`ff3a80 00 c:\test\dbg\xen apd.dll
ModLoad: 000006fb`ff2f00 00 000006fb`ff31e0 00
c:\test\dbg\xen autil.dll
ModLoad: 000006fb`7dbb00 00 000006fb`7dbf40 00
C:\WINDOWS.0\sy stem32\iphlpapi .dl
l
ModLoad: 000006fb`73b600 00 000006fb`73ba40 00
C:\WINDOWS.0\sy stem32\WS2_32.d ll
ModLoad: 000006fb`73b400 00 000006fb`73b5a0 00
C:\WINDOWS.0\sy stem32\WS2HELP. dll

ModLoad: 00000000`5f8000 00 00000000`5fbe00 00 c:\test\dbg\MFC 42uD.DLL
ModLoad: 00000000`102000 00 00000000`103e00 00 c:\test\dbg\MSV CRTD.dll
ModLoad: 00000000`5f6000 00 00000000`5f6280 00
c:\test\dbg\MFC N42uD.DLL
ModLoad: 000006fb`73ac00 00 000006fb`73ad00 00
C:\WINDOWS.0\sy stem32\WSOCK32. dll

ModLoad: 000006fb`7e4100 00 000006fb`7e7aa0 00
C:\WINDOWS.0\sy stem32\OLEAUT32 .dl
l
ModLoad: 00000000`104800 00 00000000`1061a0 00
c:\test\dbg\MSV CP60D.dll
ModLoad: 000006fb`7cc700 00 000006fb`7ce5e0 00
C:\WINDOWS.0\sy stem32\SETUPAPI .dl
l
ModLoad: 000006fb`fefe00 00 000006fb`ff2ee0 00
c:\test\dbg\MFC O42uD.DLL
ModLoad: 000006fb`792f00 00 000006fb`793420 00
C:\WINDOWS.0\sy stem32\oledlg.d ll
ModLoad: 000006fb`7c0500 00 000006fb`7c1980 00
C:\WINDOWS.0\sy stem32\urlmon.d ll
ModLoad: 000006fb`7eb300 00 000006fb`7ebec0 00
C:\WINDOWS.0\sy stem32\SHLWAPI. dll
ModLoad: 000006fb`7fa800 00 000006fb`7fa980 00
C:\WINDOWS.0\sy stem32\VERSION. dll
ModLoad: 000006fb`7ed900 00 000006fb`7fa0a0 00
C:\WINDOWS.0\sy stem32\SHELL32. dll
ModLoad: 000006fb`7d6700 00 000006fb`7d6d20 00
C:\WINDOWS.0\sy stem32\ATL.DLL
--->Xenautil.dll Initializing!
ModLoad: 000006fb`723700 00 000006fb`725a80 00
C:\WINDOWS.0\Wi nSxS\ia64_Micro sof
t.Windows.Commo n-Controls_6595b6 4144ccf1df_6.0. 100.0_x-ww_B3722BAB\com ctl32.
dll --->InitInstance
--->DllRegisterSer ver
--->About to call _Module.Registe rServer(FALSE)
ModLoad: 000006fb`7e1f00 00 000006fb`7e3380 00
C:\WINDOWS.0\sy stem32\CLBCatQ. DLL
ModLoad: 000006fb`7e3400 00 000006fb`7e40c0 00
C:\WINDOWS.0\sy stem32\COMRes.d ll

Dialog box pops up saying
DllRegisterServ er in c:\test\dbg\xen a.dll failed
Return code was : 0x80020009

Thanx and Regards,
Vijay Chegu
"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message

news:<#w******* *******@TK2MSFT NGP11.phx.gbl>. ..
the break below is the initial breakpoint on process startup.

Get the debugger package from the web (dor IA64)
http://www.microsoft.com/whdc/ddk/de...g/default.mspx
and set the symbols path as per the documentation.

Then run
c:\debuggers>st art ntsd -g -G regsvr32.exe <FULL_PATH_TO_Y OUR_DLL>

If everything is OK, the debugger will start and exit cleanly,
otherwise it will break for good. Please report the output of the
break-for-good.
--
This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Nov 16 '05 #6
Hi Ivan Brugiolo,

Following is my dllregisterserv er function.
STDAPI DllRegisterServ er(void)
{
OutputDebugStri ng(_T("DllRegis terServer"));
OutputDebugStri ng(_T("About to call
_Module.Registe rServer(FALSE)" ));

HRESULT hr = _Module.Registe rServer(FALSE);

return hr;
}

I do not do any additional processing in this method.

I have installed 64bit native windbg on IA64bit machine.
This allows me to debug the regsvr32 xena.dll.

bcoz i do not have chkbuild IA64 OS, the debugger will continue in
assembly code. Advice me on how i can get to the root of the bug. If i
configure intenet symbol server for windbg will i be able to view more
information ?

Thanx a lot for the follow up.

Regards,
Vijay Chegu
"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message news:<ep******* ******@TK2MSFTN GP10.phx.gbl>.. .
You will have to debug the DllRegisterServ er() till you get
to the point where the error 0x80020009 is generated.
There is nothing informative and no break below.
Looks like is coming from the SetErrorInfo wrapper offered by ATL.
Do you do anything special besides registry manipulation in your
RegisterServer ?

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
I ran ntsd on IA64 machine. I have used debug build.
I have copied the MFC related debug files also in the directory.
Trace statments from my program are preceeded by --->.

The actual dll is xena.dll, which uses xenautil.dll which is also in
the local folder. dependency walker shows no problem when i open
xena.dll.

Here is the output.

c:\>start ntsd -g -G regsvr32.exe c:\test\dbg\xen a.dll

Microsoft (R) Windows Debugger Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: regsvr32.exe c:\test\dbg\xen a.dll
The call to LoadLibrary(ext ) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(ext s) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(uex t) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(nts dexts) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
Symbol search path is: *** Invalid *** : Verify _NT_SYMBOL_PATH
setting
Executable search path is:
ModLoad: 00000000`010000 00 00000000`010100 00 regsvr32.exe
ModLoad: 00000000`77e700 00 00000000`77ff40 00 ntdll.dll
ModLoad: 00000000`77c900 00 00000000`77e600 00
C:\WINDOWS.0\sy stem32\kernel32 .dl
l
ModLoad: 000006fb`7faa00 00 000006fb`7fb860 00
C:\WINDOWS.0\sy stem32\msvcrt.d ll
ModLoad: 000006fb`7fe800 00 000006fb`7ffe00 00
C:\WINDOWS.0\sy stem32\ADVAPI32 .dl
l
ModLoad: 000006fb`7fc600 00 000006fb`7fe740 00
C:\WINDOWS.0\sy stem32\RPCRT4.d ll
ModLoad: 00000000`77b300 00 00000000`77c8a0 00
C:\WINDOWS.0\sy stem32\USER32.d ll
ModLoad: 000006fb`7fb900 00 000006fb`7fc5e0 00
C:\WINDOWS.0\sy stem32\GDI32.dl l
ModLoad: 000006fb`7e7b00 00 000006fb`7eb200 00
C:\WINDOWS.0\sy stem32\ole32.dl l
ModLoad: 00000000`100000 00 00000000`100c40 00 c:\test\dbg\xen a.dll
ModLoad: 000006fb`ff3200 00 000006fb`ff3a80 00 c:\test\dbg\xen apd.dll
ModLoad: 000006fb`ff2f00 00 000006fb`ff31e0 00
c:\test\dbg\xen autil.dll
ModLoad: 000006fb`7dbb00 00 000006fb`7dbf40 00
C:\WINDOWS.0\sy stem32\iphlpapi .dl
l
ModLoad: 000006fb`73b600 00 000006fb`73ba40 00
C:\WINDOWS.0\sy stem32\WS2_32.d ll
ModLoad: 000006fb`73b400 00 000006fb`73b5a0 00
C:\WINDOWS.0\sy stem32\WS2HELP. dll

ModLoad: 00000000`5f8000 00 00000000`5fbe00 00 c:\test\dbg\MFC 42uD.DLL
ModLoad: 00000000`102000 00 00000000`103e00 00 c:\test\dbg\MSV CRTD.dll
ModLoad: 00000000`5f6000 00 00000000`5f6280 00
c:\test\dbg\MFC N42uD.DLL
ModLoad: 000006fb`73ac00 00 000006fb`73ad00 00
C:\WINDOWS.0\sy stem32\WSOCK32. dll

ModLoad: 000006fb`7e4100 00 000006fb`7e7aa0 00
C:\WINDOWS.0\sy stem32\OLEAUT32 .dl
l
ModLoad: 00000000`104800 00 00000000`1061a0 00
c:\test\dbg\MSV CP60D.dll
ModLoad: 000006fb`7cc700 00 000006fb`7ce5e0 00
C:\WINDOWS.0\sy stem32\SETUPAPI .dl
l
ModLoad: 000006fb`fefe00 00 000006fb`ff2ee0 00
c:\test\dbg\MFC O42uD.DLL
ModLoad: 000006fb`792f00 00 000006fb`793420 00
C:\WINDOWS.0\sy stem32\oledlg.d ll
ModLoad: 000006fb`7c0500 00 000006fb`7c1980 00
C:\WINDOWS.0\sy stem32\urlmon.d ll
ModLoad: 000006fb`7eb300 00 000006fb`7ebec0 00
C:\WINDOWS.0\sy stem32\SHLWAPI. dll
ModLoad: 000006fb`7fa800 00 000006fb`7fa980 00
C:\WINDOWS.0\sy stem32\VERSION. dll
ModLoad: 000006fb`7ed900 00 000006fb`7fa0a0 00
C:\WINDOWS.0\sy stem32\SHELL32. dll
ModLoad: 000006fb`7d6700 00 000006fb`7d6d20 00
C:\WINDOWS.0\sy stem32\ATL.DLL
--->Xenautil.dll Initializing!
ModLoad: 000006fb`723700 00 000006fb`725a80 00
C:\WINDOWS.0\Wi nSxS\ia64_Micro sof

t.Windows.Commo n-Controls_6595b6 4144ccf1df_6.0. 100.0_x-ww_B3722BAB\com ctl32.
dll
--->InitInstance
--->DllRegisterSer ver
--->About to call _Module.Registe rServer(FALSE)
ModLoad: 000006fb`7e1f00 00 000006fb`7e3380 00
C:\WINDOWS.0\sy stem32\CLBCatQ. DLL
ModLoad: 000006fb`7e3400 00 000006fb`7e40c0 00
C:\WINDOWS.0\sy stem32\COMRes.d ll

Dialog box pops up saying
DllRegisterServ er in c:\test\dbg\xen a.dll failed
Return code was : 0x80020009

Thanx and Regards,
Vijay Chegu
"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message

news:<#w******* *******@TK2MSFT NGP11.phx.gbl>. ..
the break below is the initial breakpoint on process startup.

Get the debugger package from the web (dor IA64)
http://www.microsoft.com/whdc/ddk/de...g/default.mspx
and set the symbols path as per the documentation.

Then run
c:\debuggers>st art ntsd -g -G regsvr32.exe <FULL_PATH_TO_Y OUR_DLL>

If everything is OK, the debugger will start and exit cleanly,
otherwise it will break for good. Please report the output of the
break-for-good.
--
This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Nov 16 '05 #7
Isn't ATL code supplied in all the major SDK/MSDN/Visual Studio packages ?
The ATL registration code takes it's "parameter" from a set of globals
that are filled in my a set of macro. This accounr the same generated code
to work
for scriptable com component, services, plain com component and few other
cases.

The symbols for WinDbg will not get you to the source code for ATL,
but if you have the source code for ATL you can use the .srcpath command
in Windbg/cdb/ntsd and then the 'lsa' command to see where you are.

In any case, you can follow the code flow without symbols.
the ia64 assembly uses 'br.<completer> .call' to make a call through the bX
branch registers,
and the return value from a call is stored in r8.

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
Hi Ivan Brugiolo,

Following is my dllregisterserv er function.
STDAPI DllRegisterServ er(void)
{
OutputDebugStri ng(_T("DllRegis terServer"));
OutputDebugStri ng(_T("About to call
_Module.Registe rServer(FALSE)" ));

HRESULT hr = _Module.Registe rServer(FALSE);

return hr;
}

I do not do any additional processing in this method.

I have installed 64bit native windbg on IA64bit machine.
This allows me to debug the regsvr32 xena.dll.

bcoz i do not have chkbuild IA64 OS, the debugger will continue in
assembly code. Advice me on how i can get to the root of the bug. If i
configure intenet symbol server for windbg will i be able to view more
information ?

Thanx a lot for the follow up.

Regards,
Vijay Chegu
"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message

news:<ep******* ******@TK2MSFTN GP10.phx.gbl>.. .
You will have to debug the DllRegisterServ er() till you get
to the point where the error 0x80020009 is generated.
There is nothing informative and no break below.
Looks like is coming from the SetErrorInfo wrapper offered by ATL.
Do you do anything special besides registry manipulation in your
RegisterServer ?

--
This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
I ran ntsd on IA64 machine. I have used debug build.
I have copied the MFC related debug files also in the directory.
Trace statments from my program are preceeded by --->.

The actual dll is xena.dll, which uses xenautil.dll which is also in
the local folder. dependency walker shows no problem when i open
xena.dll.

Here is the output.

c:\>start ntsd -g -G regsvr32.exe c:\test\dbg\xen a.dll

Microsoft (R) Windows Debugger Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: regsvr32.exe c:\test\dbg\xen a.dll
The call to LoadLibrary(ext ) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(ext s) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(uex t) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
The call to LoadLibrary(nts dexts) failed, Win32 error 2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
Symbol search path is: *** Invalid *** : Verify _NT_SYMBOL_PATH
setting
Executable search path is:
ModLoad: 00000000`010000 00 00000000`010100 00 regsvr32.exe
ModLoad: 00000000`77e700 00 00000000`77ff40 00 ntdll.dll
ModLoad: 00000000`77c900 00 00000000`77e600 00
C:\WINDOWS.0\sy stem32\kernel32 .dl
l
ModLoad: 000006fb`7faa00 00 000006fb`7fb860 00
C:\WINDOWS.0\sy stem32\msvcrt.d ll
ModLoad: 000006fb`7fe800 00 000006fb`7ffe00 00
C:\WINDOWS.0\sy stem32\ADVAPI32 .dl
l
ModLoad: 000006fb`7fc600 00 000006fb`7fe740 00
C:\WINDOWS.0\sy stem32\RPCRT4.d ll
ModLoad: 00000000`77b300 00 00000000`77c8a0 00
C:\WINDOWS.0\sy stem32\USER32.d ll
ModLoad: 000006fb`7fb900 00 000006fb`7fc5e0 00
C:\WINDOWS.0\sy stem32\GDI32.dl l
ModLoad: 000006fb`7e7b00 00 000006fb`7eb200 00
C:\WINDOWS.0\sy stem32\ole32.dl l
ModLoad: 00000000`100000 00 00000000`100c40 00 c:\test\dbg\xen a.dll
ModLoad: 000006fb`ff3200 00 000006fb`ff3a80 00 c:\test\dbg\xen apd.dll
ModLoad: 000006fb`ff2f00 00 000006fb`ff31e0 00
c:\test\dbg\xen autil.dll
ModLoad: 000006fb`7dbb00 00 000006fb`7dbf40 00
C:\WINDOWS.0\sy stem32\iphlpapi .dl
l
ModLoad: 000006fb`73b600 00 000006fb`73ba40 00
C:\WINDOWS.0\sy stem32\WS2_32.d ll
ModLoad: 000006fb`73b400 00 000006fb`73b5a0 00
C:\WINDOWS.0\sy stem32\WS2HELP. dll

ModLoad: 00000000`5f8000 00 00000000`5fbe00 00 c:\test\dbg\MFC 42uD.DLL
ModLoad: 00000000`102000 00 00000000`103e00 00 c:\test\dbg\MSV CRTD.dll
ModLoad: 00000000`5f6000 00 00000000`5f6280 00
c:\test\dbg\MFC N42uD.DLL
ModLoad: 000006fb`73ac00 00 000006fb`73ad00 00
C:\WINDOWS.0\sy stem32\WSOCK32. dll

ModLoad: 000006fb`7e4100 00 000006fb`7e7aa0 00
C:\WINDOWS.0\sy stem32\OLEAUT32 .dl
l
ModLoad: 00000000`104800 00 00000000`1061a0 00
c:\test\dbg\MSV CP60D.dll
ModLoad: 000006fb`7cc700 00 000006fb`7ce5e0 00
C:\WINDOWS.0\sy stem32\SETUPAPI .dl
l
ModLoad: 000006fb`fefe00 00 000006fb`ff2ee0 00
c:\test\dbg\MFC O42uD.DLL
ModLoad: 000006fb`792f00 00 000006fb`793420 00
C:\WINDOWS.0\sy stem32\oledlg.d ll
ModLoad: 000006fb`7c0500 00 000006fb`7c1980 00
C:\WINDOWS.0\sy stem32\urlmon.d ll
ModLoad: 000006fb`7eb300 00 000006fb`7ebec0 00
C:\WINDOWS.0\sy stem32\SHLWAPI. dll
ModLoad: 000006fb`7fa800 00 000006fb`7fa980 00
C:\WINDOWS.0\sy stem32\VERSION. dll
ModLoad: 000006fb`7ed900 00 000006fb`7fa0a0 00
C:\WINDOWS.0\sy stem32\SHELL32. dll
ModLoad: 000006fb`7d6700 00 000006fb`7d6d20 00
C:\WINDOWS.0\sy stem32\ATL.DLL
--->Xenautil.dll Initializing!
ModLoad: 000006fb`723700 00 000006fb`725a80 00
C:\WINDOWS.0\Wi nSxS\ia64_Micro sof

t.Windows.Commo n-Controls_6595b6 4144ccf1df_6.0. 100.0_x-ww_B3722BAB\com ctl32. dll
--->InitInstance
--->DllRegisterSer ver
--->About to call _Module.Registe rServer(FALSE)
ModLoad: 000006fb`7e1f00 00 000006fb`7e3380 00
C:\WINDOWS.0\sy stem32\CLBCatQ. DLL
ModLoad: 000006fb`7e3400 00 000006fb`7e40c0 00
C:\WINDOWS.0\sy stem32\COMRes.d ll

Dialog box pops up saying
DllRegisterServ er in c:\test\dbg\xen a.dll failed
Return code was : 0x80020009

Thanx and Regards,
Vijay Chegu
"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message
news:<#w******* *******@TK2MSFT NGP11.phx.gbl>. ..
> the break below is the initial breakpoint on process startup.
>
> Get the debugger package from the web (dor IA64)
> http://www.microsoft.com/whdc/ddk/de...g/default.mspx
> and set the symbols path as per the documentation.
>
> Then run
> c:\debuggers>st art ntsd -g -G regsvr32.exe <FULL_PATH_TO_Y OUR_DLL>
>
> If everything is OK, the debugger will start and exit cleanly,
> otherwise it will break for good. Please report the output of the
> break-for-good.
> --
> This posting is provided "AS IS" with no warranties, and confers no

rights.
> Use of any included script samples are subject to the terms

specified at > http://www.microsoft.com/info/cpyright.htm

Nov 16 '05 #8
what's the return value from xena!NetConfig: :UpdateRegistry ?

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
Hi Ivan Brugiolo,

I installed 64bit windbg. But the source file it opens and points when
i enter the method
HRESULT hr = _Module.Registe rServer(FALSE);

is a weird line in atlbase.h.

So i had to do a remote debugging and connect to 64bit-windbg on 64bit
machine from a 32bit machine+32bit windbg. Then it actually opened
correct method in atlbase.h on my 32bit machine. Ofcourse i have set
the path to correct 64bit files.

I trace i can see follwing methods are called while dllregisterserv er
is executing.

1)xena!ATL::CCo mModule::Regist erServer:
2)xena!ATL::CCo mCoClass<NetCon fig,&CLSID_NetC onfig>::GetObje ctDescription+0 3)xena!NetConfi g::UpdateRegist ry+0
4)xena!ATL::CCo mModule::Regist erServer+a0

after this i get the error ??
So can i assume the UpdateRegistry is causing problems ?

I have this line in source

DECLARE_REGISTR Y_RESOURCEID(ID R_NETCONFIG)

Where IDR_NETCONFIG points to netconfig.rgs file which is as below.

HKCR
{
Notify.NetConfi g.1 = s 'NetConfig Class'
{
CLSID = s '{DDD6B12C-0934-406A-9BCF-708C8342AD67}'
}
Notify.NetConfi g = s 'NetConfig Class'
{
CLSID = s '{DDD6B12C-0934-406A-9BCF-708C8342AD67}'
CurVer = s 'Notify.NetConf ig.1'
}
NoRemove CLSID
{
ForceRemove {DDD6B12C-0934-406A-9BCF-708C8342AD67} = s 'NetConfig
Class'
{
ProgID = s 'Notify.NetConf ig.1'
VersionIndepend entProgID = s 'Notify.NetConf ig'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
val AppID = s '%APPID%'
'TypeLib' = s '{56A853D8-0644-47B5-8DBA-3793AFA47BFD}'
}
}
}
Is there any thing wrong here ?
This works perfectly fine in win32.

Followoing is the trace dump.

I am not able to figure out where the exception is happening.

ModLoad: 00000000`100000 00 00000000`100c40 00
Z:\s2io-64-2\bin\ia64\debu g\xena.dll
ModLoad: 000006fb`ff3200 00 000006fb`ff3a80 00
Z:\s2io-64-2\bin\ia64\debu g\xenapd.dll
ModLoad: 000006fb`ff2f00 00 000006fb`ff31e0 00
Z:\s2io-64-2\bin\ia64\debu g\xenautil.dll
ModLoad: 000006fb`7dbb00 00 000006fb`7dbf40 00
C:\WINDOWS.0\sy stem32\iphlpapi .dll
ModLoad: 000006fb`73b600 00 000006fb`73ba40 00
C:\WINDOWS.0\sy stem32\WS2_32.d ll
ModLoad: 000006fb`73b400 00 000006fb`73b5a0 00
C:\WINDOWS.0\sy stem32\WS2HELP. dll
ModLoad: 00000000`5f8000 00 00000000`5fbe00 00
Z:\s2io-64-2\bin\ia64\debu g\MFC42uD.DLL
ModLoad: 00000000`102000 00 00000000`103e00 00
Z:\s2io-64-2\bin\ia64\debu g\MSVCRTD.dll
ModLoad: 00000000`5f6000 00 00000000`5f6280 00
Z:\s2io-64-2\bin\ia64\debu g\MFCN42uD.DLL
ModLoad: 000006fb`73ac00 00 000006fb`73ad00 00
C:\WINDOWS.0\sy stem32\WSOCK32. dll
ModLoad: 000006fb`7e4100 00 000006fb`7e7aa0 00
C:\WINDOWS.0\sy stem32\OLEAUT32 .dll
ModLoad: 00000000`104800 00 00000000`1061a0 00
Z:\s2io-64-2\bin\ia64\debu g\MSVCP60D.dll
ModLoad: 000006fb`7cc700 00 000006fb`7ce5e0 00
C:\WINDOWS.0\sy stem32\SETUPAPI .dll
ModLoad: 000006fb`fefe00 00 000006fb`ff2ee0 00
Z:\s2io-64-2\bin\ia64\debu g\MFCO42uD.DLL
ModLoad: 000006fb`792f00 00 000006fb`793420 00
C:\WINDOWS.0\sy stem32\oledlg.d ll
ModLoad: 000006fb`7c0500 00 000006fb`7c1980 00
C:\WINDOWS.0\sy stem32\urlmon.d ll
ModLoad: 000006fb`7eb300 00 000006fb`7ebec0 00
C:\WINDOWS.0\sy stem32\SHLWAPI. dll
ModLoad: 000006fb`7fa800 00 000006fb`7fa980 00
C:\WINDOWS.0\sy stem32\VERSION. dll
ModLoad: 000006fb`7ed900 00 000006fb`7fa0a0 00
C:\WINDOWS.0\sy stem32\SHELL32. dll
ModLoad: 000006fb`7d6700 00 000006fb`7d6d20 00
C:\WINDOWS.0\sy stem32\ATL.DLL
Xenautil.dll Initializing!
ModLoad: 000006fb`723700 00 000006fb`725a80 00
C:\WINDOWS.0\Wi nSxS\ia64_Micro soft.Windows.Co mmon-Controls_6595b6 4144ccf1df_
6.0.100.0_x-ww_B3722BAB\com ctl32.dll NotifyApp::Init Instance
(e84.e88): Break instruction exception - code 80000003 (first chance)
ntdll!EtwpGetTr aceBuffer+f4eb8 :
00000000`77f6be 58 break.i 80016

WARNING: Z:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\atlmfc \include is not accessible
WARNING: Z:\s2io-64-2\xutil\IA64\De bug is not accessible
WARNING: Z:\s2io-64-2\Notify\IA64\D ebug is not accessible
WARNING: Z:\s2io-64-2\data\IA64\Deb ug is not accessible
0:000> g
Breakpoint 2 hit
xena!DllRegiste rServer+54:
00000000`100412 34 addl r28=ffffffff`ff e01090, gp
0:000> t
xena!ATL::CComM odule::Register Server:
00000000`100459 c0 alloc r36=ar.pfs, 6, 0, 3, 0
0:000> t
xena!ATL::CComM odule::Register Server+44:
00000000`10045a 04 addl r25=ffffffff`ff e04050, gp
0:000> t
*** ERROR: Symbol file could not be found. Defaulted to export
symbols for C:\WINDOWS.0\sy stem32\ATL.DLL -
ATL!Ordinal9+b2 c0:
000006fb`7d67b2 c0 alloc r42=ar.pfs, d, 0, 3, 0
0:000> p
ATL!Ordinal9+b2 c4:
000006fb`7d67b2 c4 mov r43=pr
0:000> p
ATL!Ordinal9+b2 c8:
000006fb`7d67b2 c8 adds ret0=0, r0

0:000> p
ATL!Ordinal9+b2 d0:
000006fb`7d67b2 d0 cmp.eq p0, p15=r0, r32
0:000> p
ATL!Ordinal9+b2 d4:
000006fb`7d67b2 d4 adds r44=0, gp
0:000> p
ATL!Ordinal9+b2 d8:
000006fb`7d67b2 d8 adds r35=0, r0 ;;

0:000> p
ATL!Ordinal9+b2 e0:
000006fb`7d67b2 e0 adds r47=20, r32
0:000> p
ATL!Ordinal9+b2 e4:
000006fb`7d67b2 e4 mov r41=rp
0:000> p
ATL!Ordinal9+b2 e8:
000006fb`7d67b2 e8 (p15=1)br.cond. dptk.many ATL!Ordinal9+b3 10
(000006fb`7d67b 310) ;;

0:000> p
ATL!Ordinal9+b3 10:
000006fb`7d67b3 10 ld8 r40=[r47]
0:000> p
ATL!Ordinal9+b3 14:
000006fb`7d67b3 14 addl r37=b0, r0
0:000> p
ATL!Ordinal9+b3 18:
000006fb`7d67b3 18 addl r36=f8, r0 ;;

0:000> p
ATL!Ordinal9+b3 20:
000006fb`7d67b3 20 ld8.sa r46=[r40]
0:000> p
ATL!Ordinal9+b3 24:
000006fb`7d67b3 24 cmp.eq p15, p0=r0, r40
0:000> p
ATL!Ordinal9+b3 28:
000006fb`7d67b3 28 (p15=0)br.cond. dpnt.many ATL!Ordinal9+b5 20
(000006fb`7d67b 520) ;;

0:000> p
ATL!Ordinal9+b3 30:
000006fb`7d67b3 30 ld8.c.clr r46=[r40]
0:000> p
ATL!Ordinal9+b3 34:
000006fb`7d67b3 34 cmp.eq p14, p0=r0, r46
0:000> p
ATL!Ordinal9+b3 38:
000006fb`7d67b3 38 (p14=0)br.cond. dpnt.many ATL!Ordinal9+b4 e0
(000006fb`7d67b 4e0) ;;

0:000> p
ATL!Ordinal9+b3 40:
000006fb`7d67b3 40 ld8.sa r31=[r40]
0:000> p
ATL!Ordinal9+b3 44:
000006fb`7d67b3 44 addl r47=10, r0
0:000> p
ATL!Ordinal9+b3 48:
000006fb`7d67b3 48 adds r45=0, r34

0:000> p
ATL!Ordinal9+b3 50:
000006fb`7d67b3 50 cmp.eq p0, p15=r0, r34
0:000> p
ATL!Ordinal9+b3 54:
000006fb`7d67b3 54 adds r30=30, r40
0:000> p
ATL!Ordinal9+b3 58:
000006fb`7d67b3 58 (p15=0)br.cond. dptk.many ATL!Ordinal9+b3 c0
(000006fb`7d67b 3c0) ;;

0:000> p
ATL!Ordinal9+b3 60:
000006fb`7d67b3 60 ld8 r29=[r30]
0:000> p
ATL!Ordinal9+b3 64:
000006fb`7d67b3 64 adds r38=8, r40 ;;
0:000> p
ATL!Ordinal9+b3 68:
000006fb`7d67b3 68 cmp.eq p14, p0=r0, r29

0:000> p
ATL!Ordinal9+b3 70:
000006fb`7d67b3 70 nop.m 0
0:000> p
ATL!Ordinal9+b3 74:
000006fb`7d67b3 74 nop.m 0
0:000> p
ATL!Ordinal9+b3 78:
000006fb`7d67b3 78 (p14=0)br.cond. dpnt.many ATL!Ordinal9+b3 f0
(000006fb`7d67b 3f0) ;;

0:000> p
ATL!Ordinal9+b3 80:
000006fb`7d67b3 80 ld8 r47=[r29], 8 ;;
0:000> p
ATL!Ordinal9+b3 84:
000006fb`7d67b3 84 ld8 gp=[r29]
0:000> p
ATL!Ordinal9+b3 88:
000006fb`7d67b3 88 mov b7=r47, +0

0:000> p
ATL!Ordinal9+b3 90:
000006fb`7d67b3 90 nop.m 0
0:000> p
ATL!Ordinal9+b3 94:
000006fb`7d67b3 94 nop.m 0
0:000> p
ATL!Ordinal9+b3 98:
000006fb`7d67b3 98 br.call.dptk.ma ny rp=b7 ;; //
xena!ATL::CComC oClass<NetConfi g,&CLSID_NetCon fig>::GetObject Description+0
(00000000`10041 3a0)

0:000> p
ATL!Ordinal9+b3 a0:
000006fb`7d67b3 a0 cmp.eq p0, p13=r0, ret0
0:000> p
ATL!Ordinal9+b3 a4:
000006fb`7d67b3 a4 adds gp=0, r44
0:000> p
ATL!Ordinal9+b3 a8:
000006fb`7d67b3 a8 nop.b 0

0:000> p
ATL!Ordinal9+b3 b0:
000006fb`7d67b3 b0 nop.m 0
0:000> p
ATL!Ordinal9+b3 b4:
000006fb`7d67b3 b4 (p13=0)br.cond. dptk.many ATL!Ordinal9+b4 a0
(000006fb`7d67b 4a0)
0:000> p
ATL!Ordinal9+b3 b8:
000006fb`7d67b3 b8 br.cond.sptk.ma ny ATL!Ordinal9+b3 f0
(000006fb`7d67b 3f0) ;;

0:000> p
ATL!Ordinal9+b3 f0:
000006fb`7d67b3 f0 ld8 r31=[r38]
0:000> p
ATL!Ordinal9+b3 f4:
000006fb`7d67b3 f4 addl r45=1, r0
0:000> p
ATL!Ordinal9+b3 f8:
000006fb`7d67b3 f8 adds r38=38, r40 ;;

0:000> p
ATL!Ordinal9+b4 00:
000006fb`7d67b4 00 ld8 r47=[r31], 8 ;;
0:000> p
ATL!Ordinal9+b4 04:
000006fb`7d67b4 04 ld8 gp=[r31]
0:000> p
ATL!Ordinal9+b4 08:
000006fb`7d67b4 08 mov b7=r47, +0

0:000> p
ATL!Ordinal9+b4 10:
000006fb`7d67b4 10 nop.m 0
0:000> p
ATL!Ordinal9+b4 14:
000006fb`7d67b4 14 nop.m 0
0:000> p
ATL!Ordinal9+b4 18:
000006fb`7d67b4 18 br.call.dptk.ma ny rp=b7 ;; //
xena!NetConfig: :UpdateRegistry +0 (00000000`10040 b80)

0:000> p
ModLoad: 000006fb`7e1f00 00 000006fb`7e3380 00
C:\WINDOWS.0\sy stem32\CLBCatQ. DLL
ModLoad: 000006fb`7e3400 00 000006fb`7e40c0 00
C:\WINDOWS.0\sy stem32\COMRes.d ll
ATL!Ordinal9+b4 20:
000006fb`7d67b4 20 ld4.sa r28=[r32]
0:000> p
ATL!Ordinal9+b4 24:
000006fb`7d67b4 24 adds r35=0, ret0
0:000> p
ATL!Ordinal9+b4 28:
000006fb`7d67b4 28 adds gp=0, r44

0:000> p
ATL!Ordinal9+b4 30:
000006fb`7d67b4 30 cmp4.lt p15, p0=ret0, r0
0:000> p
ATL!Ordinal9+b4 34:
000006fb`7d67b4 34 nop.m 0
0:000> p
ATL!Ordinal9+b4 38:
000006fb`7d67b4 38 (p15=1)br.cond. dpnt.many ATL!Ordinal9+b5 10
(000006fb`7d67b 510) ;;

0:000> p
ATL!Ordinal9+b5 10:
000006fb`7d67b5 10 adds ret0=0, r35
0:000> p
ATL!Ordinal9+b5 14:
000006fb`7d67b5 14 mov rp=r41, +0 ;;
0:000> p
ATL!Ordinal9+b5 18:
000006fb`7d67b5 18 mov.i ar.pfs=r42 ;;

0:000> p
ATL!Ordinal9+b5 20:
000006fb`7d67b5 20 nop.m 0
0:000> p
ATL!Ordinal9+b5 24:
000006fb`7d67b5 24 mov pr=r43, ffffffff`ffff00 3e
0:000> p
ATL!Ordinal9+b5 28:
000006fb`7d67b5 28 br.ret.sptk.man y rp ;; //
xena!ATL::CComM odule::Register Server+a0 (00000000`10045 a60)

0:000> p
xena!ATL::CComM odule::Register Server+a0:
00000000`10045a 60 adds r20=10, sp
0:000> t
xena!ATL::CComM odule::Register Server+c0:
00000000`10045a 80 adds sp=30, sp
0:000> p
xena!DllRegiste rServer+70:
00000000`100412 50 adds r27=14, sp
0:000> p
xena!DllRegiste rServer+94:
00000000`100412 74 adds r21=10, sp
0:000> p
xena!DllRegiste rServer+a4:
00000000`100412 84 adds sp=10, sp
0:000> p
regsvr32+4520:
00000000`010045 20 st4 [r58]=ret0
0:000> p
regsvr32+4524:
00000000`010045 24 adds gp=0, r74
0:000> p
regsvr32+4528:
00000000`010045 28 nop.b 0 ;;

0:000> p
regsvr32+4530:
00000000`010045 30 nop.m 0
0:000> p
regsvr32+4534:
00000000`010045 34 nop.m 0
0:000> g @@masm(@$ra)

==> the error is shown here.
DllRegisterServ er in xena.dll failed.
Return code was 0x80020009
Regards,
Vijay Chegu

-----------
"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message

news:<uX******* *******@tk2msft ngp13.phx.gbl>. ..
Isn't ATL code supplied in all the major SDK/MSDN/Visual Studio packages ? The ATL registration code takes it's "parameter" from a set of globals
that are filled in my a set of macro. This accounr the same generated code to work
for scriptable com component, services, plain com component and few other cases.

The symbols for WinDbg will not get you to the source code for ATL,
but if you have the source code for ATL you can use the .srcpath command
in Windbg/cdb/ntsd and then the 'lsa' command to see where you are.

In any case, you can follow the code flow without symbols.
the ia64 assembly uses 'br.<completer> .call' to make a call through the bX branch registers,
and the return value from a call is stored in r8.

--

Nov 16 '05 #9
That's beyond my generic IA64 experties.
Looks a problem with Unicode/Ansi/UTF-8 resource file, that messes-up the
parser.

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Vijay Chegu" <vi********@ind iatimes.com> wrote in message
news:68******** *************** ***@posting.goo gle.com...
Hi Ivan Brugiolo,

The return value is 0x80020009.

This is a unicode DLL. I had problems debugging the atl code
dynamically linking to my dll. So did a static link of atl to my
xena.dll.

It exception happens in the follwoing function in file
<sdkpath>\inclu de\win64\atl\st atreg.h

inline HRESULT CRegParser::Pre ProcessBuffer(L PTSTR lpszReg, LPTSTR*
ppszReg)
{
USES_CONVERSION _EX;
ATLASSERT(lpszR eg != NULL);
ATLASSERT(ppszR eg != NULL);
if (lpszReg == NULL || ppszReg == NULL)
return E_POINTER;
*ppszReg = NULL;
int nSize = lstrlen(lpszReg )*2;
CParseBuffer pb(nSize);
if (pb.p == NULL)
return E_OUTOFMEMORY;
m_pchCur = lpszReg;
HRESULT hr = S_OK;

while (*m_pchCur != NULL) // look for end
{
if (*m_pchCur == _T('%'))
{
m_pchCur = CharNext(m_pchC ur);
if (*m_pchCur == _T('%'))
pb.AddChar(m_pc hCur);
else
{
LPTSTR lpszNext = StrChr(m_pchCur , _T('%'));
if (lpszNext == NULL)
{
ATLTRACE2(atlTr aceRegistrar, 0, _T("Error no
closing % found\n"));
hr = GenerateError(E _ATL_UNEXPECTED _EOS);
break;
}
int nLength = int(lpszNext - m_pchCur);
if (nLength > 31)
{
hr = E_FAIL;
break;
}
TCHAR buf[32];
lstrcpyn(buf, m_pchCur, nLength+1);
LPCOLESTR lpszVar = m_pRegObj->StrFromMap(buf );
if (lpszVar == NULL)
{
hr = GenerateError(E _ATL_NOT_IN_MAP );//<====
_ERROR_ =====
break;
}
pb.AddString(lp szVar);
while (m_pchCur != lpszNext)
m_pchCur = CharNext(m_pchC ur);
}
}
else
pb.AddChar(m_pc hCur);
m_pchCur = CharNext(m_pchC ur);
}
pb.AddChar(m_pc hCur);
if (SUCCEEDED(hr))
*ppszReg = pb.Detach();
return hr;
}
Error occurs at the line shown above with <==== _ERROR_ =====

GenerateError(U INT) irrespective of input parameter always returns
DISP_E_EXCEPTIO N which is 0x80020009

When this happened the value of buf[] was
{0x41,0x50,0x50 ,0x49,0x44,0,0, 0...}
when converted to string ")22;1"

It doesnt make any sense to me.

Below is the callstack.

xena!ATL::CRegP arser::PreProce ssBuffer(unsign ed short* lpszReg =
000006fb`fef276 b0 , unsigned short** ppszReg = 000006fb`ffe8ba 30
)+0x7b0
xena!ATL::CRegP arser::Register Buffer(unsigned short* szBuffer =
000006fb`fef276 b0 , int bRegister = 1)+0xb0
xena!ATL::CRegO bject::Register FromResource(un signed short*
bstrFileName = 000006fb`ffe8e0 e0 , unsigned short* szID =
00000000`000000 66 , unsigned short* szType = 00000000`100ab3 d0 , int
bRegister = 1)+0xfe0
xena!ATL::CRegO bject::Resource Register(unsign ed short* szFileName =
000006fb`ffe8e0 e0 , unsigned int nID = 0x66, unsigned short* szType =
00000000`100ab3 d0 )+0x150
xena!ATL::CComM odule::UpdateRe gistryFromResou rceS(unsigned int nResID
= 0x66, int bRegister = 1, ATL::_ATL_REGMA P_ENTRY* pMapEntries =
00000000`000000 00 )+0x6f0
xena!NetConfig: :UpdateRegistry (int bRegister = 1)+0x50
xena!ATL::AtlMo duleRegisterSer ver(ATL::_ATL_M ODULE* pM =
00000000`100d31 60 , int bRegTypeLib = 0, _GUID* pCLSID =
00000000`000000 00 )+0x530
xena!ATL::CComM odule::Register Server(int bRegTypeLib = 0, _GUID*
pCLSID = 00000000`000000 00 )+0x70
xena!DllRegiste rServer( void )+0x70
regsvr32+0x4520
regsvr32+0x51e0
kernel32!GetDat eFormatW+0x7018 0

Regards,
Vijay Chegu

"Ivan Brugiolo [MSFT]" <iv******@onlin e.microsoft.com > wrote in message

news:<eL******* *******@TK2MSFT NGP11.phx.gbl>. ..
what's the return value from xena!NetConfig: :UpdateRegistry ?

--
This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Nov 16 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
2523
by: John Smith | last post by:
Hi, I am just trying to do a fairly boring bit of DB maintainence that involves getting the correct ID from table2 by matching it with the email field of table2, easy I thought ! Unfortuantley I get a 0x80020009 'Exception Occured' whenever I try to run this. I originally thought that it could be because the email from the first table isn't actually in the second table, sadly there are too many to manually check, so the idea might...
12
1526
by: Lakrom | last post by:
Gentlemen a warm greeting of New Year, that everything is happy next to their dear family and beings. Now to the subject, I have an error of exception in this subroutine. The error is:(0x80020009) A data base is SQL Server 2000. ********************************** Sub Desplegar (Mes) Set dConn=Server.CreateObject("adodb.connection") dConn.open application("StrConRuta") Set dRs=dConn.Execute("select * from solicitud_canje_gte_temp where...
3
3245
by: Christian McArdle | last post by:
REQUEST FOR DISCUSSION (RFD) unmoderated group comp.os.ms-windows.programmer.64bit This is a formal Request For Discussion (RFD) to create comp.os.ms-windows.programmer.64bit as an unmoderated world-wide Usenet newsgroup dedicated to the discussion of Microsoft Windows 64-bit programming. This is not a Call for Votes (CFV); you cannot vote at this time. Procedural details appear below. All followup discussion should be crossposted to...
7
17199
by: Jeff Gilchrist | last post by:
I have tried searching the newsgroup along with the GCC site and could not find what I think is probably a simple solution. I am using a 64bit unsigned long long integer and can manipulate 64bits within the variable but I cannot assign a 64bit constant to it. With my simple test program: int main() {
6
34255
by: Si | last post by:
I get the following error from the code below: Error Type: (0x80020009) Exception occurred. /diary.asp, line 53 The specific part that causes the exception is when I try to access rsAppsTemp("AppointmentDate") in the While loop. For some reason it works fine in the If statement above it, but not in the While loop.
2
3178
by: fineman | last post by:
Hi all, I want to get a 64bit(8 bytes) Encrypt result use DES class in the VS2005. Though I encrypt data is 64bit(8 bytes), but DES return encrypt result that always is 128bit(16 bytes), I don't know why? How to get a 64bit(8 bytes) encrypt result using DES class in the VS2005?
4
5720
by: mike | last post by:
I have found that orig tested 64 bit on our 64bit windows 2003 server...about 1 year ago...and company decided to use sql 32 bit on the 64bit os my question and any information is very welcome is there any things in need to know about awe with memory above 4g ...whilst using 32 bit sql on a 64bit os i want to increase the memory on the server but i really don't know what im up against since this is
3
5801
by: =?Utf-8?B?SmFtZXMgV29uZw==?= | last post by:
Hi everybody, There is a fatal error while installing VS2008 SP1 on Vista 64bit Business edition. The last line of error log is Installation failed with error code: (0x80070643) I tried to uninstall Silverlight first (which is described in some blogs) and install .NET framework 3.5 SP1 manually but still failed. My VS2008 is Team Suit for developer and Vista SP1 is also installed.
0
8706
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8630
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9199
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9055
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8899
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7786
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6550
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4638
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
2364
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.