<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Why does Windows keep showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx</link><description>Change the key.</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10276132</link><pubDate>Fri, 02 Mar 2012 02:14:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10276132</guid><dc:creator>Maurits [MSFT]</dc:creator><description>&lt;p&gt;&amp;gt; which is a problem because different users can be running different languages&lt;/p&gt;
&lt;p&gt;Why is that a problem? &amp;nbsp;Because when different users log in you get cache collisions?&lt;/p&gt;
&lt;p&gt;Overcomeable; include the language information in the cache key (or equivalently, have a cache for each language.)&lt;/p&gt;
&lt;div class="post"&gt;[&lt;i&gt;I&amp;#39;m still surprised you haven&amp;#39;t freaked out over Windows having to register a change notification on every single DLL that has evern been seen (and then at every boot, reverifying the cache in case the file was modified while offline). It seems that you&amp;#39;re over-engineering the problem. -Raymond&lt;/i&gt;]&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10276132" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273841</link><pubDate>Tue, 28 Feb 2012 11:17:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273841</guid><dc:creator>640k</dc:creator><description>&lt;p&gt;.lnk-files are broken by design.&lt;/p&gt;
&lt;p&gt;The fix is, as usual, to reinstall windows.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273841" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273666</link><pubDate>Mon, 27 Feb 2012 23:32:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273666</guid><dc:creator>Maurits [MSFT]</dc:creator><description>&lt;p&gt;Hmmm... let&amp;#39;s recap.&lt;/p&gt;
&lt;p&gt;Definition: a &amp;quot;perfect&amp;quot; caching system is one that creates a performance boost leaving no other evidence that it exists (no possibility of stale data being returned; no cache poisoning; no authorization bypasses, etc.)&lt;/p&gt;
&lt;p&gt;This blog post is a special case of the truism &amp;quot;some caching systems are imperfect.&amp;quot;&lt;/p&gt;
&lt;p&gt;In this case, it looks like rubbing out the &amp;quot;OMG there&amp;#39;s a cache here&amp;quot; evidence would either require reaching out to the .dll (to do a timestamp or hash comparison, losing a lot of the performance gain of the existing implementation) or pushing the problem down to the file system level (in which case it would only work on the new file system.)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273666" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273658</link><pubDate>Mon, 27 Feb 2012 23:14:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273658</guid><dc:creator>Maurits [MSFT]</dc:creator><description>&lt;p&gt;&amp;gt; What if the target DLL is written to while you are logged off? And wouldn&amp;#39;t this require the shell to monitor all DLLs which appear in the cache?&lt;/p&gt;
&lt;p&gt;So make that a requirement of the cache. &amp;nbsp;&amp;quot;The indirect string cache needs to be invalidated when the target .dll is written to, even if no user is logged on.&amp;quot; &amp;nbsp;This just implies that the shell is a bad place to keep the cache.&lt;/p&gt;
&lt;div class="post"&gt;[&lt;i&gt;This means that the cache must be system-wide, which is a problem because different users can be running different languages. (I guess you could monitor all satellite DLLs, but that quickly explodes into thousands of DLLs being monitored by the system.) Also, what if the file is modified while the operating system isn&amp;#39;t even running? (E.g., you boot into another partition and then modify the file, or the file is on a removable drive and is modified while inserted into some other machine.) -Raymond&lt;/i&gt;]&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273658" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273392</link><pubDate>Mon, 27 Feb 2012 12:08:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273392</guid><dc:creator>asdbsd</dc:creator><description>&lt;p&gt;[There are so many things wrong with this I don&amp;#39;t know where to begin. At least two security flaws, possibly three depending on how you count. -Raymond]&lt;/p&gt;
&lt;p&gt;I&amp;#39;d like to hear the explanation, if possible. The only flaws I can think of can be fixed with some more or less trivial workarounds.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273392" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273327</link><pubDate>Mon, 27 Feb 2012 08:36:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273327</guid><dc:creator>ender</dc:creator><description>&lt;p&gt;[Often enough that people ask this question because they updated the indirect string without also modifying the shortcut. -Raymond]&lt;/p&gt;
&lt;p&gt;I really should have known this would be the answer...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273327" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273308</link><pubDate>Mon, 27 Feb 2012 07:43:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273308</guid><dc:creator>dirk gently</dc:creator><description>&lt;p&gt;To be completely fair, Doctor Who *does* rule and Karen Gillan is pretty hot, so I&amp;#39;m with the developer this time.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273308" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273258</link><pubDate>Mon, 27 Feb 2012 03:13:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273258</guid><dc:creator>cheong00</dc:creator><description>&lt;p&gt;Emmm... I think if there&amp;#39;s a setting in the Windows installer service to force cache update, it should be okay.&lt;/p&gt;
&lt;p&gt;Something like &amp;quot;if the user&amp;#39;s last logon time to this computer is later than (the last update time of software that requires cache refresh), refresh the user&amp;#39;s cache after logon&amp;quot;.&lt;/p&gt;
&lt;p&gt;[And what if the other users&amp;#39; profiles are not accessible because they are on a roaming profile server you don&amp;#39;t have access to? (And in a corporate environment &amp;quot;all other users&amp;quot; can run in the tens of thousands.) -Raymond]&lt;/p&gt;
&lt;p&gt;Somehow I think if roaming profile users don&amp;#39;t get their cache update, their I.T. should understand, and most probably the users as well (known as common glitches... it&amp;#39;s quite common for applications that not designed for roaming profile behave in some &amp;quot;funny&amp;quot; way, and the users have grown accustomed to that, AmIRight?). *Put troll cap on*&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273258" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10273070</link><pubDate>Sun, 26 Feb 2012 05:34:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10273070</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;Are there any benefits to this feature that are worth all these problems? &amp;nbsp;Why was it implemented in the first place when it was obvious it would be broken for so many scenarios?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273070" width="1" height="1"&gt;</description></item><item><title>re: Why does Windows keeps showing the old indirect strings even after I update the binary?</title><link>http://blogs.msdn.com/b/oldnewthing/archive/2012/02/24/10271933.aspx#10272960</link><pubDate>Sat, 25 Feb 2012 19:13:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10272960</guid><dc:creator>Stefan Kanthak</dc:creator><description>&lt;p&gt;| This imaginary InvalidateIndirectStringCache wouldn&amp;#39;t solve the problem, since it couldn&amp;#39;t invalidate the caches of other users.&lt;/p&gt;
&lt;p&gt;| And what if the other users&amp;#39; profiles are not accessible because they are on a roaming profile server you don&amp;#39;t have access to?&lt;/p&gt;
&lt;p&gt;That&amp;#39;s the task of the part of the installer that is run from&lt;/p&gt;
&lt;p&gt;[HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\...]&lt;/p&gt;
&lt;p&gt;&amp;quot;StubPath&amp;quot;=...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10272960" width="1" height="1"&gt;</description></item></channel></rss>