Windows Installer with the Driver Install Frameworks Tools (DIFXApp)

Posted October 25, 2004

Chat Date: October 12, 2004

Please note: Portions of this transcript have been edited for clarity

Introduction

Moderator: Andy (Microsoft)
Welcome to today's chat. Our topic is Using the Windows Installer with the Driver Install Frameworks Tools (DIFXApp). Questions, comments, and suggestions are welcome

Moderator: Andy (Microsoft)
Please submit questions to our experts in the lower room, and please preface your questions with Q: so they are easily picked out by our experts

Moderator: Andy (Microsoft)
You will be unable to type in the upper room as this is the Q&A forum from our experts

Moderator: Andy (Microsoft)
We will make an effort to answer as many questions as he can. There may be times when a question may be asked that we do not have an immediate answer for or cannot get to

Moderator: Andy (Microsoft)
To properly display URLs and allow private whispers from hosts and other guests, please take a moment to click on Chat Options located in the left column and uncheck “Do not display messages with URLs” and check "allow whispers".

Moderator: Andy (Microsoft)
I'll now have the hosts introduce themselves.

Host: Carolyn (Microsoft)
Hello! I'm Carolyn, a developer on the Windows Installer team. I specialize in patching and upgrades and overall architecture.

Host: Tyler (Microsoft)
I am is Tyler Robinson and I am the Program Manager for the Windows Installer. I look forward to our chat today.

Host: Erik (Microsoft)
My name is Erik, I'm work on DPInst and the DIFX framework in general.

Moderator: Andy (Microsoft)
And I'm Andy Quig, Communities Producer.

Host: Patty (Microsoft)
My name is Patty and I am a PM for the DIFXTools

Host: abhishek (Microsoft)
Hello. I am Abhishek. I am a developer at MS, working on the Driver Install Frameworks

Host: ferdous (Microsoft)
Ferdous Jewel: I am in the test team for DIFxApp.

Start of Chat

Host: Patty (Microsoft)
Q:
Can the same DIFX MSM files be used on 32-bit and 64-bit (AMD and IA64)?
A: No

Host: abhishek (Microsoft)
Q:
How do DIFX and the Filter Manager work together?
A: DIFXApp Version 1.1 has support for installing file system minifilters.
A: DIFXApp Version 1.1 should ship in a couple of weeks.

Host: Erik (Microsoft)
Q:
When I build an installation with DIFX and a driver package with a test certificate the installation does not work. SETUP.LOG tells me nothing. Is there some way to diagnose what went wrong?
A: If you are using DIFxApp, there should be a log entry in the MSI log (check it to see how you can get the log). The installation might be failing if the certificate has not been added to the local cert store.

Host: abhishek (Microsoft)
Q:
I have a root enumerated device that I would like to use DIFx to install, but the documentation I've seen says you can't do that.. is there any one suggested method for installing a root enumerated device?
A: You need to create a root enumerated devnode

Host: Erik (Microsoft)
Q:
Will version 1.1 include 64-bit merge modules?
A: Yes, it will include 64-bit merge modules for IA64. We plan to release AMD64 later.

Host: abhishek (Microsoft)
Q:
I have a root enumerated device that I would like to use DIFx to install, but the documentation I've seen says you can't do that.. is there any one suggested method for installing a root enumerated device?
A: You need to create a root enumerated devnode yourself using Setup API functions. And then use DIFx to install a Plug and Play driver on that devnode. The devcon sample in the DDK has some code that creates a root enumerated devnode.

Host: Patty (Microsoft)
Q:
What are the major changes between the expected 1.1 release and the version delivered for WinHEC (1.0)?
A: 64 Support and localization will be available.

Host: abhishek (Microsoft)
Q:
Can I create patches (.msp files) when using DIFXapp? How would the patched files make it into the System folder?
A: No, please use major upgrades to update your files.

Host: abhishek (Microsoft)
Q:
what limitations still exist with driver installations now that Difx is available to use with MSI?
A: That's a broad question. Do you have specific areas on which you have questions?

Host: Erik (Microsoft)
A:
yes, you still should be able to use Windows Update.

Host: Patty (Microsoft)
Q:
Do you have a more specific release time frame for 1.1? I was told 'a couple of weeks' a couple of weeks ago. Thanks!
A: We are completing our testing of the final package now and the release will be available before the 22nd.

