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.
DriverPackageInstall in CA
Started by
Sparksteam
, Oct 11 2012 17:49
5 replies to this topic
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.
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.
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)?
Stefan Krüger
InstallSite.org twitter facebook
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
Thanks
Attached Files
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)
Stefan Krüger
InstallSite.org twitter facebook
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?
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?
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.
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.
Stefan Krüger
InstallSite.org twitter facebook