Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

DriverPackageInstall in CA


5 replies to this topic

Sparksteam

Sparksteam
  • Full Members
  • 3 posts

Posted 11 October 2012 - 17:49

Hi,

I have a CA which calls DriverPackageInstall 3 times to preload 3 drivers. If I install the MSI by invoking msiexec from a command line, I've timed the 3 calls to take 5, 2, and 0 (< 1) seconds to complete.

However if I do the preload from an application which calls MsiInstallPackage, those same 3 calls take 16, 10, and 10 seconds to complete which is 5 times longer.

So the qestions are, why is this so, and what can I programmatically do to get the MsiInstallPackage times down to the msiexec times?

Thanks in advance for your response.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 11 October 2012 - 18:12

I'm not sure. But did you compare log files of the two installs (and the time stamps therein)?

Sparksteam

Sparksteam
  • Full Members
  • 3 posts

Posted 12 October 2012 - 21:41

Yes, Stefan, I did. That's where I got the numbers from. I've attached the logs just in case you'd like to see them. You can just do a diff on them.

Thanks

Attached Files



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 October 2012 - 16:12

Thanks for the logs, but I still have no idea what's causing the difference (assuming that you used the same fresh image in both cases, and on the same hardware)

Sparksteam

Sparksteam
  • Full Members
  • 3 posts

Posted 16 October 2012 - 02:52

Ok Stefan, looking at the SetupApi.dev.log, it seems to be related to signing and restore points.

Signed package:

sto: {DRIVERSTORE_IMPORT_NOTIFY_BEGIN} 16:41:01.764
ndv: System restore not required for signed driver package.
sto: {DRIVERSTORE_IMPORT_NOTIFY_BEGIN: exit(0x00000000)} 16:41:01.764

Test Signed Package:

sto: {DRIVERSTORE_IMPORT_NOTIFY_BEGIN} 16:22:29.028
inf: Opened INF: 'C:\Windows\System32\DriverStore\Temp\{2fe04e63-f8e2-1aaf-21cc-5265bcd62107}\hpvpl10.inf' ([strings])
sto: Create system restore point:
sto: Description = Device Driver Package Install: HP Printers
sto: Time = 17036ms
sto: Status = 0x00000000 (SUCCESS)
sto: {DRIVERSTORE_IMPORT_NOTIFY_BEGIN: exit(0x00000000)} 16:22:46.097

And running msiexec against the test signed package still claims to have created a restore point, but it took 0 seconds.

Does this all make sense and is this expected behavior? Is there a way to specify to MsiInstallPackage to never create a restore point?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 October 2012 - 17:51

I'm not sure why a signed driver won't create a restore point, but creating a restore point is a time consuming action.

According to help topic "System Restore Points and the Windows Installer" no restore points are created if the installer runs in silent mode.

You can disable restore points before starting your setup using the LimitSystemRestoreCheckpointing group policy or its equivalent regsitry entry.

To disable system restore from inside your setup, set the MSIFASTINSTALL property to 1. However that requires MSI 5.0, i.e. Windows 7 or above.