EldoS | Feel safer!

Software components for data protection, secure storage and transfer

InstallIcon after CBFS5 Upgrade

Also by EldoS: CallbackProcess
A component to control process creation and termination in Windows and .NET applications.
#28266
Posted: 02/04/2014 18:41:51
by Henri Hein (Priority Standard support level)
Joined: 10/17/2013
Posts: 17

I'm having issues with our custom icon after we upgraded to CBFS5. The icon isn't getting modified. My sense is that it's the InstallIcon call, rather than SetIcon, that is an issue, but neither call throws an error. Here are some other observations:

1. It works on a clean install. I only see an issue on upgrades.
2. When I call InstallIcon, I don't get a new entry in HKEY_LOCAL_MACHINE\SOFTWARE\VsMntNtf\DriveIconMappings. I see an old entry. I do get a new ico temp file in %TEMP%, but not the corresponding drivemapping entry.
3. The above seemed like a permissions issue, but I have not had that issue before. For good measure, I added a call to IsUserAnAdmin to double-check elevated privileges and my process calling InstallIcon do indeed run elevated.
4. I also tried changing the icon label, thinking it could be an issue reusing the label between upgrades, but this made no difference. I still don't see a drive mapping entry for the new name.

Let me know if there is something you want me to try.

Thanks,
- Henri


Henri Hein
Software Developer, Bitcasa
#28267
Posted: 02/04/2014 18:53:07
by Henri Hein (Priority Standard support level)
Joined: 10/17/2013
Posts: 17

I poked around a bit more, and I did find the icon mapping entries here: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\cbfs5\Parameters\DriveIconMappings\

However, they don't disappear after restart. Could that be part of the issue?


Henri Hein
Software Developer, Bitcasa
#28268
Posted: 02/05/2014 02:35:03
by Vladimir Cherniga (EldoS Corp.)

The drive icon should be installed under the HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\services\cbfs5\Parameters\DriveIconMappings\ path. This entry should stay in a system until cbfs5 uninstalled. In addition, it should contain a temp path to an icon, created on InstallIcon() call. That temp icon file should survive the reboot, in order to install icon properly. The old mapping path under the HKEY_LOCAL_MACHINE\SOFTWARE\VsMntNtf\DriveIconMappings is not used in cbfs5
#28274
Posted: 02/05/2014 19:14:58
by Henri Hein (Priority Standard support level)
Joined: 10/17/2013
Posts: 17

I do see the entry in HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\cbfs5\Parameters\DriveIconMappings\0. I verified the icon is there by the IconPath and TmpIconPath. The file loads in paint and I doubt there is a format issue with it, because it is the same icon file we used with CBFS3.

The case muddled a little bit: once a system fails to show the icon, I cannot get it to show again, even if I uninstall, reboot and then install.

I make sure to restart Explorer and then reboot (for good measure) every time I see the problem.

I verified cbfsMntNtf5.dll gets loaded by Explorer. Screenshot of its properties attached.

Let me know what else I can try.




Henri Hein
Software Developer, Bitcasa
#28275
Posted: 02/06/2014 01:43:22
by Vladimir Cherniga (EldoS Corp.)

Quote
I do see the entry in HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\cbfs5\Parameters\DriveIconMappings\0.

It must be in CurrentControlSet. Not in ControlSet001 or others.
Check also the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers. It must contain two or more EldosIconOverlay-cbfs5 entries. For the 64 bit systems it is also a corresponding ..\Wow6432Node\.. registry entries must be active.
#28285
Posted: 02/06/2014 14:51:28
by Henri Hein (Priority Standard support level)
Joined: 10/17/2013
Posts: 17

CurrentControlSet just points to the control set key that is the current one. The entries appear under CurrentControlSet as well, as expected.

I do have the entries under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers. I see 1EldosIconOverlay (for CBFS3), 1EldosIconOverlay-cbfs5, and 2EldosIconOverlay-cbfs5.

I verified the CLSIDs appear under HKCR\CLSID.

FYI, this issue is holding up our release.


Henri Hein
Software Developer, Bitcasa
#28293
Posted: 02/07/2014 02:14:12
by Vladimir Cherniga (EldoS Corp.)

Quote
I do have the entries under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers. I see 1EldosIconOverlay (for CBFS3), 1EldosIconOverlay-cbfs5, and 2EldosIconOverlay-cbfs5.

You must also have a entry without numbers: EldosIconOverlay = s '{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}' It is initialize during dll installation process.

PS. If possible, attach a log file taken from ProcMon tool(sysinternals.com) during installation. Include regsvr32.exe process into the filter list.
#28336
Posted: 02/07/2014 14:48:56
by Henri Hein (Priority Standard support level)
Joined: 10/17/2013
Posts: 17

I do have that entry with that clsid. I also have EldosIconOverlay-cbfs4 and EldosIconOverlay-cbfs5, with different clsids.

I will attach procmon log in separate reply. My first post failed, because it was too large.


Henri Hein
Software Developer, Bitcasa
#28337
Posted: 02/07/2014 14:56:11
by Henri Hein (Priority Standard support level)
Joined: 10/17/2013
Posts: 17

Here is the procmon log:
https://skydrive.live.com/redir?resid=F0A07A5782B88BD!553&authkey=!APlInAs7Fw2myJs&ithint=file%2c.zip

This is for installing Bitcasa after an uninstall and a reboot. driverStatus.exe is our tool for installing the CBFS driver. The custom icon did not show up for the CBFS drive after this installation. It has shown before on this system, both with CBFS3 and with CBFS5.


Henri Hein
Software Developer, Bitcasa
#28338
Posted: 02/07/2014 15:11:22
by Henri Hein (Priority Standard support level)
Joined: 10/17/2013
Posts: 17

Addendum: the test above was run on a VM, but we have seen the issue on regular desktops as well.


Henri Hein
Software Developer, Bitcasa
Also by EldoS: CallbackProcess
A component to control process creation and termination in Windows and .NET applications.

Reply

Statistics

Topic viewed 4853 times

Number of guests: 1, registered members: 0, in total hidden: 0




|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!