DIF_FINISHINSTALL_ACTION
A DIF_FINISHINSTALL_ACTION request allows an installer to run finish-install actions in an interactive administrator context after all other device installation operations have completed.
When Sent
In Windows 8 and later versions, finish-install actions do not automatically run as part of device installation. To complete a device finish-install action, a user must click on “Finish installing device software” in the Action Center to complete the installation.
For more information, see Running Finish-Install Actions.
In Windows 7, the finish-install process runs only in the context of a user with administrator credentials at one of the following times:
- The next time that a user who has administrator credentials logs on while the device is attached.
- When the device is reattached.
- When the user selects Scan for hardware changes in Device Manager.
If a user is signed in without administrative privileges, Windows prompts the user for consent and credentials to run the finish-install actions in an administrator context.
Who Handles
Class co-installer |
Can handle |
Device co-installer |
Can handle |
Class installer |
Can handle |
Installer Input
DeviceInfoSet
A handle to the device information set that contains the device being installed.
DeviceInfoData
A pointer to an SP_DEVINFO_DATA structure that represents the device being installed.
Device Installation Parameters
There are device installation parameters (a SP_DEVINSTALL_PARAMS structure) associated with DeviceInfoData.
Class Installation Parameters
None
Installer Output
Device Installation Parameters
An installer sets the DI_NEEDREBOOT flag if a system restart is required to complete its finish-install actions.
Installer Return Value
An installer returns one of the values that are listed in the following table.
Return value | Meaning |
---|---|
ERROR_DI_DO_DEFAULT |
Class installer: The installer has no finish-install actions, has successfully completed the finish-install actions, or has determined that it cannot ever successfully complete its finish install actions. Device installation should perform the default processing for the request. Co-installer: Co-installers must not return this error code. |
NO_ERROR |
Class installer: A class installer should not return this error code. If a class installer returns this error code, device installation does not perform the default processing for the request. Co-installer: The installer has no finish-install actions, has successfully completed the finish-install actions, or has determined that it cannot ever successfully complete its finish install actions. |
Win32 error code |
Class installer or co-installer: The installer encountered an error while processing a finish-install action, and device installation should attempt to complete the finish-install actions the next time the device is enumerated in the context of an administrator. |
Default DIF Code Handler
Windows 7 uses SetupDiFinishInstallAction.
There is no default DIF Code Handler in Windows 8 and later versions, and SetupDiFinishInstallAction has been removed.
Comments
Because device installation cannot determine from an ERROR_DI_DO_DEFAULT return code or a NO_ERROR return code whether a finish-install action actually succeeded, the installer should notify the user of the status of a finish-installer action.
For more information about finish-install actions, see How Device Installation Processes Finish-Install Actions and Implementing Finish-Install Actions.
For general information about DIF codes, see Handling DIF Codes and Calling Default DIF Code Handlers.
Requirements
Version |
Supported in Windows Vista through Windows 7. |
Header |
Setupapi.h (include Setupapi.h) |