DllRegisterServer

Discussion in 'Windows Vista Security' started by news.microsoft.com, Apr 17, 2006.

  1. I have a problem registering a simple in-process COM object. The object
    registers OK on Windows XP Professional, but fails when an attempt is made
    to register it on Vista (CTP 5308). I ran the debugging tool "ntsd" and it
    produced the following output:

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

    CommandLine: regsvr32 regtest.dll
    Symbol search path is: *** Invalid ***
    ****************************************************************************
    * Symbol loading may be unreliable without a symbol search path. *
    * Use .symfix to have the debugger choose a symbol path. *
    * After setting your symbol path, use .reload to refresh symbol locations. *
    ****************************************************************************
    Executable search path is:
    ModLoad: 01000000 01007000 regsvr32.exe
    ModLoad: 77ef0000 77ff2000 ntdll.dll
    ModLoad: 77e20000 77ee8000 C:\Windows\system32\kernel32.dll
    ModLoad: 77b10000 77bb3000 C:\Windows\system32\msvcrt.dll
    ModLoad: 77d60000 77e15000 C:\Windows\system32\ADVAPI32.dll
    ModLoad: 77c10000 77cb8000 C:\Windows\system32\RPCRT4.dll
    ModLoad: 77cc0000 77d5b000 C:\Windows\system32\USER32.dll
    ModLoad: 77bc0000 77c09000 C:\Windows\system32\GDI32.dll
    ModLoad: 76d20000 76e55000 C:\Windows\system32\ole32.dll
    ModLoad: 718e0000 718fe000 C:\Windows\system32\ShimEng.dll
    ModLoad: 756c0000 756e9000 C:\Windows\system32\apphelp.dll
    ModLoad: 75c30000 75c4e000 C:\Windows\system32\IMM32.DLL
    ModLoad: 71650000 71659000 C:\Windows\system32\LPK.DLL
    ModLoad: 72a30000 72aaa000 C:\Windows\system32\USP10.dll
    ModLoad: 71950000 7198e000 C:\Windows\system32\uxtheme.dll
    ModLoad: 10000000 1003b000 U:\MyProjects\RegTest\Debug\regtest.dll
    ModLoad: 76c80000 76d10000 C:\Windows\system32\OLEAUT32.dll
    ModLoad: 76b80000 76c04000 C:\Windows\system32\CLBCatQ.DLL
    ModLoad: 77b00000 77b09000 C:\Windows\system32\VERSION.dll
    ModLoad: 76610000 76624000 C:\Windows\system32\atl.dll
    ModLoad: 73d90000 73e4c000 C:\Windows\system32\msctf.dll


    At this point I get a popup dialog containing the following:

    "DllRegisterServer in regtest.dll failed. Return code was: 0x80020009"

    Any clues as to where I go from here.

    Thank you,
    Rick
     
    news.microsoft.com, Apr 17, 2006
    #1
    1. Advertisements

  2. Type in at Run> regsvr.exe softpub.dll
    That might help - may need to restart.

    --
    Zack Whittaker
    » ZackNET Enterprises: www.zacknet.co.uk
    » MSBlog on ResDev: www.msblog.org
    » Vista Knowledge Base: www.vistabase.co.uk
    » This mailing is provided "as is" with no warranties, and confers no
    rights. All opinions expressed are those of myself unless stated so, and not
    of my employer, best friend, Ghandi, my mother or my cat. Glad we cleared
    that up!

    --: Original message follows :--
     
    Zack Whittaker, Apr 17, 2006
    #2
    1. Advertisements

  3. I was able to register the softpub.dll, but still got the error trying to
    register the original dll. This is crazy. One works the other doesn't.
     
    news.microsoft.com, Apr 18, 2006
    #3
  4. Try > regsvr.exe (but then type in the name of the dll - if that doesn't
    work, type in the full path of the DLL)

    ie: regsvr.exe faultyfile.dll
    or: regsvr.exe c:/windows/faultyfile.dll

    --
    Zack Whittaker
    » ZackNET Enterprises: www.zacknet.co.uk
    » MSBlog on ResDev: www.msblog.org
    » Vista Knowledge Base: www.vistabase.co.uk
    » This mailing is provided "as is" with no warranties, and confers no
    rights. All opinions expressed are those of myself unless stated so, and not
    of my employer, best friend, Ghandi, my mother or my cat. Glad we cleared
    that up!

    --: Original message follows :--
     
    Zack Whittaker, Apr 18, 2006
    #4
  5. Thanks. I understood that. My point was that one dll worked and the other
    did not. It is finding my dll. I'm assuming you mean "regsvr32.exe" since
    there is no "regsvr.exe". The registration process is failing due to an
    "E_ACCESSDENIED" returned when trying to update the registry. Does anyone
    know why I get access denied and not offered a chance to elevate the
    process? Are there special rules for installations on Vista that I've
    missed?

    Thanks,
    Rick
     
    news.microsoft.com, Apr 18, 2006
    #5
  6. Try, going to the Start orb, All Programs, Accessories, right click on
    Command Prompt and click on "Run as administrator". This may help your cause
    a bit :eek:)

    --
    Zack Whittaker
    » ZackNET Enterprises: www.zacknet.co.uk
    » MSBlog on ResDev: www.msblog.org
    » Vista Knowledge Base: www.vistabase.co.uk
    » This mailing is provided "as is" with no warranties, and confers no
    rights. All opinions expressed are those of myself unless stated so, and not
    of my employer, best friend, Ghandi, my mother or my cat. Glad we cleared
    that up!

    --: Original message follows :--
     
    Zack Whittaker, Apr 18, 2006
    #6
  7. news.microsoft.com

    Rick Lemons Guest

    Yes. That works fine. Thank you. As does turning off UAP. Now, does anyone
    know how to turn these things off programatically during the installation of
    our products? Is there a document on this some place?

    Thanks,
    Rick
     
    Rick Lemons, Apr 18, 2006
    #7
  8. news.microsoft.com

    Josh Guest

    You can manifest a file so that it can run elevated (prompts with the allow)
    or you can have an MSI regserv the file during install which you can also
    get Windows Vista to elevate.


    Josh
     
    Josh, Apr 19, 2006
    #8
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.