Does anyone know of a way to invoke the "Roll Back
Driver" functionality of Windows XP programmatically?

I've searched the MSDN docs and the web to no avail...

Anyhow, I'd like to invoke a rollback during an uninstall
of a "custom" driver, so that we can revert to the
default driver when uninstalling ours.

Thanks in advance,
Lee

RE: API to rollback driver? by a-kgarn

a-kgarn
Fri Jan 09 14:53:56 CST 2004

------=_NextPart_0001_D9938E3E
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Good question...

It's not documented anywhere, and I think you may be the first person to
ask. I'll investigate and get back to you.

------=_NextPart_0001_D9938E3E
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs20 Good question...
\par
\par It's not documented anywhere, and I think you may be the first person to ask. I'll investigate and get back to you.
\par
\par
\par }
------=_NextPart_0001_D9938E3E--


Re: API to rollback driver? by Lee

Lee
Tue Jan 13 15:18:20 CST 2004

Hi Keith,

Any update on this one?

Lee

"Keith S. Garner [Msft]" <a-kgarn@nospam.Micr0s0ft.com> wrote in message
news:We4d0Kv1DHA.2900@cpmsftngxa07.phx.gbl...
> Good question...
>
> It's not documented anywhere, and I think you may be the first person to
> ask. I'll investigate and get back to you.
>



Re: API to rollback driver? by a-kgarn

a-kgarn
Tue Jan 13 16:08:11 CST 2004

------=_NextPart_0001_1691E77E
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Lee,

I have been investigating this API function. As you allready know, it is
only used in the "Device Manager". However, you should be aware that there
are a few problems with this API:

1. Before calling this API, there is a long laundry list of processing that
must be performed by the calling program.
Validating Registry Entries
OS Version information
Matching Device ID's in specific registry Locations
Validation of the rolled back driver package
and more...

2. Currently this API will only work for Windows XP and Windows 2003, and
I've been told that it will change for Future versions of the Operating
System.

3. It will only work on those packages that have been saved to the registry
location:
SOFTWARE\Microsoft\Windows\CurrentVersion\Reinstall\...

4. I don't think there are any public API's that support the "Archaival" of
previous driver installation packages. Drivers that are updated through
Windows Update should have this done.

The real question is why do you want to have this done? I'm sure that your
current driver installation package doesnt have support for the archival of
existing driver packages during upgrade, so I'm not sure when someone would
call the API function RollbackDriver().

Anyways, I can release a development package to you that would allow you to
"Rollback Drivers", however, we feel that it would be too difficult to
release the details of the Specific API RollbackDriver() due to the
limitations listed above. If you wish to continue, the development package
would most likely come in the form of a *.lib or *.exe program. It would
take me another week or two to get it ready for you.

If you wish to continue, we should take this offline, and comminucate
directly.
My E-Mail alias is: a-kgarn@nospam.Micr0s0ft.com. (Please remove the
"NoSpam." and replace all Zero's with the letter o).

--------------------
Hi Keith,

Any update on this one?

Lee

"Keith S. Garner [Msft]" <a-kgarn@nospam.Micr0s0ft.com> wrote in message
news:We4d0Kv1DHA.2900@cpmsftngxa07.phx.gbl...
> Good question...
>
> It's not documented anywhere, and I think you may be the first person to
> ask. I'll investigate and get back to you.
------=_NextPart_0001_1691E77E
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}{\f1\fswiss\fprq2\fcharset0 System;}}
\viewkind4\uc1\pard\f0\fs20 Lee,
\par
\par I have been investigating this API function. As you allready know, it is only used in the "Device Manager". However, you should be aware that there are a few problems with this API:
\par
\par 1. Before calling this API, there is a long laundry list of processing that must be performed by the calling program.
\par Validating Registry Entries
\par OS Version information
\par Matching Device ID's in specific registry Locations
\par Validation of the rolled back driver package
\par and more...
\par
\par 2. Currently this API will only work for Windows XP and Windows 2003, and I've been told that it will change for Future versions of the Operating System.
\par
\par 3. It will only work on those packages that have been saved to the registry location:
\par SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Reinstall\\...
\par
\par 4. I don't think there are any public API's that support the "Archaival" of previous driver installation packages. Drivers that are updated through Windows Update should have this done.
\par
\par The real question is why do you want to have this done? I'm sure that your current driver installation package doesnt have support for the archival of existing driver packages during upgrade, so I'm not sure when someone would call the API function RollbackDriver().
\par
\par Anyways, I can release a development package to you that would allow you to "Rollback Drivers", however, we feel that it would be too difficult to release the details of the Specific API RollbackDriver() due to the limitations listed above. If you wish to continue, the development package would most likely come in the form of a *.lib or *.exe program. It would take me another week or two to get it ready for you.
\par
\par If you wish to continue, we should take this offline, and comminucate directly.
\par My E-Mail alias is: a-kgarn@nospam.Micr0s0ft.com. (Please remove the "NoSpam." and replace all Zero's with the letter o).
\par
\par \pard\li720\b\f1\fs20 --------------------
\par Hi Keith,
\par
\par Any update on this one?
\par
\par Lee
\par
\par "Keith S. Garner [Msft]" <a-kgarn@nospam.Micr0s0ft.com> wrote in message
\par news:We4d0Kv1DHA.2900@cpmsftngxa07.phx.gbl...
\par > Good question...
\par >
\par > It's not documented anywhere, and I think you may be the first person to
\par > ask. I'll investigate and get back to you.
\par \pard\b0\f0\fs20
\par }
------=_NextPart_0001_1691E77E--