<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Shiv's random musings on computing</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/shiv/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/shiv/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:27:48 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Synaptics touchpad drivers and Windows Vista</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/synaptics-touchpad-drivers-and-windows-vista</link>
      <pubDate>Tue, 01 Aug 2006 00:41:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/08/01/synaptics-touchpad-drivers-and-windows-vista/</guid>
      <description><![CDATA[It seems a number of folks have been having problems finding touchpad drivers for Windows Vista. I...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>It seems a number of folks have been having problems finding touchpad drivers for Windows Vista. I recently started trying out Vista on a laptop at home which happens to have a Synaptics touchpad. Without the drivers and its enhancement programs, using the touchpad can be problematic. Eventually I found out that the latest Windows 2K/XP version of Synaptics' drivers from <A href="http://www.synaptics.com/support/drive.cfm">http://www.synaptics.com/support/drive.cfm</A> works fine in Vista (at least on builds 5456+). Some of their older versions like the one that came with my laptop doesn't work in Vista but the on their site does, so perhaps they fixed the problems in the latest releases. </FONT></P>
<P><FONT face=Georgia>The other major touchpad vendor is Alps Electric. Unfortunately I cannot seem to find any publicly available driver downloads on their site. Hopefully their XP drivers also work on Vista. Anyone knows?</FONT></P>
<P><FONT face=Georgia>P.S. On build 5472 there is a bug in the built-in unzip which might cause problems with zipped downloads. Use a third party unzip tool like WinZip etc.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>They're putting Li-Ion batteries in cars! Are they nuts?!</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/theyre-putting-li-ion-batteries-in-cars-are-they-nuts</link>
      <pubDate>Mon, 24 Jul 2006 01:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/07/24/theyre-putting-li-ion-batteries-in-cars-are-they-nuts/</guid>
      <description><![CDATA[At first I thought it was just the random person ... Now it seems there are lots of folks trying to...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>At first I thought it was just the random person ... Now it seems there are lots of <A href="http://articles.moneycentral.msn.com/SavingandDebt/SaveonaCar/The100mpgCarIsComing.aspx">folks trying to soup up</A> Hybrid electric cars with Lithium-Ion batteries! Are they nuts?! Li-Ion can be very very unstable and dangerous. Deform or puncture one and you'll have a very quick <A href="http://www.wired.com/news/technology/gallery/1,68631,1.html">flash of fire and explosion</A>. </FONT></P>
<P><FONT face=Georgia>You probably aren't going to throw around and mutilate your laptop so it's okay in there, but putting it in a car is just asking for trouble. Car's mean potential for accidents, which means potential for battery getting deformed, which means a big kabooom. And you can only wonder about adding gasoline to that situation. There is a reason no sane car manufacturer puts Li-Ion batteries in cars. Hybrid cars use NiMH batteries for a reason. So is the case with the more than a century old Lead Acid battery still used in normal cars. </FONT></P>
<P><FONT face=Georgia>Putting your own life in danger is one thing but driving around with what amounts to essentially a bomb and putting others' life in danger is totally irresponsible and should be against the law. Please do us all a favour and put a big sign saying "Li-Ion powered car" so I can stay far away from such things. Since most of these are being done on existing hybrid cars, I'm going to be wary of driving around one from now on. Especially Toyota Priuses.</FONT></P>
<P><FONT face=Georgia>Edit: There are safe versions of Li-Ion batteries in development but it doesn't look like its being used in some of these souped up hybrids being reported.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Get ready or get dragged kicking and screaming into the upcoming Non-Admin world</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/get-ready-or-get-dragged-kicking-and-screaming-into-the-upcoming-non-admin-world</link>
      <pubDate>Sat, 22 Jul 2006 23:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/07/22/get-ready-or-get-dragged-kicking-and-screaming-into-the-upcoming-non-admin-world/</guid>
      <description><![CDATA[So you have been spoiled by years of running as an Administrator on Windows and used to being able...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>So you have been spoiled by years of running as an Administrator on Windows and used to being able to do whatever you want? Well you'd better start getting used to <STRONG>not</STRONG> running as Admin all the time otherwise Windows Vista is going to drag you into the Non-Admin world.</FONT></P>
<P><FONT face=Georgia>In case you aren't aware, in Vista even running as Admin doesn't mean you have Admin privileges. You still run with normal user privileges and only when you invoke a program requiring an action with an Admin privilege does Vista pop up dialog confirming it and optionally asking for credentials. This is called User Account Control UAC. I was just kidding about the kicking and screaming part :)&nbsp;Vista does try and make this as painless and easy as possible.</FONT></P>
<P><FONT face=Georgia>But today in Windows XP you might need to run as Admin for various reasons which might be beyond your control. So how then can you prepare yourself and get a similar effect? Enter </FONT><A href="http://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure01182005.asp"><FONT face=Georgia>SetSAFER</FONT></A><FONT face=Georgia> (but don't download it yet from the link on that article, read on). This is an excellent tool that allows you to run individual applications as a normal user even if you are running as Admin. This way you can run your high risk and/or internet connected programs as a normal user and reduce your attack surface. I run IE, Office, Media Player, MSN Messenger etc through it without much issues. And on the odd chance that you do need to run them as Admin then a couple of clicks will allow you to do that easily (just don't forget to revert).</FONT></P>
<P><FONT face=Georgia>The version of SetSAFER in the original article was based on a Beta version of the .Net Framework 2.0 so it won't work for most people now. A while ago I did send mail to Michael Howard about what the problem was and he made an </FONT><A href="http://blogs.msdn.com/michael_howard/archive/2006/05/07/592136.aspx"><FONT face=Georgia>updated version of the binary available on his blog</FONT></A><FONT face=Georgia>. After installing SetSAFER from the original MSDN article, just update the SetSAFER.exe it installs by the one from Michael Howard's blog. Or you can just comment line 20 in Program.cs and rebuild it with VS 2005.<BR></FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>A good resource for all your scripting needs</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/a-good-resource-for-all-your-scripting-needs</link>
      <pubDate>Mon, 17 Jul 2006 01:37:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/07/17/a-good-resource-for-all-your-scripting-needs/</guid>
      <description><![CDATA[Ever notice how you sometimes write a small batch file to automate something and then it starts...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>Ever notice how you sometimes write a small batch file to automate something and then it starts growing and soon you start hitting the limits of what the batch file language can do and everything becomes an unmaintainable mess? </FONT></P>
<P><FONT face=Georgia>The natural solution then is to use Windows Scripting Host (WSH) and write a script in VBScript or JScript (or the many other languages it supports), since whipping out the VS IDE to code it in C# might be overkill for every little thing. The problem with WSH is that, as someone not very familiar with it, typically you don't know much about how to do particular things in WSH even if you pick up the basic VBScript or JScript language quickly. Even&nbsp;if you understand that most COM components can easily be accessed in WSH you still have the problem of knowing which COM components and/or interfaces to use for a particular task. For example there is a whole Scripting.FilesystemObject interface to help with common file operations and if you didn't know that then you'd be kind of lost.</FONT></P>
<P><FONT face=Georgia>So what do you do? Luckily there is an excellent resource which lists many scripting tasks neatly categorized with sample scripts. Its the </FONT><A href="http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx"><FONT face=Georgia>Script Repository</FONT></A><FONT face=Georgia> on the Windows Scripting site and all you need to do is look at some sample scripts for how to do a particular task. For example look under the Storage category for most file system tasks. One minor nit pick is that most of the examples are in VBScript. I personally prefer JScript, as I suspect most&nbsp;developers&nbsp;do,&nbsp;since its also a curly brace language&nbsp;like C/C++/C#. The scripting folks on the Windows Scripting site claim that most sysadmin type folks&nbsp;prefer VBScript hence the bias. But its not too difficult to convert the examples to JScript. If you are stuck then take a look at the </FONT><A href="http://www.microsoft.com/technet/scriptcenter/scripts/jscript/default.mspx"><FONT face=Georgia>JScript section of the additional language examples</FONT></A><FONT face=Georgia>&nbsp;for some JScript samples that will give you some idea about how the same thing looks in JScript.</FONT></P>
<P><FONT face=Georgia>So chart your escape from batch file land and Happy scripting ...</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Amazing how fast search engines have made one of my blog posts the top result for "slow notepad"</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/amazing-how-fast-search-engines-have-made-one-of-my-blog-posts-the-top-result-for-slow-notepad</link>
      <pubDate>Sun, 16 Jul 2006 02:18:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/07/16/amazing-how-fast-search-engines-have-made-one-of-my-blog-posts-the-top-result-for-slow-notepad/</guid>
      <description><![CDATA[It's amazing and funny how fast my post about the slow notepad issue has become the top result when...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>It's amazing and funny how fast </FONT><A href="http://blogs.msdn.com/shiv/archive/2005/09/12/464181.aspx"><FONT face=Georgia>my post about the slow notepad issue</FONT></A><FONT face=Georgia> has become the top result when you do a web search for <STRONG>slow notepad</STRONG> :) </FONT></P>
<P><A href="http://search.msn.com/results.aspx?q=slow+notepad&amp;Form=MSNH"><FONT face=Georgia>MSN Search</FONT></A><FONT face=Georgia>, </FONT><A href="http://search.yahoo.com/search?p=slow+notepad&amp;fr=FP-tab-web-t331&amp;toggle=1&amp;cop=&amp;ei=UTF-8"><FONT face=Georgia>Yahoo</FONT></A><FONT face=Georgia> and </FONT><A href="http://www.google.com/search?hl=en&amp;q=slow+notepad"><FONT face=Georgia>Google</FONT></A><FONT face=Georgia> all show that blog post as the top result (at least as of now). Ironically enough the day I got really frustrated with notepad taking too long open large log files I did search the web and nothing much came up so I went about investigating it, and now that post is the top result. Perhaps this means that no one else has written anything about it on the web. I suppose it's comforting to know that if you post something which is a reasonably accurate solution to some problem and enough people find it useful, it's going to show up in a web search pretty quickly.</FONT></P>
<P><FONT face=Georgia>Hmm ... I wonder if I should indulge in some narcissistic pleasure by telling people to reach my blog by doing a search for "slow notepad" :) ... But I wonder how long its going to be top result ...</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>An easy way of doing .Net debugging in production environments</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/an-easy-way-of-doing-net-debugging-in-production-environments</link>
      <pubDate>Thu, 13 Jul 2006 19:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/07/13/an-easy-way-of-doing-net-debugging-in-production-environments/</guid>
      <description><![CDATA[Say you want to debug your .Net application on some production enviroment, customer site/server and...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>Say you want to debug your .Net application on some production enviroment, customer site/server and remote debugging is not an option due to various network issues like firewall, latency, cordoned off network etc. Installing Visual Studio might just take too long even with a minimal install. So what can you do with the least effort? This is a problem I have faced many times as we deploy our in-development servers at our customer sites for testing etc and many a times you'd have to debug issues that show up only in such environments. You don't need something fancy but just enough to be able to load your </FONT><A href="http://msdn.microsoft.com/library/en-us/vsdebug/html/_core_the_..pdb_files.asp"><FONT face=Georgia>PDB</FONT></A><FONT face=Georgia>s and do source level debugging. </FONT></P>
<P><FONT face=Georgia>Well it turns out that there is an easy low-effort option available instead of installing VS. All you need to do is install the .Net Framework SDK and use the </FONT><A href="http://msdn2.microsoft.com/en-us/library/7zxbks7z.aspx"><FONT face=Georgia>CLR Debugger</FONT></A><FONT face=Georgia>. Installing the .Net SDK is&nbsp;easier since its faster, smaller and you can always download it off the web if you have connectivity. You will find it as DbgCLR.exe in the GuiDebug directory within the SDK install location. </FONT></P>
<P><FONT face=Georgia>A couple of tips. You can load PDB files without copying them into the directory from where the process started. Open the modules window (Debug-&gt;Window-&gt;Modules) and then right click and choose Load Symbols (you can do this only after you have attached the debugger to the process). Using the 2.0 SDK is better since the CLR Debugger in that easily allows you to set the path to look for sources etc and save it in a solution. The CLR Debugger will allow you to do full source level debugging with breakpoints, watches etc. It is a good subset of the VS Debugger.</FONT></P>
<P><FONT face=Georgia>The only downside is that you can use this only for managed (.Net) debugging and not native Win32 debugging.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>End of the Win9x era and what we should be thankful to Win9x for</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/end-of-the-win9x-era-and-what-we-should-be-thankful-to-win9x-for</link>
      <pubDate>Wed, 12 Jul 2006 02:43:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/07/12/end-of-the-win9x-era-and-what-we-should-be-thankful-to-win9x-for/</guid>
      <description><![CDATA[So it comes to pass. The beginning of the end of the Win9x era with the (official) end of support...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>So it comes to pass. The beginning of the end of the Win9x era with the (official) </FONT><A href="http://www.microsoft.com/windows/support/endofsupport.mspx"><FONT face=Georgia>end</FONT></A><FONT face=Georgia> of support for Windows 98 and ME. Its been a long time from the heady days of Windows 95 for the Win9x line and nowadays most people probably don't think much of it other than it being outdated etc. But we shouldn't forget that there are quite a few things we should be thankful to it for. Yes Win9x has its limitations and the Windows NT line (which includes Win2K/XP/2K3) has most certainly been a better OS for many uses for quite some time now. But without the Win9x the NT line wouldn't probably have taken of to the extent that it has nor as quickly as it has. </FONT></P>
<P><FONT face=Georgia>So what did Win9x help NT with? Here are some that I am aware of - </FONT></P>
<OL>
<LI><FONT face=Georgia><STRONG>Plug and Play.</STRONG> Plug and play was first implemented and popularized on the Win9x line starting with Windows 95 and didn't make it to the NT line till Windows 2000. Adding and configuring newer hardware is much easier thanks to Win9x. </FONT>
<LI><FONT face=Georgia><STRONG>Power Management.</STRONG> Proper Power management with ACPI started with Windows 98 and was introduced in NT with Win2K. I suppose using NT 4.0 on a laptop wouldn't have been easy. </FONT>
<LI><FONT face=Georgia><STRONG>Direct X.</STRONG> Direct X technology finally brought games out of the DOS era. For a long time after Windows 95 many games were still DOS based. Direct X was instrumental in getting game developers to start using Direct X and hence Windows. NT 4.0 had basic Direct X support and it wasn't till Windows 2000 (again) that NT line became a serious alternative for gaming. Without this a lot of the gaming enthusiast types wouldn't have moved to the NT line. This one alone is very important in making NT mainstream with consumers. </FONT>
<LI><FONT face=Georgia><STRONG>WDM driver model and better wider availability of device drivers for the NT line.</STRONG> Windows 98 introduced the WDM driver model which was common with Windows 2000 and hence improved driver support for Windows 2000 because a lot of new drivers for the much more widely deployed Windows 98 could be used in Windows 2000. </FONT>
<LI><FONT face=Georgia><STRONG>Popularized the Win32 programming model.</STRONG> A legion of programmers including yours truly got their first real exposure to Win32 (and Windows) programming with Win9x. This was mostly upwards compatible with NT so it improved the application support for NT immensly. In fact Win9x was the preferred development platform for games before Windows 2000. </FONT></LI></OL>
<P><FONT face=Georgia>BTW in case you are wondering I'm not in the Windows team and have never been. These are just my observations on how important Win9x has been for Windows and Microsoft. I still remember the day in college when we had the first Windows 95 install and there were a whole bunch of us excitedly huddled around it. Few people were able to run Windows NT those days with its 16 MB RAM requirement. Quite a few folks had NT on dual boot but we'd mostly boot into for stuff like SQL Server etc. </FONT></P>
<P><FONT face=Georgia>Win9x had its flaws but it served its purpose. Its time to bid it good bye now. So long Win9x ...</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>How to get in on the HDTV (r)evolution without breaking your bank</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/how-to-get-in-on-the-hdtv-revolution-without-breaking-your-bank</link>
      <pubDate>Sun, 22 Jan 2006 20:16:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/01/22/how-to-get-in-on-the-hdtv-revolution-without-breaking-your-bank/</guid>
      <description><![CDATA[Time for a post related to the division I work in (MSTV). I'm sure most of you would have heard...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>Time for a post related to the division I work in (MSTV). I'm sure most of you would have heard about HDTV and depending on your perspective its a revolution or an evolution. If you care about picture quality and you are one of those folks who would never be happy with a plain vanilla XGA resolution (on computers not TVs) then HDTV is revolutionary. You owe it to yourself to go an see an HDTV (showing HD content!) for some time if you haven't already, and see what a difference it can make. So lets say you are sold and you want one, but what to buy? Especially without spending exorbitantly.</FONT></P>
<P><FONT face=Georgia>You have quite a few options for buying an HDTV. Most people normally think about those huge big screens costing thousands when they think HDTV, but there are other options. Those big screens HDTVs are usually LCD, rear projection, DLP (Digital Light Projection) or plasma. Apart from costing quite a bit and probably being larger than what your TV size should be based on your room size, some of these solutions have other technical problems. Like for example LCDs have issues with viewing angle, color reproduction, fast motion scenes. Rear projection in general has lower quality compared to the others. DLP and Plasma are better and if your budget allows it you should consider them. </FONT></P>
<P><FONT face=Georgia>However these is one more alternative that is little talked about. These are Direct View HDTVs which are like your normal Cathode Ray Tube based TV but naturally with a higher HDTV resolution. Actually these are just really big high resolution computer monitors. Technically speaking these have the best color reproduction of all the HDTV technologies (decades of CRT technology evolution) and the picture quality is stunning. The downside is of course that they are bigger and much heavier but most American homes can accomodate these and you probably aren't going to move your TV that often (you should negotiate a free/low&nbsp;priced&nbsp;home delivery with that purchase). What's more these days some manufacturers have these Slim Line Direct View HDTVs which are only half as deep as the normal ones and these are quite reasonable. The big advantage is price. These are much much cheaper. You can get a good 30+ inch widescreen HDTV for around a thousand dollars or less depending on the exact specs. Even if you are tempted by the other cool new technology HDTVs keep in mind that these are maturing technologies that keep falling in price and becoming better. It might be better to take a taste of HDTV using the inexpensive direct view option and go for the others once things improve and the various competing technologies battle it out. </FONT></P>
<P><FONT face=Georgia>If you are thinking of HDTV then it behooves you to take a look at the Direct View option. It may not be as cool sounding as the other new technologies but it is quite a pragmatic approach. Naturally TV mfrs and retailers don't push them as much since it doesn't make them as much money but then you are smarter than them :)</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>As guilty as a million abandoned blogs...</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/as-guilty-as-a-million-abandoned-blogs</link>
      <pubDate>Sun, 22 Jan 2006 20:04:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2006/01/22/as-guilty-as-a-million-abandoned-blogs/</guid>
      <description><![CDATA[Hmm ... So I've fallen into the same trap as so many other bloggers who start something and then it...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>Hmm ... So I've fallen into the same trap as so many other bloggers who start something and then it peters out. Life happens in between ... But as a new year resolution I plan to start blogging a bit more consistently and frequently.&nbsp; But don't hold me to this in case life becomes too hectic :)</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Diagnosing device driver problems leading to system freezes</title>
      <link>https://docs.microsoft.com/archive/blogs/shiv/diagnosing-device-driver-problems-leading-to-system-freezes</link>
      <pubDate>Thu, 15 Sep 2005 19:09:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/shiv/2005/09/15/diagnosing-device-driver-problems-leading-to-system-freezes/</guid>
      <description><![CDATA[Recently I started having some device driver related problems on my laptop. Sometimes when I would...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Georgia>Recently I started having some device driver related problems on my laptop. Sometimes when I would leave my laptop in a standby power state and come back, the system would have strange problems after coming out of standby. IE would hang trying to load a page and then no matter what I did the IE process would not get killed. Opening more IE instances did the same thing. The system would not respond to a restart and the only way of recovering was to do a power reset (remove batteries). Now I knew that to get Windows XP into such a bad state it had to be some device driver related issues. At first I thought its probably some obscure bug related to power management and ignored it as I had important work to do. But then it happened again. Twice isn't a coincidence and I decided that I would investigate it the next time it happened.&nbsp;&nbsp;</FONT></P>
<P><FONT face=Georgia>So I installed the kernel debuggers by installing the <A href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx">Debugging Tools for Windows</A> package. As I was heading to the excellent <A href="http://www.sysinternals.com/">Sysinternals</A> site to download their live kernel debugging utility <A href="http://www.sysinternals.com/Utilities/LiveKd.html">LiveKD</A> to use with the kernel debuggers, what a coincidence that&nbsp;I came across a new <A href="http://www.sysinternals.com/blog/2005/08/unkillable-processes.html">blog post</A> by Mark Russinovich which talked about the very same issue of unkillable hung apps. Turns out it happens due to driver bugs&nbsp;causing hung IRPs. Aha so this is exactly what's going in my case and the device driver suspicion of mine turned out to be correct. The interesting thing is which device eventually truned out to be causing the problem as I thought that its likely to be the Wireless Adapter driver as that's certainly one driver being used by IE to download pages. This was disturbing as the Wireless Adapter on my laptop is made by a large company with a good reputation. It wasn't long before it happened again and I fired up windbg using LiveKD -</FONT></P>
<P><FONT face="Courier New" size=2>kd&gt; !process 91c<BR>Searching for Process with Cid == 91c<BR>PROCESS f93d27a0&nbsp; SessionId: 0&nbsp; Cid: 091c&nbsp;&nbsp;&nbsp; Peb: 7ffde000&nbsp; ParentCid: 008c<BR>&nbsp;&nbsp;&nbsp; DirBase: 038d2000&nbsp; ObjectTable: e2425ad8&nbsp; HandleCount: 356.<BR>&nbsp;&nbsp;&nbsp; Image: IEXPLORE.EXE<BR>&nbsp;&nbsp;&nbsp; VadRoot fb283f70 Vads 210 Clone 0 Private 2686. Modified 113. Locked 0.<BR>&nbsp;&nbsp;&nbsp; DeviceMap e243d2b0<BR>&nbsp;&nbsp;&nbsp; Token&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e12e0980<BR>&nbsp;&nbsp;&nbsp; ElapsedTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:04:12.463<BR>&nbsp;&nbsp;&nbsp; UserTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00.360<BR>&nbsp;&nbsp;&nbsp; KernelTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00.280<BR>&nbsp;&nbsp;&nbsp; QuotaPoolUsage[PagedPool]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 73840<BR>&nbsp;&nbsp;&nbsp; QuotaPoolUsage[NonPagedPool]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10160<BR>&nbsp;&nbsp;&nbsp; Working Set Sizes (now,min,max)&nbsp; (5922, 50, 345) (23688KB, 200KB, 1380KB)<BR>&nbsp;&nbsp;&nbsp; PeakWorkingSetSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5936<BR>&nbsp;&nbsp;&nbsp; VirtualSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 105 Mb<BR>&nbsp;&nbsp;&nbsp; PeakVirtualSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 106 Mb<BR>&nbsp;&nbsp;&nbsp; PageFaultCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6718<BR>&nbsp;&nbsp;&nbsp; MemoryPriority&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BACKGROUND<BR>&nbsp;&nbsp;&nbsp; BasePriority&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8<BR>&nbsp;&nbsp;&nbsp; CommitCharge&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2761</FONT></P>
<P><FONT face="Courier New" size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; THREAD f8e69400&nbsp; Cid 091c.06a4&nbsp; Teb: 7ffdd000 Win32Thread: e2ac6838 WAIT: (Executive) KernelMode Non-Alertable<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba902140&nbsp; Mutant - owning thread ffa3da70<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRP List:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT style="BACKGROUND-COLOR: #ffff00" color=#000000>f8de6008</FONT>: (0006,01b4) Flags: 00000070&nbsp; Mdl: 00000000<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Not impersonating<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DeviceMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e243d2b0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Owning Process&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f93d27a0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Image:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IEXPLORE.EXE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wait Start TickCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22193499&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ticks: 23399 (0:00:03:54.326)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context Switch Count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1964&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LargeStack<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00.0280<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KernelTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00.0290<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start Address kernel32!BaseProcessStartThunk (0x7c810867)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Win32 Start Address 0x00402451<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack Init ba97c000 Current ba97bbb0 Base ba97c000 Limit ba975000 Call 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Priority 10 BasePriority 8 PriorityDecrement 0 DecrementCount 16<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ChildEBP RetAddr&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bbc8 804dc0f7 nt!KiSwapContext+0x2e (FPO: [Uses EBP] [0,0,4])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bbd4 804dc143 nt!KiSwapThread+0x46 (FPO: [0,0,0])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bbfc ba8ff4c4 nt!KeWaitForSingleObject+0x1c2 (FPO: [Non-Fpo])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bc14 ba90234c wdmaud!WdmaGrabMutex+0x17 (FPO: [1,0,0])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bc34 804e37f7 wdmaud!SoundDispatch+0x66 (FPO: [Non-Fpo])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bc44 8056a101 nt!IopfCallDriver+0x31 (FPO: [0,0,0])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bc58 80579a8a nt!IopSynchronousServiceTail+0x60 (FPO: [Non-Fpo])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bd00 8057bfa5 nt!IopXxxControlFile+0x611 (FPO: [Non-Fpo])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bd34 804de7ec nt!NtDeviceIoControlFile+0x2a (FPO: [Non-Fpo])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ba97bd34 7c90eb94 nt!KiFastCallEntry+0xf8 (FPO: [0,0] TrapFrame @ ba97bd64)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0013b6e8 00000000 ntdll!KiFastSystemCallRet (FPO: [0,0,0])</FONT></P>
<P><FONT face=Georgia>Grabbing the IRP and looking it up shows &nbsp;-</FONT></P><FONT face=Georgia>
<P><BR><FONT face="Courier New" size=2>kd&gt; !irp f8de6008<BR>Irp is active with 2 stacks 2 is current (= 0xf8de609c)<BR>&nbsp;No Mdl System buffer = ff901d08 Thread f8e69400:&nbsp; Irp stack trace.&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; cmd&nbsp; flg cl Device&nbsp;&nbsp; File&nbsp;&nbsp;&nbsp;&nbsp; Completion-Context<BR>&nbsp;[&nbsp; 0, 0]&nbsp;&nbsp; 0&nbsp; 0 00000000 00000000 00000000-00000000&nbsp;&nbsp;&nbsp; </FONT></P>
<P><FONT face="Courier New" size=2>&nbsp;&nbsp;&nbsp;Args: 00000000 00000000 00000000 00000000<BR>&gt;[&nbsp; e, 0]&nbsp;&nbsp; 5&nbsp; 0 822d5b00 82207028 00000000-00000000&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT style="BACKGROUND-COLOR: #ffff00">\Driver\wdmaud</FONT><BR>&nbsp;&nbsp;&nbsp;Args: 00000064 00000086 001d8000 00000000</FONT></P>
<P>Now the wdmaud.sys driver is part of the Audio driver infrastructure. So it turns out the problem is with the audio device drivers not the Wireless Adaptor. I'm no device driver expert but I assumed that the audio drivers are also split into a miniport like model and the real culprit was probably the device specific driver and not the wdmaud.sys. So I went to my laptop manufacturer's site looking for updated audio drivers and installed them. So far&nbsp;I haven't had the problem come back again. No wonder that Windows Server 2003 disables audio hardware acceleration by default and doesn't include drivers for many audio devices. Basically&nbsp;operating system stability depends a lot on good device drivers&nbsp;and it's unfortunate that things like these happen.&nbsp;In Windows Vista drivers are being made more reliable by moving more things into common driver infrastructure and having the device manufaturer write very&nbsp;little device specific code. In fact some things like printer drivers are being moved into user mode.</FONT></P>]]></content:encoded>
    </item>
  </channel>
</rss>