Hi.

I've been working on adapting our current coninstaller to vista. The
major change was that i had to move all interactive user actions to the
DIF_FINISHINSTALL_ACTION instead of the
DIF_NEWDEVICEWIZARD_FINISHINSTALL to allow user interaction.

I've implemented the code as mentioned in
http://www.microsoft.com/whdc/driver/install/Finish_Install.mspx. It
worked well for a while on Vista installations, but for some reason,
any RC build after 5739 fails to call the coinstaller with the
DIF_FINISHINSTALL_ACTION code. I made sure that on the
DIF_NEWDEVICEWIZARD_FINISHINSTALL i set the
DI_FLAGSEX_FINISHINSTALL_ACTION flag correctly, and then call the
SetupDiSetDeviceInstallParams function with the new flags. this worked
a\for a while as i said, but it suddenly stopped.

this is the code in the coinstaller :
case DIF_NEWDEVICEWIZARD_FINISHINSTALL :
D0("DIF_NEWDEVICEWIZARD_FINISHINSTALL");

if(DevInfo == NULL) {
break;
}

if(SetupDiGetDeviceRegistryProperty(DevInfoSet, DevInfo,
SPDRP_DRIVER, &Prop_data_type, prop_buffer, 1024, &size))
{
if((Prop_data_type == REG_SZ) || (Prop_data_type == REG_MULTI_SZ))
D0("SetupDiGetDeviceRegistryProperty: buffer %s", prop_buffer);
else
{
ULONG* pLong = (ULONG*)prop_buffer;
}
}

res = Context->InstallResult;

// Get OS Version.
OSVERSIONINFO m_VerInfo;
m_VerInfo.dwOSVersionInfoSize =sizeof(OSVERSIONINFO);
GetVersionEx(&m_VerInfo);

if(m_VerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT &&
m_VerInfo.dwMajorVersion <= 5)
{
// XP or win2k
OnInstall(Opt, (char*)prop_buffer);
}
else
{
// higher than XP, probably Vista.
SP_DEVINSTALL_PARAMS DeviceInstallParams;
DeviceInstallParams.cbSize = sizeof(DeviceInstallParams);
if (SetupDiGetDeviceInstallParams(DevInfoSet,
DevInfo,
&DeviceInstallParams))
{
DeviceInstallParams.FlagsEx |= DI_FLAGSEX_FINISHINSTALL_ACTION;
SetupDiSetDeviceInstallParams(DevInfoSet,
DevInfo,
&DeviceInstallParams);
}
}
break;
}

I'd appreciate if anyone doing something similar can let me know what
i've done wrong, or if this is a bug in the last few vista builds.

Thanks.
Chen Ganir.

Re: Vista, DIF_FINISHINSTALL_ACTION and device co-installer by Eliyas

Eliyas
Mon Oct 16 12:07:57 CDT 2006

Could you please rebuild the coinstaller in the WDK and try again. It seems
that the value of DI_FLAGSEX_FINISHINSTALL_ACTION has changed because it
conflicted with an older deprecated flag value which was discovered to be
still in use by some applications.

-Eliyas



Re: Vista, DIF_FINISHINSTALL_ACTION and device co-installer by Chen

Chen
Mon Oct 16 12:31:52 CDT 2006

Hi Eliyas.

Thanks for your reply. I will try that as quickly as possible. What WDK
version do i need ? Can you tell me the new value for the
DI_FLAGSEX_FINISHINSTALL_ACTION? Is there any change for the DIF_ code
for finish install ?

thanks,
Chen Ganir.

On Oct 16, 7:07 pm, "Eliyas Yakub [MSFT]"
<eliy...@online.microsoft.com> wrote:
> Could you please rebuild the coinstaller in the WDK and try again. It seems
> that the value of DI_FLAGSEX_FINISHINSTALL_ACTION has changed because it
> conflicted with an older deprecated flag value which was discovered to be
> still in use by some applications.
>
> -Eliyas


Re: Vista, DIF_FINISHINSTALL_ACTION and device co-installer by Tim

Tim
Wed Oct 18 03:14:18 CDT 2006

Chen Ganir wrote:
> What WDK version do i need?

5600 is a good start.

Regards,
Tim.


Re: Vista, DIF_FINISHINSTALL_ACTION and device co-installer by Chen

Chen
Thu Oct 19 02:41:56 CDT 2006

Thank you all. This seems to solve the problem for the co-installer
now.

On Oct 18, 10:14 am, "Tim" <timothy.j.gr...@gmail.com> wrote:
> Chen Ganir wrote:
> > What WDK version do i need?5600 is a good start.
>
> Regards,
> Tim.