<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Under The Hood - Matt Pietrek</title><subtitle type="html" /><id>http://blogs.msdn.com/matt_pietrek/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/matt_pietrek/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-07-16T13:55:00Z</updated><entry><title>Mr. Burgermaster passes on</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/10/20/mr-burgermaster-passes-on.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/10/20/mr-burgermaster-passes-on.aspx</id><published>2009-10-20T18:49:00Z</published><updated>2009-10-20T18:49:00Z</updated><content type="html">&lt;P&gt;This makes me sad: &lt;A href="http://www.techflash.com/seattle/2009/10/rip_mr_burgermaster.html"&gt;http://www.techflash.com/seattle/2009/10/rip_mr_burgermaster.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;My own personal connection to Burgermaster is manyfold. My first article for Microsoft Systems Journal (MSJ) was about the Burgermaster segment in Windows 3.X. When it came time to publish the article, they couldn't find a suitable graphic image from the article, so they went with the picture of the Burgermaster sign.&lt;/P&gt;
&lt;P&gt;Years later, when I interviewed at Microsoft, the lunch time slot came up and the interviewer asked where I wanted to go. The only place in town I knew the name of was Burgermaster, so off we went! I was subsequently told "Anybody who asks to go to Burgermaster for their interview lunch should just be hired on the spot."&lt;/P&gt;
&lt;P&gt;Fast forward another year when I asked my girlfriend to marry me. Where did we go when she said yes? You've got it, Burgermaster.&lt;/P&gt;
&lt;P&gt;We still enjoy Burgermaster frequently. Lately though, it's the Seattle location for their tasty breakfast.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910121" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Visual Studio 2010 Linker performance improvements</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/10/13/visual-studio-2010-linker-performance-improvements.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/10/13/visual-studio-2010-linker-performance-improvements.aspx</id><published>2009-10-13T16:37:00Z</published><updated>2009-10-13T16:37:00Z</updated><content type="html">&lt;P&gt;A long, long time ago I wrote quite a bit about PE files, OBJ files,&amp;nbsp;compilers, linkers, etc... Thus, it warms my heart to see the VC++ linker adding a dedicated thread for writing PDBs, and achieving a nice performance boost as a result.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2009/09/10/linker-throughput.aspx"&gt;http://blogs.msdn.com/vcblog/archive/2009/09/10/linker-throughput.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9906704" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Adventures in creating a Windows 7 HTPC – Part 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/08/25/adventures-in-creating-a-windows-7-htpc-part-2.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/08/25/adventures-in-creating-a-windows-7-htpc-part-2.aspx</id><published>2009-08-26T03:15:00Z</published><updated>2009-08-26T03:15:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In my &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/matt_pietrek/archive/2009/08/24/adventures-in-creating-a-windows-7-htpc-part-1.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;previous post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;, I described the requirements and purchasing decisions around a new Windows Media Center based PC, running Windows 7, and acting as a no-touch appliance. When I left off, I had purchased an HP s5100z PC and added an HD 4350 Video board. The box happily booted Vista Home Basic.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At this point it was still underneath my desk and using one of my existing desktop monitors, rather than connected to the TV just yet. Let’s pick up the thread and see what happened next.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The first step was to get Windows 7 &lt;B style="mso-bidi-font-weight: normal"&gt;Ultimate&lt;/B&gt; installed. Initially I tried to be clever and install just the Home Premium edition. After all, the goal is to use it as a DVR/Media center, and nothing in this scenario obviously calls out for the extra features and corresponding additional resource usage of Ultimate, right? Unfortunately, Home Premium doesn’t support the &lt;B style="mso-bidi-font-weight: normal"&gt;Remote Desktop Connection&lt;/B&gt; feature. For any non-trivial administrative work on the box, I plan to just remote desktop to it. That’s a requirement that I’d previously forgotten. Thus, Ultimate it is. Foiled!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Next is to install the &lt;B style="mso-bidi-font-weight: normal"&gt;baseline software&lt;/B&gt;. For me, that starts with antivirus/antimalware. Luckily, I had the &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/security_essentials/"&gt;&lt;FONT size=3 face=Calibri&gt;Microsoft Security Essentials Beta&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; available. Next up was the Windows Home Server Connector software. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;It gives me the ability to make a machine backup image at any point. I’m running the &lt;/FONT&gt;&lt;A href="http://blogs.technet.com/homeserver/archive/2009/07/17/windows-home-server-power-pack-3-beta-includes-enhancements-for-windows-7-based-computers.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;WHS Power Pack 3 beta&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; on my Home Server, which has extra Media Center awareness built in. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;I purposefully didn’t put any &lt;B style="mso-bidi-font-weight: normal"&gt;non-essential software&lt;/B&gt; such as Adobe Acrobat Reader on the box. I want to keep the Windows Update (and similar updaters from 3&lt;SUP&gt;rd&lt;/SUP&gt; parties) to a minimum. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Before going too far, I wanted to ensure basic DVR functionality worked. I love my &lt;B style="mso-bidi-font-weight: normal"&gt;HDHomerun tuner&lt;/B&gt;, as it has ClearQAM support, and lives on my network. Thus, it can be used by any PC in the house, as long as the HDHomerun tuner driver is installed. Downloading the latest August updates from Silicondust.com was a snap, and I fired up Media Center. It readily found the two HDHomerun tuners, scanned for channels, and found ~35 channels. My local Comcast actually has more than these channels, but they need to be added manually.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That’s a painful task that can wait for later. I briefly tried to cheat and copy my channel listings and recording schedule over from my previous Media Center box, but ran into some issues. There are some threads on &lt;/FONT&gt;&lt;A href="http://thegreenbutton.com/"&gt;&lt;FONT size=3 face=Calibri&gt;TheGreenButton.com&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; on this, but I wasn’t successful. Regardless, the key point though is that basic DVR functionality is in place.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;With most of the software that I needed installed, I then &lt;B style="mso-bidi-font-weight: normal"&gt;removed all non-essential Windows features&lt;/B&gt; using the Control Panel “Programs and Features” page. In particular, “Turn Windows features on or off.” I have no need for games, internet printing, and other assorted items on a Media Center box. So away it goes. Sure, I might not have accomplished that much by doing this, but it made me feel like I was configuring a machine for a very specific role, just like you’d do in Windows Server 2008 and R2.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In keeping with the dumb, simple appliance goal, I didn’t want Media Center running as me, with whatever administrative rights were given to my account when I initially set up the first logon account for the box. As such, I created a &lt;B style="mso-bidi-font-weight: normal"&gt;new account&lt;/B&gt;. Call it “MediaCenterLogon” for the purposes of this discussion. MediaCenterLogon has no admin privileges, and no password. We’ll see why shortly.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;At this point, the system is functional. However, there’s more tweaking to be done to make it seamless. For starters, when the box booted, it gave me a &lt;B style="mso-bidi-font-weight: normal"&gt;logon screen&lt;/B&gt;. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;That’s not good for the spouse satisfaction index. Plus, who wants to hunt down the keyboard every time the machine has to reboot for some reason? So how do you make the MediaCenterLogon account log on automatically? The trick is to use the &lt;B style="mso-bidi-font-weight: normal"&gt;netplwiz&lt;/B&gt; applet. (Just type the name into the Start Menu edit control.) Because MediaCenterLogon has no password, you can check the option to enable auto logon. See &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://htpc.pandagor.com/archives/14-Enabling-Auto-Logon....html"&gt;&lt;FONT size=3 face=Calibri&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; for details.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The box was starting to feel a little more comfortable. Up to this point, I hadn’t really mucked with Media Center, other than to make sure the tuners worked. I next installed the &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;A href="http://www.redmondpie.com/windows-7-media-center-and-windows-home-server-pp3/"&gt;Windows Media Center Connector&lt;/A&gt;&lt;/B&gt; software (conveniently located in the Start menu.)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Having done this, Media Center has a new top level menu item for “Windows Home Server”. From there, you can configure the TV archive, which I set up to automatically copy all recorded TV to the “Recorded TV” share on the Window Home Server box. The box comes with a 320GB hard drive, but that’s not gonna cut it. That’s why I have Windows Home Server!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Closing in on the end goal, I plugged in my old Microsoft &lt;B style="mso-bidi-font-weight: normal"&gt;eHome remote IR receiver &lt;/B&gt;from my previous media center box. Windows picked it up immediately and found the drivers automatically. My old &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/hardware/mouseandkeyboard/docs/RKWMCE_v1.html"&gt;&lt;FONT size=3 face=Calibri&gt;Media Center keyboard&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; worked perfectly the first time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(Well, after inserting a fresh set of batteries.). There was one comic moment when I was randomly pushing buttons and my wife’s laptop sprung to life. I had no idea that it had a Media Center capable IR receiver as well.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So that’s all for this time around. The box is up and (on the surface) running the way I’d like it to. However, there are still a few more hoops to make it truly the ideal experience. Join me next time when I talk about some of the &lt;B style="mso-bidi-font-weight: normal"&gt;unexpected behaviors&lt;/B&gt; and how I worked around them. Remember from part 1 where I talked about low power consumption and &lt;B style="mso-bidi-font-weight: normal"&gt;sleep&lt;/B&gt;? Oh yes, we’ll be talking about that, my very confused &lt;B style="mso-bidi-font-weight: normal"&gt;Xbox 360&lt;/B&gt;, and a few other things.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9884350" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Adventures in creating a Windows 7 HTPC – Part 1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/08/24/adventures-in-creating-a-windows-7-htpc-part-1.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/08/24/adventures-in-creating-a-windows-7-htpc-part-1.aspx</id><published>2009-08-25T04:36:00Z</published><updated>2009-08-25T04:36:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Recently I decided it was time to jump back whole hog into the Windows Media Center experience now that Win7 is baked. In these next few posts, I’ll explain the choices I made and the process I went through to get a first class experience.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I had last used the full blown Media Center experience (XP based) in my living room several years ago before moving. After the move I never got around to setting up the hardware, in particular because the machine was noisy and I had no easy location to hide/muffle it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;For awhile we lived with the Comcast DVR, which was manifestly unfulfilling. My first steps in breaking free was to run the beta Windows 7 Media Center on my development box, and watch TV via my Xbox 360 and its Media Center Extender. While this was OK for some scenarios, it didn’t cut the mustard in a couple of key ways. In particular, it didn’t easily let me play back ripped DVDs, with DVD menu content. In addition, it was a little pokey to boot every time you wanted to watch TV.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;My primary goal is to have a Media Center “Appliance” experience. It has to “just work” like the Comcast DVR did. With that in mind, I had several other more targeted requirements/goals:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Inexpensive. This is an appliance that needs to do one thing really well. That’s all.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Use Windows Home Server for storage. I’ve got acres of storage on the Home Server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Why not use it? Plus, that content can be accessed from any other PC in the house.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Quiet. It’s in the living room. I hate noise.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;HDMI output. My TV has it. Gotta keep up with the standards.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Powerful enough. I need to be able to record 2 shows while watching previously recorded content.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Energy efficient. I’ve become a fanatic about having devices sleep if they can.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Small. It needs to subtly reside next to my TV without being an imposing presence.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Play ripped DVDs. I don’t want to transcode, etc… and I want DVD menus.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Now, I’ve got somewhat of an advantage over somebody just starting out with HTPC, as I’ve got a lot of useful infrastructure already. In particular:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;HD Homerun ClearQAM network-based TV tuner&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Samsung DLP TV (1080i)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;A Windows Home Server box with lots of storage and a 1GB NIC.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;The aforementioned XBox360&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;CAT-6 throughout the house&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;An old XP Media Center IR receiver and Keyboard&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Harmony 880 Remote&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, what to get? I originally looked at netbooks and nettops. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;While there were some small laptops/netbooks with HDMI output, they either didn’t have the horsepower or were too expensive.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;There were some interesting nettops such as the Lenovo IdeaCentre Q100, but they either didn’t meet my specs or weren’t available yet.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In the end, I wound up settling on an HP Slimline s5100Z. It’s completely stock, except that I upgraded the CPU one notch to the AMD 5050e. With the EPP program (for MS employees), it came to less than $300. Sure, it comes with Vista Home Basic, but that is easily remedied soon enough.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The onboard video on the s5100z isn’t fast enough, and doesn’t support HDMI. That problem is easily solved by adding in an ATI-based HD 4350 video board. There are several different options for these cards. I ended up ordering one (an ASUS) for $30 from Newegg. It beats the $60 that HP wanted for it as an upgrade.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The HD 4350 line of cards is nice for several reasons:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l2 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Explicitly designed for HTPC use, and has accelerated support for H.264.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l2 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Can go in ½ height form factor, which the s5100z is.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l2 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Passively cooled in most incarnations&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoListParagraph&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Installing the HD 4350 was a breeze. Just removing a few screws to switch out the normal bracket for the included half-height bracket.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Altogether, even accounting for tax, shipping, etc… the whole thing (PC + video board) cost less than $400.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Next time, I’ll talk about the software side of the experience, going from the pre-installed Vista Home Basic screen to the fully tuned Win7 Media Center Appliance that it is today.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9883129" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Native VHD support in Windows 7 and WS08 R2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/05/14/native-vhd-support-in-windows-7-and-ws08-r2.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/05/14/native-vhd-support-in-windows-7-and-ws08-r2.aspx</id><published>2009-05-14T20:36:00Z</published><updated>2009-05-14T20:36:00Z</updated><content type="html">&lt;P&gt;This is truly cool stuff. VHDs are no longer "just" a virtualization file format. They're baked into the OS. Yes, you can boot an entire OS from a single file. You can create a VHD from the Disk Management Console without having Hyper-V installed.&lt;/P&gt;
&lt;P&gt;Devs will love it because it vastly simplifies testing on different OS configurations. Of course, you can do this with Hyper-V already with multiple VMs, but now you have the same goodness in a non-virtualized setup as well.&lt;/P&gt;
&lt;P&gt;IT folks will love it, as it dramatically simplifies data center management. Instead of tracking which OS and what patches a machine has, you can just have a set of reference images (VHDs). Drop&amp;nbsp;any number of VHDs&amp;nbsp;on the machine, tell it to boot one of them, and you know exactly what you're running. Want to change to a completely different setup? Just point at a different VHD file and reboot. No need for separate disk partitions, OS reinstalls, etc...&lt;/P&gt;
&lt;P&gt;Note that to boot VHDs natively without Hyper-V, the installed OS must be Windows 7 or Windows Server 2008 R2, but that's the expected price of progress. See the link for the exact details.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx"&gt;http://blogs.technet.com/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9616688" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>64 Logical Processor support in latest Hyper-V</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/05/13/64-logical-processor-support-in-latest-hyper-v.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/05/13/64-logical-processor-support-in-latest-hyper-v.aspx</id><published>2009-05-13T09:59:00Z</published><updated>2009-05-13T09:59:00Z</updated><content type="html">&lt;P&gt;I've been waiting for quite a long to post this information. Hyper-V now supports systems with up to 64 cores (we call them LPs). This is 4x the number supported in the original release just 9 months ago. &lt;/P&gt;
&lt;P&gt;The devs&amp;nbsp;on my team write the&amp;nbsp;code and&amp;nbsp;did the tuning to make this possible. It was our biggest stretch goal, and we nailed it. There was a substantial amount of work that went into it. Not the least was wrestling with&amp;nbsp;machines that support&amp;nbsp;that many cores. They live in racks, draw enormous armounts of power, require enormous amonts of&amp;nbsp;storage, can take hours to boot, and are very finicky about&amp;nbsp;any changes to configuration. They're also quite expensive, especially when considering thre crazy amounts of memory they need to do use work.&lt;/P&gt;
&lt;P&gt;It was an awesome sight, working with&amp;nbsp;a machine&amp;nbsp;running 384 VMs using 64 procersss&amp;nbsp;and 256 GB of RAM.&amp;nbsp;The 384&amp;nbsp;VM value&amp;nbsp;is a tested, supported limit, and&amp;nbsp;not an architectural limit, so&amp;nbsp;you can read between the lines there.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;He'res the&amp;nbsp;official link for more info:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.technet.com/virtualization/archive/2009/05/12/hyper-v-in-ws08-r2-release-candidate-bringing-more-to-the-table.aspx"&gt;http://blogs.technet.com/virtualization/archive/2009/05/12/hyper-v-in-ws08-r2-release-candidate-bringing-more-to-the-table.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9608938" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>New Hyper-V Release Candidate available</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/05/06/new-hyper-v-release-candidate-available.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/05/06/new-hyper-v-release-candidate-available.aspx</id><published>2009-05-06T23:59:00Z</published><updated>2009-05-06T23:59:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;If you're still using the original Hyper-V that runs as part of Windows Server 2008, this is a big deal.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;While Windows 7 is getting all the attention, the equivalent server version (Windows Server 2008 R2) is also available as a release candidate. This is how you'll get the latest and greatest Hyper-V.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;As the dev lead for perf/scale development on the hypervisor, I can assue you that the improvements in Hyper-V in this version are substantial. Among the announced things are support for Intel and AMD's virtualization aware CPUs, which provide substantial performance improvements.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Plus,&amp;nbsp;Hyper-V has a few more awesome capabilities up its sleeve. Stay tuned. :-)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Here's the official team blog link:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://blogs.technet.com/virtualization/archive/2009/05/06/microsoft-hyper-v-server-2008-r2-release-candidate-free-live-migration-ha-anyone.aspx"&gt;http://blogs.technet.com/virtualization/archive/2009/05/06/microsoft-hyper-v-server-2008-r2-release-candidate-free-live-migration-ha-anyone.aspx&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9592092" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Analyze Wait Chain - Why is my program stuck?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/04/17/analyze-wait-chain-why-is-my-program-stuck.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/04/17/analyze-wait-chain-why-is-my-program-stuck.aspx</id><published>2009-04-17T19:42:00Z</published><updated>2009-04-17T19:42:00Z</updated><content type="html">&lt;P&gt;My new favorite "Nerd" feature in Win7 involves the Resource Monitor (not surprisingly.) It's mesmerizing at times...&lt;/P&gt;
&lt;P&gt;Ever had a program get "stuck", where it seems to be quite obviously waiting for something, but you don't know what? Install programs that invoke child processes are notorious for this.&lt;/P&gt;
&lt;P&gt;In the Win7 Resource Monitor app, in the Overview or CPU tabs, you'll find the list of running processes. If a process is "stuck", it'll be highlighted with red text. This isn't the cool part though.&lt;/P&gt;
&lt;P&gt;You can right click on any process, and in the context menu, you'll see "Analyze Wait Chain...". Click that. In a nutshell, it lists the threads in a process that are blocking on a resource currently owned by another process. Better still, it tells you who the owning process/thread is! With that info, you can take corrective action, such as killing the child process that's not giving up the resource.&lt;/P&gt;
&lt;P&gt;You can find more about wait chains here: &lt;A href="http://msdn.microsoft.com/en-us/library/ms681622(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms681622(VS.85).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9554412" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>My favorite Windows 7 feature so far - Resource Monitor</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/01/16/my-favorite-windows-7-feature-so-far-resource-monitor.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/01/16/my-favorite-windows-7-feature-so-far-resource-monitor.aspx</id><published>2009-01-16T21:17:00Z</published><updated>2009-01-16T21:17:00Z</updated><content type="html">&lt;P&gt;While the Windows 7 UI is currently getting most of the "What's new?" attention, I'm a system guy at heart. I gravitate towards the tools and features that let me understand what's going on. Why does program 'X' take so long to load? Which of my dozens of services are sucking up the CPU? Which app is pounding on the network connection?&lt;/P&gt;
&lt;P&gt;With the Windows 7 Resource Monitor, it's trivial to get answers to these sorts of questions. If you're familiar with SysInternals tools like ProcMon and ProcExp (and if not, you should be!), you know that a wealth of knowledge is available. However, they're still pretty techie for most folks.&lt;/P&gt;
&lt;P&gt;In Windows Vista, the Resource Monitor made great strides over prior methods (e.g., perf counters and Task Manager). But the Windows 7&amp;nbsp;Resource Monitor... all I can say is "Wow!" Left to my own devices, I'd play with it for hours, trying little experiments and watching how they show up...&lt;/P&gt;
&lt;P&gt;At the topmost level, Resource Monitor has 4 tabs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Overview (summary of CPU, Memory, Disk, and Network)&lt;/LI&gt;
&lt;LI&gt;CPU&lt;/LI&gt;
&lt;LI&gt;Memory&lt;/LI&gt;
&lt;LI&gt;Disk&lt;/LI&gt;
&lt;LI&gt;Network&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The overview tab gives the "rolled" up view, similar to the Vista Resource Manager. The remaining tabs drill into more details in their corresponding area. For instance, in the CPU tab, you can see a CPU usage breakdown by service. Likewise, on the Disk tab, you can see a breakdown of disk activity by process. Plus, it's trivial using checkboxes to filter the views to specific processes.&lt;/P&gt;
&lt;P&gt;Resource Manager can be found under All Programs | Accessories | System Tools | Resource Monitor, as well as various other shortcuts.&lt;/P&gt;
&lt;P&gt;Highly recommended. Check it out!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9330143" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Hyper-V gets even better</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/01/09/hyper-v-gets-even-better.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/01/09/hyper-v-gets-even-better.aspx</id><published>2009-01-09T23:43:00Z</published><updated>2009-01-09T23:43:00Z</updated><content type="html">&lt;P&gt;While there's much press coverage about Windows 7 hitting beta, the availability of the&lt;A href="http://www.microsoft.com/Windowsserver2008/en/us/R2-Beta.aspx" mce_href="http://www.microsoft.com/Windowsserver2008/en/us/R2-Beta.aspx"&gt; Windows Server 2008 R2 beta&lt;/A&gt; is also big news for me personally.&lt;/P&gt;
&lt;P&gt;In particular this beta brings the first public look at the next iteration of Hyper-V. There's several very cool new features. Putting aside any marketing spin, two big features I'm glad to trumpet are:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Support for Hardware Address Translation&lt;/STRONG&gt;: Basically, this means letting the CPU handle address translations across VMs, rather than the Hyper-V code doing page table remapping in software. If you have the right CPU (lookup "EPT" for Intel, "NPT" for AMD), you should see some nice performance gains in most scenarios. Most "current" AMDs have NPT already.&amp;nbsp;Intel introduced EPT with the&amp;nbsp;i7 (Nehalem).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Live Migration&lt;/STRONG&gt;: The ability to move a VM running on one machine to another. The technology behind this is very impressive, and crazy complicated.&lt;/P&gt;
&lt;P&gt;Of course, there are many more features than this. More details can be found in this Powerpoint &lt;A href="http://download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/ENT-T587_WH08.pptx" mce_href="http://download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/ENT-T587_WH08.pptx"&gt;presentation&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9302639" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Fast Forward - Catching up on what I'm up to</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2009/01/09/fast-forward-catching-up-on-what-i-m-up-to.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2009/01/09/fast-forward-catching-up-on-what-i-m-up-to.aspx</id><published>2009-01-09T22:54:00Z</published><updated>2009-01-09T22:54:00Z</updated><content type="html">&lt;P&gt;I've been somewhat quiet in my blog lately, posting vary sparsely in 2008. Consider this the "reset", wherein I resolve to be more frequent in my updates.&lt;/P&gt;
&lt;P&gt;In a &lt;A href="http://blogs.msdn.com/matt_pietrek/archive/2006/11/06/a-new-role-for-me-at-microsoft.aspx" mce_href="http://blogs.msdn.com/matt_pietrek/archive/2006/11/06/a-new-role-for-me-at-microsoft.aspx"&gt;blog post&lt;/A&gt; over two year ago, I mentioned that I'd joined a new group at Microsoft, and was no longer working in Visual Studio. While I was necessarily vague at the point, I can now fill in some of the details, and tell you what's new.&lt;/P&gt;
&lt;P&gt;From early 2007 through August of 2008, I worked on Red Dog, now known to the world as &lt;A href="http://www.microsoft.com/azure/default.mspx" mce_href="http://www.microsoft.com/azure/default.mspx"&gt;Azure&lt;/A&gt;. It was a complete change of course for me, and I learned an amazing amount. Up to that point, my career had&amp;nbsp;focused on debugging, diagnostics, operating systems and other "low level" topics. I had no real experience with big distributed systems, data centers, "cloud computing" and the like.&lt;/P&gt;
&lt;P&gt;On the Red Dog project, I headed up a team that owned eventing, diagnostics and reporting for the Fabric Controller. We literally started at square zero, and tried to build a platform (Azure) that finally had tooling and diagnostics baked in from the beginning, rather than added on as an afterthought. Suffice it to say, the tools and approaches for distributed system are quite different from the low level SysInternals tools.&lt;/P&gt;
&lt;P&gt;I left Red Dog in August 2008 to join the Hyper-V team. While Red Dog uses a hypervisor, it's not the exact same code base as Hyper-V has today, although they do have a shared lineage. While on Red Dog, I had only minimal exposure to the hypervisor side of the project. Coming to the Hyper-V team was a big jump back to my "low level" roots.&lt;/P&gt;
&lt;P&gt;On the Hyper-V team, I lead a group of developers focused on the performance and scaling aspects of the Hyper-V hypervisor component. It's fun&amp;nbsp;to be down in the&amp;nbsp;bowels of operating systems and advanced CPU features. We tackle big issues like scaling Hyper-V to 32 processor cores and beyond. We deal with issues that most folks aren't even aware of, such as NUMA (Non-Uniform Memory Access), which makes a big deal in how you set up VMs and how you schedule processor cores to run in those VMs. Another area my team owns is address space management.&amp;nbsp;Imagine the complexity of any given OS's page table management. Now consider that the hypervisor has to multiplex every VMs page table view into the actual page tables used by the hardware. And be really fast about it, with minimal lock contention because big server machines have lots of cores. Fun stuff!&lt;/P&gt;
&lt;P&gt;So that's what I've been up to. I expect future posts will have more meaty technical content, but I felt the need to set the starting context appropriately.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9302569" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>The Case of XBox 360 not playing ripped DVDs from a WHS share</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2008/11/01/the-case-of-xbox-360-not-playing-ripped-dvds-from-a-whs-share.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2008/11/01/the-case-of-xbox-360-not-playing-ripped-dvds-from-a-whs-share.aspx</id><published>2008-11-02T01:51:00Z</published><updated>2008-11-02T01:51:00Z</updated><content type="html">&lt;P&gt;Stealing a page from Mark Russinovich's blog here.&lt;/P&gt;
&lt;P&gt;I've been going batty trying to play ripped DVDs residing on my WHS box through my XBox 360. I'd done all the due research, and had followed all the various directions around making symbolic links on my MCE box, installing transcoder.dll, etc... I got the DVD Library to show up on the 360, but whenever I tried to play the file, I&amp;nbsp;received the dreaded "video decoder error".&lt;/P&gt;
&lt;P&gt;Having some free time on a Saturday, I decided to not come for air till I had it working.&lt;/P&gt;
&lt;P&gt;My first step was to run Process Monitor on my local (Media Center) machine, and collect file activity during a request to play the DVD. I could see in the EHShell process where it successfully opened the .MPEG file on the local machine. However, the .MPEG file is just a link to the actual .VOB file on the WHS share. EHShell was failing to open the .VOB file on the server, even though I could see/copy the exact same file from a command prompt. The error for the CreateFile call was LOGON_FAILURE.&lt;/P&gt;
&lt;P&gt;At that point, I realized that EHShell was running as the MCX2 account, rather than as me. OK then!&amp;nbsp;that could explain why the file couldn't be accessed.&lt;/P&gt;
&lt;P&gt;My first attempt to fix this was to go to the WHS console, and add "Read" access for the "Guest" account. Sadly, no joy. Restarting everything still resulted in the same LOGON_FAILURE.&lt;/P&gt;
&lt;P&gt;Eventually, I poked around more in the WHS console, and noticed that the Guest account was disabled. That is, the "Shared Folders" view happily let me enable Guest access to folders, even though the Guest account wasn't active. Running through the "Enable Guest account" wizard got everything working, and&amp;nbsp;I startled my wife with the whoop of joy I let out.&lt;/P&gt;
&lt;P&gt;Maybe this should have been obvious to me sooner, but I can't recall seeing anything about this while hunting around, trying to figure out why it worked for everybody else, but not for me.&lt;/P&gt;
&lt;P&gt;So, to summarize, &lt;STRONG&gt;if you're trying to play ripped DVDs from a WHS share using your XBox360 as a Media Center Extender, try making sure that the Guest account is enabled on your WHS setup.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Disclaimer: I'm not a Media Center Extender expert. I posted this info here to hopefully spare at least one person the pain I went through. :-)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9028652" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>On the passing of Paul DiLascia</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2008/10/06/on-the-passing-of-paul-dilascia.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2008/10/06/on-the-passing-of-paul-dilascia.aspx</id><published>2008-10-06T19:28:00Z</published><updated>2008-10-06T19:28:00Z</updated><content type="html">&lt;FONT face=Calibri&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;I was quite sad to hear the news this morning (via email) that my friend, Paul DiLascia has passed away suddenly.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;I don't know all details yet. I've heard he passed away on Sept. 3rd, but the MSJ/MSDN network just heard of it in the last day or so. Some details are still unknown by me at this point in time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Paul preceded my book in the "Andrew Schulman Programming Series" with this book, Windows++, one of the first serious attempts at encapsulating the complexity of Windows 3.X programming with C++ classes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Subsequently, we both ended up writing columns for Microsoft System Journal (MSJ), which subsequently was renamed to MSDN magazine. Paul had the C++ column, while I did "Under The Hood".&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Paul and I corresponded frequently, mostly about crazy reader questions, but sometimes on technical issues. Since we lived only about 30 minutes apart, we'd often have MSJ subsidized "columnist lunches", where Paul, John Robbins, James Finnegan and myself could commiserate about the life of a technical column writer. A few great column ideas were born from these lunches, including my "&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/msj/0298/hood0298.aspx"&gt;&lt;FONT size=3&gt;Just enough Win32 Assembly Language to Get By&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;", which Paul inspired.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Paul was the longest continuously running columnist in the magazine's history. I was the second for a long while. Paul was perpetually 12 months ahead in his streak. When &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/msj/0998/hood0998.aspx"&gt;&lt;FONT size=3&gt;I got to 60+ months without missing a column&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;, Paul was still going strong at 72 months, and kept on going long after I left that race.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Paul was an amazing technical writer, and one with the gift of adding humor to what could be an otherwise dry topic. Eric Maffei once told me that without humor, MSJ would read like "Microsoft Pravda". Paul's contributions were a big part of why it wasn't.&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8978051" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Celebrity Restaurant Sightings</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2008/01/29/celebrity-restaurant-sightings.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2008/01/29/celebrity-restaurant-sightings.aspx</id><published>2008-01-29T20:38:00Z</published><updated>2008-01-29T20:38:00Z</updated><content type="html">&lt;P&gt;Last night my wife took me to the &lt;A class="" href="http://www.themetropolitangrill.com/" mce_href="http://www.themetropolitangrill.com/"&gt;Met&lt;/A&gt; for dinner. Midway through dinner I glanced over at the adjoining table, and was quite surprised to see &lt;A class="" href="http://www.microsoft.com/presspass/exec/jim/default.mspx" mce_href="http://www.microsoft.com/presspass/exec/jim/default.mspx"&gt;Jim Allchin&lt;/A&gt;, along with two other people.&lt;/P&gt;
&lt;P&gt;And earlier in the day, I actually sat at the same table with another celebrity: &lt;A class="" href="http://www.sellsbrothers.com/fun/centerfold/" mce_href="http://www.sellsbrothers.com/fun/centerfold/"&gt;Chris Sells&lt;/A&gt;, who was generously taking me out for lunch.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7309833" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry><entry><title>Windows Home Server has shipped!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/matt_pietrek/archive/2007/07/16/windows-home-server-has-shipped.aspx" /><id>http://blogs.msdn.com/matt_pietrek/archive/2007/07/16/windows-home-server-has-shipped.aspx</id><published>2007-07-16T20:55:00Z</published><updated>2007-07-16T20:55:00Z</updated><content type="html">&lt;P&gt;Likely you've already seen this elsewhere, but if not, WHS has RTMed!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.technet.com/homeserver/archive/2007/07/16/ship-it.aspx"&gt;http://blogs.technet.com/homeserver/archive/2007/07/16/ship-it.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Yes, it's been awhile since I posted. I've been running the "nearly" RTM bits for about a week now. Prior to this, my server was down for a month as I moved houses and am slowly rebuilding my computing infrastructure.&lt;/P&gt;
&lt;P&gt;In other news of my WHS box, I finally figured out why it was so damn noisy. Wasn't the power supply after all. The box has 4 fans, two of which are well hidden. Good old "Divide &amp;amp; Conquer" debugging helped me figured that out.&lt;/P&gt;
&lt;P&gt;Next stop: Frys to pick up some bigger, yet quieter case fans.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3899258" width="1" height="1"&gt;</content><author><name>Matt Pietrek</name><uri>http://blogs.msdn.com/members/Matt+Pietrek.aspx</uri></author></entry></feed>