From: Navneet on

Our MFC dialog based Installer application shows error loading
“newdev.dll” after Windows SP3 service pack is installed and also
after update with IE8 and Security updates for windows.

GetLastError() reveals error code 998 (ERROR_NOACCESS)

As suggested in the thread from Microsoft http://support.microsoft.com/kb/q196069/
I tried to get the stack trace to trace the issue using “user mode
dump process and WinDbg”.

Since its windows system DLL I have limited clue to the issue. Please
help.

Further info

1. I tried loading the “newdev.dll” from the small “console
application” and another small “MFC dialog based application”, on the
same machine, DLL could load successfully, but from the installer it
could not load. Is that some access permissions are required???
2. Our installer “GsiInst.exe” loads a DLL “GsiInst.dll” which further
loads the “newdev.dll”.
3. Before the security updates and IE8 update application worked fine.


Here is the dump…


WinDbg Dump

(fd4.ae4): Access violation - code c0000005 (first/second chance not
available)
eax=77606034 ebx=00000000 ecx=00000000 edx=7c90e514 esi=00000000
edi=78130000
eip=774fd070 esp=0012efa0 ebp=0012efa8 iopl=0 nv up ei pl zr
na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00010246
ole32!CoTaskMemAlloc+0x10:
774fd070 ff510c call dword ptr [ecx+0Ch] ds:
0023:0000000c=????????
*** ERROR: Symbol file could not be found. Defaulted to export
symbols for kernel32.dll -
*** WARNING: Unable to verify checksum for GsiInst.dll


Call Stack

ChildEBP RetAddr
0012efa8 781331a7 ole32!CoTaskMemAlloc+0x10
WARNING: Stack unwind information not available. Following frames may
be wrong.
0012efb8 7813de38 urlmon!DllCanUnloadNow+0x16c3
0012efd8 78131cbb urlmon!CoInternetParseIUri+0x2338
0012f038 7c90118a urlmon!DllCanUnloadNow+0x1d7
0012f058 7c91c4fa ntdll!LdrInitializeThunk+0x24
0012f160 7c916371 ntdll!LdrFindResourceDirectory_U+0x28d
0012f40c 7c9164d3 ntdll!RtlValidateUnicodeString+0x507
0012f6b4 7c801bbd ntdll!LdrLoadDll+0x110
0012f71c 7c801d72 kernel32!LoadLibraryExW+0xc8
0012f730 7c801da8 kernel32!LoadLibraryExA+0x1f
0012f74c 1001604d kernel32!LoadLibraryA+0x2d
0012f8b0 10015f0e GsiInst_10000000!CSetupApi::loadDll+0x7d [d:\project
\cvs\pcdrivers\windows\installer\gsiinst\setupapi.cpp @ 102]
0012f910 10015d42 GsiInst_10000000!CSetupApi::CSetupApi+0x11e [d:
\project\cvs\pcdrivers\windows\installer\gsiinst\setupapi.cpp @ 67]
0012f964 10015cfd GsiInst_10000000!$E41+0x22 [d:\project\cvs\pcdrivers
\windows\installer\gsiinst\setupapi.cpp @ 20]
0012f9b8 10025dc8 GsiInst_10000000!$E44+0x1d
0012f9c0 10025c13 GsiInst_10000000!_initterm+0x18 [crt0dat.c @ 525]
0012f9d0 1001f316 GsiInst_10000000!_cinit+0x33 [crt0dat.c @ 192]
0012f9d8 1001f402 GsiInst_10000000!_CRT_INIT+0xb6 [dllcrt0.c @ 136]
0012f9f0 7c90118a GsiInst_10000000!_DllMainCRTStartup+0x62 [dllcrt0.c
@ 231]
0012fa10 7c91c4fa ntdll!LdrInitializeThunk+0x24
From: Stefan Kuhr on
Hello Navneet,

On 1/7/2010 6:58 AM, Navneet wrote:
>
> Our MFC dialog based Installer application shows error loading
> �newdev.dll� after Windows SP3 service pack is installed and also
> after update with IE8 and Security updates for windows.
>
> GetLastError() reveals error code 998 (ERROR_NOACCESS)
>

Are you loading newdev.dll from a constructor of a global object in your
DLL? If so you violate the rule to not call LoadLibrary from DllMain.
Place the call to LoadLibrary in a separate initializer function that
you call after loading your DLL from your installer exe file and see if
this works.

--
S
From: Navneet on

Hello Stefan,

Thanks alot :) It works

regards
navneet


On Jan 7, 3:17 pm, Stefan Kuhr <kustt...(a)gmx.li> wrote:
> Hello Navneet,
>
> On 1/7/2010 6:58 AM, Navneet wrote:
>
>
>
> > Our MFC dialog based Installer application shows error loading
> > “newdev.dll” after Windows SP3 service pack is installed and also
> > after update with IE8 and Security updates for windows.
>
> > GetLastError() reveals error code 998 (ERROR_NOACCESS)
>
> Are you loading newdev.dll from a constructor of a global object in your
> DLL? If so you violate the rule to not call LoadLibrary from DllMain.
> Place the call to LoadLibrary in a separate initializer function that
> you call after loading your DLL from your installer exe file and see if
> this works.
>
> --
> S

 | 
Pages: 1
Prev: Pipes - Named or Anonymous
Next: IoCtl 0x564052?