Programatically display Device Driver Update Dialog,...

Discussion in 'Windows Vista Drivers' started by Kerem Gümrükcü, Jul 31, 2008.

  1. Hi,

    i would like to display the "Update Device Driver" Dialog from
    my application for a special device i want to show this option for.
    I could not find a documented call for this, maybe i couldnt find
    it, but after tracking devmgr down with Process Monitor, i found
    this:

    24 newdev.dll pInstallDeviceInstanceUpdateDevice + 0x2b 0x58ad2526
    C:\WINDOWS\system32\newdev.dll
    25 newdev.dll InstallDeviceInstance + 0x2db 0x58ad2a31
    C:\WINDOWS\system32\newdev.dll
    26 newdev.dll InstallDevInstEx + 0x4c 0x58ad2c75
    C:\WINDOWS\system32\newdev.dll
    27 newdev.dll InstallDevInst + 0x18 0x58ad2c96
    C:\WINDOWS\system32\newdev.dll

    Am i right here, or is there a documented way of doing this,...

    Regards

    Kerem

    --
     
    Kerem Gümrükcü, Jul 31, 2008
    #1
    1. Advertisements

  2. Kerem Gümrükcü

    Tim Roberts Guest

    Do you mean UpdateDriverForPlugAndPlayDevice? That's documented.
     
    Tim Roberts, Aug 2, 2008
    #2
    1. Advertisements

  3. Kerem Gümrükcü, Aug 3, 2008
    #3
  4. Kerem Gümrükcü

    Tim Roberts Guest

    Tim Roberts, Aug 5, 2008
    #4
  5. Kerem Gümrükcü

    Ray Trent Guest

    I'm pretty sure he's asking how to bring up the user interface (not sure
    why).

    I'm guessing there isn't an easy way to do that, because it's
    functionality inside the MMC device manager snap in (devmgmt.msc). In
    order to show that UI, I'm guessing you'd have to write your own MMC
    host application, bypass the original UI, and instruct the snap-in
    (which is an ActiveX control, essentially) to display its interface.

    It looks like it's not a separate part of the OS that you can just "invoke".
     
    Ray Trent, Aug 5, 2008
    #5
  6. Hi Tim, Hi Robert,

    i investigatet a little on the Device Manager and i found out,
    that the call is InstallDevInst, calling the InstallDevInstEx. I am not
    really sure on its parameters except the first three, first is a window
    handle to the
    owner window, the second is a unicode string to the device instance string
    (as i expected)
    and the third is always "1", for whatever reason. The fourth parameter seems
    to be a out parameter to maybe something like "Reboot needed" and the fifth
    parameter is always NULL. Invoking the Function is straightforward and
    brings
    up the dialog on the selected device instance string. Please correct me if
    i am wrong,
    but it works for me on my XP machine,...

    It is the siganture for InstallDevInstEx(...) in newdev.dll
    Can someone please check if this works for him/her,...

    Regards

    Kerem


    --
     
    Kerem Gümrükcü, Aug 5, 2008
    #6
  7. An thats what someone posted to my question
    on "comp.os.ms-windows.programmer.win32":

    For InstallDevInst(), =>

    typedef BOOL (WINAPI *PINSTALLDEVINST)(HWND hWnd, LPWSTR wszDeviceId,
    BOOL bUpdate, DWORD* dwReboot);
    PINSTALLDEVINST InstallDevInst;

    I hope this helps someone who needs to do the same,...

    Regards

    Kerem

    --
     
    Kerem Gümrükcü, Aug 6, 2008
    #7
    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.