Host: abhishek (Microsoft)
Q:
What will DifxApp do during an install if the SCM has that service marked for deletion from a previous uninstall? (uninstall, don't reboot, then install)
A: Unfortunately, DIFxApp will not work in the scenario you describe. The Service Control Manager in the OS will not allow the new service to be installed in this scenario

Host: abhishek (Microsoft)
Q:
If we have to use major upgrades to update the driver files, can we still update drivers through Windows Update?
A: If you are updating a driver as a major upgrade, you will be unable to put it up on Windows Update.

Host: abhishek (Microsoft)
A:
Reason is that applications cannot be updated through Windows Update

Host: Patty (Microsoft)
Q:
What would the problem be if the tools give an error stating the driver was not signed even though it is a signed driver from Microsoft???
A: To respond to this question I need more details about your environment. Could you send some specific details to difxbeta@microsoft.com?

Host: abhishek (Microsoft)
Q:
abhishek> not specifically. I was just curious if there were any obvious "holes" to be aware of
A: The whitepaper that ships with DIFxApp documents the capabilities. Please go through that for more info. If you have specific questions, there's an alias in the whitepaper you can send your questions to (difxbeta@microsoft.com) .

Host: Patty (Microsoft)
Q:
Any plans for supporting patching in the future?
A: Patching is not currently in plan.

Host: Erik (Microsoft)
Q:
Will DifxApp work when installing as a user with elevated privileges?
A: it should work in most cases, but it is not 100% tested.

Host: abhishek (Microsoft)
Q:
Are you working with InstallShield to provide an interface to any of the higher-level configurable properties of a device driver install that is normally developed with DIFxApp?
A: Yes, we are working with InstallShield. Please contact them for specific questions on their product

Host: Patty (Microsoft)
Q:
Yes we are currently using InstallShield X with the Device Driver Wizard and it complains that the driver is not signed.
A: Could you send a verbose SETUPAPI.LOG to difxbeta@microsoft.com. Could you also provide info on what you os is and verify the cert for the file is on your system.

Host: Erik (Microsoft)
Q:
abhishek> After jogging my memory <g> I presume with the release of 1.1 that PnP drivers still can’t be installed with Difxpp?
A: both version 1.0 and 1.1 support PnP drivers.

Host: abhishek (Microsoft)
Q:
Can a rollback occur after MsiCleanupOnSuccess?
A: No, by then it is too late.

Host: Erik (Microsoft)
Q:
Just to clarify - with the localization support built into v1.1 - will this be to localize the files in DIFX only or will it permit the correct selection of a driver to be installed based on locale as well?
A: only DIFX will be localized. There is not driver selection logic available in DIFX that would allow you to select a specific driver based on the locale.

Host: Patty (Microsoft)
Q:
I don't mean to be rude, but - if MS is going to require that drivers use DIFX - you should at least provide a well-defined means of updating and thoroughly test install/update/removal with all user privilege levels!
A: DIFX is not required. It is a tool to assist with driver installs.

Host: abhishek (Microsoft)
Q:
Since DIFxApp doesn't support patching, does that mean it also doesn't support repair?
A: DIFxApp supports repair.

Host: Patty (Microsoft)
Q:
"Future versions of this tool will support Plug and Play drivers, device filter drivers, and network drivers (NDIS, intermediate drivers, clients, services, and protocols.) "
A: Thank you for catching that. We will fix that text. Currently the only ones not supported are device filter drivers.

Host: Erik (Microsoft)
Q:
Do I have to have a signed driver to use DIFX?
A: you have to have a signed driver. It can be WHQL or Authenticode signed. The next whitepaper on version 1.1 has a great overview on all signing scenarios.

Host: Patty (Microsoft)
Q:
I was told at one of the conferences that DIFX would be the required way to install drivers beginning in the Longhorn timeframe.
A: If you use DIFX your driver installs will prepare you for Longhorn but using DIFX is not a requirement. There will be an acceptable ways to install signed drivers in Longhorn without using DIFX.

Host: abhishek (Microsoft)
Q:
Considering the major upgrade scenario - couldn't you just leave main component guid same in new MSI package and then DIFX will have two "applications" associated with the driver. That should prevent the driver removal during RemoveExistingProducts action and then won't new MSI package be able to install newer files? This would also mean there would only be one reboot for major upgrade? Am I missing something?
A: Could you please clarify the question a bit? What is the goal here? Are you asking if upgrades require more than one reboot?

Host: Patty (Microsoft)
Q:
What about un-signed drivers in Longhorn? Are they still installing?
A: As of this point all drivers will need to be signed in Longhorn. There will be multiple ways to sign drivers in the Longhorn time frame in addition to Authenticode and WHQL.

Host: Tyler (Microsoft)
Q:
Why has Microsoft created a technology external to MSI itself to install drivers? MSI supports installing services, why not just extend MSI?
A: Keeping DifXApp as an external technology to MSI allows the DifXApp custom actions to be revised independently from the Windows Installer and on a more frequent timeline. It also allows the Windows Installer team to focus on their core competency of Application Installation while allowing the Driver Install Frameworks team to extend the Windows Installer with their technology.

Host: Patty (Microsoft)
Q:
I would only point out that there is no built-in support for installing drivers using Windows Installer today other than DIFX. If you are going to advocate using something new please don't give it to use without thorough forethought and testing.
A: We hear you. We will be continuing to further test and refine the difxtools.

We are always looking for input on the tools. If you would like to provide input you can email us at difxbeta@microsoft.com

Host: abhishek (Microsoft)
Q:
Ellery : Abhishek_ms You end up with two reboots during a major upgrade because you need one reboot to uninstall the driver and one reboot to install the driver.Adrian : clarify for abhishek_ms: Well earlier in the chat someone was asking about uninstall (prevent reboot), update to new version, etc. It got me thinking to how you would accomplish this. I'm new to DIFX so just wondering if those thoughts were accurate.
A: Ah, I see what you are asking. Yes, if a driver cannot be removed without an uninstall, then you'll need to do two reboots.

Host: abhishek (Microsoft)
Q:
Adrian : Really I guess my question is can two different versions of the same product share same driver ID in DIFX. The docs seem to indicate that you can have two "applications" registered but is not clear on what that means.
A: You can do that. That's how the upgrade would work. The new version should have the same component ID as the old one.

Host: Carolyn (Microsoft)
Q:
can I use .msp patch to update my application if the driver version hasn't changed? Or does DIFX mean: Major Upgrade only?
A: Yes, as long as you are not updating the driver you should be able to use patches (.MSPs) to service your application.

Host: Erik (Microsoft)
Q:
Are there any API for querying DIFX reg/storage? How can you determine what product package is associated with a driver? Links or docs I missed somewhere?
A: there is no such API yet. There is no programmatic way to determine what product package is associated with a driver.

Host: Patty (Microsoft)
We are always looking for input on the tools. If you would like to provide input you can email us at difxbeta@microsoft.com

Host: Erik (Microsoft)
Q:
No API? OK. There's a good idea for the future for you.
A: We are working on an API, we will consider your suggestion. Why would you need this API? Any specific scenario?

Host: abhishek (Microsoft)
Q:
Why not just put RemoveExistingProducts at the end of the new version installation and then you would need only 1 reboot?
A: That would work. However, that needs to be done outside of DIFxApp.

Host: Patty (Microsoft)
Q:
Is Microsoft dogfooding DIFX? I wonder which products install drivers using DIFX
A: Yes there are a number of internal teams using the DifX tools. You will see Microsoft products shortly using these tools.

Moderator: Andy (Microsoft)
Thanks for joining us today and thanks for the questions. It's time for us to go now. Please see the chats schedule for upcoming topics. Thanks to the experts for chatting with us today!

Host: Tyler (Microsoft)
Please join us for next Month's chat on November 9 when the topic will be "Windows Installer Chat: Using WiX to create Windows Installer Packages." Please see https://msdn.microsoft.com/chats/ for all the details.

Host: Patty (Microsoft)
Thank you for participating in today's chat. If you have any additional questions or comments you can send them to DifXbeta@ microsoft.com. Look for the next version of the DIfXTools to be released shortly to: https://www.microsoft.com/whdc/driver/install/difxtools.mspx

Top of pageTop of page