<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Tech·Ed 2006</title>
        <link>http://geekswithblogs.net/sdorman/category/4830.aspx</link>
        <description>Topics related to sessions, labs, and other goings-on from Tech·Ed 2006.
</description>
        <language>en-US</language>
        <copyright>Scott Dorman</copyright>
        <managingEditor>sj_dorman@hotmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/us/</creativeCommons:license>
        <item>
            <title>Kernel Patch Protection aka &amp;quot;PatchGuard&amp;quot;</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/10/30/95540.aspx</link>
            <description>&lt;p&gt;If anyone has been following this technology closely, there have been a lot of complaints by some of the security vendors regarding PatchGuard. I first heard about this technology at TechEd 2006 in a lot of the Vista sessions.&lt;/p&gt; &lt;p&gt;The recent controversy caused me to do a little more research in to this technology and the issues surrounding it.&lt;/p&gt; &lt;p&gt;The official name for this technology is called Kernel Patch Protection (KPP) and it's purpose is to increase the security and stability of the Windows kernel. KPP was first supported in Windows Server 2003 SP1, Windows XP, and Windows XP Professional Edition. The important thing to understand about this support is that it is for &lt;em&gt;&lt;font color="#ff0000"&gt;x64 architectures only&lt;/font&gt;&lt;/em&gt;. &lt;/p&gt; &lt;p&gt;KPP is a direct outgrowth of both customer complaints regarding the security and stability of the Windows kernel and Microsoft's &lt;a title="Wired News: Bill Gates: Trustworthy Computing" href="http://www.wired.com/news/business/0,1367,49826,00.html" target="_blank"&gt;Trustworthy Computing&lt;/a&gt; initiative, announced in early 2002. &lt;/p&gt; &lt;p&gt;In order to understand the controversy surrounding KPP, it is important to understand what KPP actually is and what aspects of the Windows operating system it deals with.&lt;/p&gt; &lt;h3&gt;What is the Kernel?&lt;/h3&gt; &lt;p&gt;The kernel is the "heart" of the operating system and is one of the first pieces of code to load when the operating system starts. Everything in Windows (and almost any operating system, for that matter) runs on a layer that sits on top of the kernel. This makes the kernel the primary factor in the performance, reliability and security of the entire operating system.&lt;/p&gt; &lt;p&gt;Since all other programs and many portions of the operating system itself depend on the kernel, any problems in the kernel can make those programs crash or behave in unexpected ways. The "Blue Screen of Death" (BSoD) in Windows is the result of an error in the kernel or a kernel mode driver that is so severe that the system can't recover.&lt;/p&gt; &lt;h3&gt;What is Kernel Patching?&lt;/h3&gt; &lt;p&gt;According to Microsoft's &lt;a title="Kernel Patch Protection: Frequently Asked Questions" href="http://www.microsoft.com/whdc/driver/kernel/64bitpatch_FAQ.mspx" target="_blank"&gt;KPP FAQ&lt;/a&gt;, kernel patching (also known as kernel "hooking") is&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;the practice of using internal system calls and other unsupported mechanisms to modify or replace code or critical structures in the kernel of the Microsoft Windows operating system with unknown code or data. "Unknown code or data" is any code or data that is not provided by Microsoft as part of the Windows kernel.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;What exactly, does that mean? The most common scenario is for programs to patch the kernel by changing a function pointer in the system service table (SST). The SST is an array of function pointers to in-memory system services. For example, if the function pointer to the NtCreateProcess method is changed, anytime the service dispatch invokes NtCreateProcess, it is actually running the third-party code instead of the kernel code. While the third-party code might be attempting to provide a valid extension to the kernel functionality, it could also be malicious.&lt;/p&gt; &lt;p&gt;Even though almost all of the Windows kernels have allowed kernel patching, it has always been an officially unsupported activity.&lt;/p&gt; &lt;p&gt;Kernel patching breaks the integrity of the Windows kernel and can introduce problems in three critical areas:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Reliability&lt;/strong&gt;&lt;br&gt;Since patching replaces kernel code with third-party code, this code can be untested. There is no way for the kernel to assess the quality of intent of this new code. Beyond that, kernel code is very complex, so bugs of any sort can have a significant impact on system stability.&lt;br&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;br&gt;The overall performance of the operating system is largely determined by the performance of the kernel. Poorly designed third-party code can cause significant performance issues and can make performance unpredictable.&lt;br&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;br&gt;Since patching replaces known kernel code with potentially unknown third-party code, the intent of that third-party code is also unknown. This becomes a potential attack surface for malicious code.&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Why Kernel Patch Protection?&lt;/h3&gt; &lt;p&gt;As I mentioned earlier, the primary purpose of KPP is to protect the integrity of the kernel and improve the reliability, performance, and security of the Windows operating systems. This is becoming increasingly more important with the prevalence of malicious software that is implementing "root kits". A root kit is a specific type of malicious software (although it is usually included as&amp;nbsp;a part of&amp;nbsp;another,&amp;nbsp;larger, piece of&amp;nbsp;software) that uses a variety of techniques to gain access to a computer. Increasingly, root kits are becoming more sophisticated and are attacking the kernel itself. If the rootkit can gain access to the kernel, it can actually hide itself from the file system and even from any anti-malware tools. Root kits are typically used by malicious software, however, they have also been used by large legitimate businesses, including &lt;a title="Wired News: Real Story of the Rogue Rootkit" href="http://www.wired.com/news/privacy/0,1848,69601,00.html" target="_blank"&gt;Sony&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;While KPP is a good first step at preventing such attacks, it is not a "magic bullet". It does eliminate one way to attack the system...patching kernel images to manipulate kernel functionality. KPP takes the approach that there is no reliable way for the operating system to distinguish between "known good" and "known bad" components, so it prevents anything from patching the kernel. The only official way to disable KPP is by attaching a kernel debugger to the system.&lt;/p&gt; &lt;p&gt;KPP monitors certain key resources used by the kernel to determine if they have been modified. If the operating system detects that one of these resources has been modified it generates a "bug check", which is essentially a BSoD, and shuts down the system. Currently the following actions trigger this behavior:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Modifying system service tables.&lt;/li&gt; &lt;li&gt;Modifying the interpret descriptor table (IDT).&lt;/li&gt; &lt;li&gt;Modifying the global descriptor table (GDT).&lt;/li&gt; &lt;li&gt;Using kernel stacks that are not allocated by the kernel.&lt;/li&gt; &lt;li&gt;Patching any part of the kernel. This is currently detected only on AMD64-based systems.&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Why x64?&lt;/h3&gt; &lt;p&gt;At this point, you may begin to wonder why Microsoft chose to implement this on x64 based systems only. Microsoft is again responding to customer complaints in this decision. Implementing KPP will almost certainly impact comparability of many legitimate software, primarily security software such as anti-virus and anti-malware tools, which were built using unsupported kernel patching techniques. This would cause a huge impact on the consumer and also on Microsoft's partners. Since x64-based machines still make up the smaller install base (although they are gaining ground rapidly) and the majority of x64-based software has been rewritten to take advantage of the newer architecture, the impact is considered to be substantially smaller. &lt;/p&gt; &lt;h3&gt;So...why the controversy?&lt;/h3&gt; &lt;p&gt;Since KPP prevents an application or driver from modifying the kernel, it will, effectively, prevent that application or driver from running.&amp;nbsp;KPP in &lt;a title="Digital Signatures for Kernel Modules on x64-based Systems Running Windows Vista" href="http://www.microsoft.com/whdc/system/platform/64bit/kmsigning.mspx" target="_blank"&gt;Vista x64&lt;/a&gt; requires any application drivers be digitally signed, although there are some non-intuitive ways to turn that off. (Turning off signed drivers does prevent certain other aspects of Windows from operating, such as being able to view DRM protected media.) However, all that really means is anyone with a legitimately created company and about $500 per year to spend can get the required digital signature from &lt;a title="Code Signing Digital IDs - Features &amp;amp; Benefits" href="http://www.verisign.com/products-services/security-services/code-signing/digital-ids-code-signing/features-benefits.html" target="_blank"&gt;VeriSign&lt;/a&gt;. Unfortunately, even it is a reputable company, it still doesn't provide any guarantees as to the reliability, performance, and security of the kernel.&lt;/p&gt; &lt;p&gt;In order for software (or drivers) to work properly on an operating system that implements KPP, the software must use Microsoft-documented interfaces. If what you are trying to do doesn't have such an interface, then you cannot safely use that functionality. This is what has lead to the controversy. The security vendors are saying that the interfaces they require are not publicly documented by Microsoft (or not yet at any rate) but that Microsoft's own security offerings (Windows OneCare, Windows Defender, and&amp;nbsp;Windows Firewall) are able to work properly and use undocumented interfaces. The security vendors want to "level the playing field".&lt;/p&gt; &lt;p&gt;There are many arguments on both sides of the issue, but it seems that many of them are not thought out completely. Symantec and McAfee have argued that the legitimate security vendors be granted exceptions to KPP using some sort of signing process. (See the &lt;a title="Microsoft Stands Frim on PatchGuard - Technology News by TechWeb" href="http://www.techweb.com/showArticle.jhtml?articleID=193300261&amp;amp;cid=RSSfeed_TechWeb" target="_blank"&gt;TechWeb article&lt;/a&gt;.) However, this is fraught with potential problems. As I mentioned earlier, there is currently no reliable way to verify that code is actually from a "known good" source. The closest we can come to that is by digital signing, however, a piece of malicious code can simply include enough pieces from a legitimate "known good" source and hook into the exception.&lt;/p&gt; &lt;p&gt;So lets say, for arguments sake, that Microsoft does relent and is able to come up with some sort of exception mechanism that minimizes (or even removes) the chance of abuse. What happens next? Windows Vista, in particular, already includes an array of new features to provide security vendors ways to work within the&amp;nbsp;KPP guidelines. &lt;/p&gt; &lt;p&gt;The &lt;a title="Windows Filtering Platform" href="http://www.microsoft.com/whdc/device/network/WFP.mspx" target="_blank"&gt;Windows Filtering Platform&lt;/a&gt;&amp;nbsp;(WFP) is one such example. WFP&amp;nbsp;enables software to perform network related activities, such as packet inspection and other firewall type activities. In addition to WFP, Vista implements an entirely new TCP stack. This new stack has some fundamentally different behavior than the existing TCP stack on Windows. We also have network cards that implement hardware based stacks to perform what is called "chimney offload", which effectively bypasses large portions of the software based TCP stack. Hooking the network related kernel functions (as a lot of software based firewalls currently do), will miss all of the traffic on a chimney offload based network card. However, hooking in to WFP will catch that traffic.&lt;/p&gt; &lt;p&gt;Should Microsoft stop making technological innovations in the Windows kernel simply because there are a handful of partners and other ISVs that are complaining? The important thing to realize is that KPP is not new in Windows Vista. It has been around since Windows XP 64-bit edition was released. Why is it now that the security vendors are realizing that their products don't work properly on the x64-based operating systems? The main point Microsoft is trying to get across is that most of the functionality required doesn't have to be done in the kernel. Microsoft has been working for the last few years trying to assist their security partners in making their solutions compatible. If there is an interface that isn't documented, or functionality that a vendor believes can only be accomplished by patching the kernel, they can contact their Microsoft representative or email &lt;a href="mailto:msra@microsoft.com"&gt;msra@microsoft.com&lt;/a&gt; for help finding a documented alternative. According to the &lt;a title="Kernel Patch Protection: Frequently Asked Questions" href="http://www.microsoft.com/whdc/driver/kernel/64bitpatch_FAQ.mspx" target="_blank"&gt;KPP FAQ&lt;/a&gt;, "if no documented alternative exists...the functionality will not be supported on the relevant Windows operating system version(s) that include patch protection support."&lt;/p&gt; &lt;p&gt;I think the larger controversy is the fact that there are now documented ways to break KPP. This is where Microsoft and it's security partners and other security ISVs should be spending their time and energy. If we are going to have a reliable and secure kernel, we need to focus on locking down the kernel so that no one is able to breach it, including the hackers. This is an almost endless process, as the attackers generally have almost infinite amounts of time to bring their "products" to market and don't really have an quality issues to worry about. Even with the recent introduction by Intel and AMD of hardware based virtualation technology (which essentially creates a virtual&amp;nbsp;mini-core processor that can run a specially created operating system), there is still a &lt;a title="Introducing Blue Pill" href="http://theinvisiblethings.blogspot.com/2006/06/introducing-blue-pill.html" target="_blank"&gt;long way to go&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;What's next?&lt;/h3&gt; &lt;p&gt;While it is important to understand the goals of KPP and the potential avenues of attack against it, the most important thing for the security community to focus on is in making sure that the Windows kernel stays safe. The best way to do this is to keep shrinking the attack surface until it is almost non-existent. There will always be an attack surface, however, the smaller that surface becomes the easier it is to protect. Imagine guarding a vault. If there is only one way in and out, and that entrance is only 2-feet wide it is much more easily guarded than a vault that has 2 entrances, each of which are 30-feet wide.&lt;/p&gt; &lt;p&gt;However, as malware technology advances it is important for the security technology that tries to protect against it to advance as well. In fact, the security technology really needs to be ahead of the malware if it is to be successful. PatchGuard has already been &lt;a title="Bypassing PatchGuard on Windows x64" href="http://uninformed.org/index.cgi?v=3&amp;amp;a=3" target="_blank"&gt;hacked&lt;/a&gt;, some of the proposed Microsoft APIs for KPP &lt;a title="McAfee, Microsoft Trade Insults Over Vista - Technology News by TechWeb" href="http://www.techweb.com/showArticle.jhtml;jsessionid=CZB20KNRYZ1X0QSNDLRSKH0CJUNN2JVN?articleID=193401077" target="_blank"&gt;won't be available until sometime in 2008&lt;/a&gt;, and the security vendors do have legitimate reasons for needing to access certain portions of the kernel.&lt;/p&gt; &lt;p&gt;Host Intrusion Prevention Systems (HIPS), for instance, uses kernel&amp;nbsp;access to prevent certain types of attacks, such has buffer overflow attacks or process injection attacks, by watching for system functions being called from memory locations where they shouldn't be called. The &lt;a title="Code Red Worm" href="http://www.ciac.org/ciac/bulletins/l-117.shtml" target="_blank"&gt;Code Red Worm&lt;/a&gt;&amp;nbsp;would not have been detected if only file-based protection systems were in use.&lt;/p&gt; &lt;p&gt;The bottom line is that the malware vendors are unpredictable and not bound by any legal, moral, or ethical constraints. They are also not bound by customer reviews, deadlines, and code quality. The security vendors and Microsoft need to work together to ensure that the attack surface for the kernel and Windows itself is small and stays small. They can do this by:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Establishing a&amp;nbsp;more reliable way to authenticate security vendors and their products that will prevent "spoofing" by the malware vendors.&lt;/li&gt; &lt;li&gt;Minimizing the attack surface of the Windows Kernel.&lt;/li&gt; &lt;li&gt;Establishing documented APIs to interact with the kernel to perform security related functions, such as firewall activities.&lt;/li&gt; &lt;li&gt;Enforcing driver signatures...in other words, don't allow this mechanism to be turned off. At least don't allow it to be turned off for certain security critical drivers.&lt;/li&gt; &lt;li&gt;Enforcing security software digital signatures. If you want your security tool to run, it must be signed. Again, don't allow this mechanism to be turned off.&lt;/li&gt; &lt;li&gt;Establishing a more secure way for the security products to hook in to the kernel.&lt;/li&gt; &lt;li&gt;Restricting products to patching only specific areas of the kernel. Currently, it is possible to &lt;a title="What Were They Thinking?" href="http://uninformed.org/index.cgi?v=4&amp;amp;a=4" target="_blank"&gt;patch almost any portion of the kernel&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Enforcing Windows certification testing for any security products.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=95540"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=95540" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/95540.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/10/30/95540.aspx</guid>
            <pubDate>Mon, 30 Oct 2006 21:06:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/95540.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/10/30/95540.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/95540.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/95540.aspx</trackback:ping>
        </item>
        <item>
            <title>Tech·Ed 2006 Webcast series, update</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/07/13/85031.aspx</link>
            <description>&lt;P&gt;For those of you who attended Tech&amp;#183;Ed 2006, the recorded sessions will be available on CommNet for on-demand viewing by July 21st. The DVD should be received by August 15 and shipped to the address you provided during registration. The DVD's will contain the PowerPoint presentations and recorded sessions.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=85031"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=85031" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/85031.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/07/13/85031.aspx</guid>
            <pubDate>Thu, 13 Jul 2006 10:11:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/85031.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/07/13/85031.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/85031.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/85031.aspx</trackback:ping>
        </item>
        <item>
            <title>BitLocker™ - The dirty details</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/07/04/84045.aspx</link>
            <description>&lt;P&gt;One of the new security features coming in Windows Vista and Longhorn is&amp;nbsp;the new &lt;SPAN&gt;BitLocker&amp;#8482; Drive Encryption technology. &lt;SPAN&gt;BitLocker&amp;#8482; is designed to help prevent information loss, whether it is by theft or accidental. Information loss is costly to business on several levels, and t&lt;SPAN&gt;&lt;SPAN&gt;he U.S. Department of Justice estimates that intellectual property theft cost enterprises $250 billion in 2004.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;IMG src="/images/geekswithblogs_net/sdorman/5006/r_SEC32520060613_190427-2.jpg"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;BitLocker&amp;#8482; Drive Encryption gives you improved data protection on your notebooks, desktops, and servers by providing a transparent user experience that requires little to no interaction on a protected system. BitLocker also prevents the use of another operating system or hacking tool to break file and system protections by preventing the offline viewing of user data and OS files through enhanced data protection and boot validation using TPM v1.2.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;For those of you who may not know, TPM stands for Trusted Platform Module. So what's that? TPM is a piece of hardware that is part of the motherboard that:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Performs cryptographic functions&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;RSA, SHA-1, RNG&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Meets encryption export requirements&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Can create, store, and manage keys&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Provides a unique Endorsement Key (EK)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Provides a unique Storage Root Key (SRK)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Performs digital signature operations&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Holds platform measurements (hashes)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Anchors a chain of trust for keys and credentials&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Protects itself against attacks&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;So now that you know what a TPM is, why should you use one? A TPM is a hardware implementation of a Root-of-Trust, which can be certified to be tamper resistant. When combined with software, it can protect root secrets better than software alone. A TPM can ensure that keys and secrets are only available for use when the environment is appropriate.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;The important thing to know about BitLocker is that it will only encrypt the Windows partition. You also won't be able to dual-boot another operating system on the same partition, different partitions are fine. Any attempts to modify the protected Windows partition will render it unbootable.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;IMG src="/images/geekswithblogs_net/sdorman/5006/r_SEC32520060613_190427-1.jpg"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;To completely protect all of the data on the computer, you will need to use a combination of BitLocker on the Windows partition and Encrypted File System (EFS) on the other partitions. When properly configured, EFS is computationally infeasible to crack.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Even with all of the new security that is provided by BitLocker, it can't stop everything. Some of the areas that BitLocker is helpless to defend against are:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hardware debuggers &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Online attacks&amp;#8212;BitLocker is concerned only with the &lt;/SPAN&gt;&lt;SPAN&gt;system&amp;#8217;s startup process &lt;/SPAN&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;Post logon attacks &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;Sabotage by administrators &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;Poor security maintenance &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;BIOS reflashing &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Protection against this can be enabled if you wish&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;STRONG&gt;Additional Resources&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;A href="http://www.microsoft.com/whdc/system/platform/hwsecurity/BitLockerReq.mspx"&gt;Windows Vista BitLocker Client Platform Requirements&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;A href="http://www.trustedcomputinggroup.org/"&gt;Trusted Computing Group (TCG) Website&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;A href="http://blogs.msdn.com/si_team/default.aspx"&gt;BitLocker&amp;#8482; Blog&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;A href="mailto:bdeinfo@microsoft.com"&gt;BitLocker&amp;#8482; Questions or Ideas&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=84045"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=84045" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/84045.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/07/04/84045.aspx</guid>
            <pubDate>Tue, 04 Jul 2006 13:21:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/84045.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/07/04/84045.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/84045.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/84045.aspx</trackback:ping>
        </item>
        <item>
            <title>Tech·Ed 2006 Webcast series</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/06/28/83486.aspx</link>
            <description>&lt;P&gt;For those of you who didn't get to go to Tech&amp;#183;Ed this year, Microsoft has made some of the webcasts and breakout sessions available free. It isn't everything that was presented at the conference, but it's what Microsoft considers the best (or most popular) topics. Unfortunately, for those of who did attend, the presentations from all of the breakouts aren't available yet on CommNet...still 3 weeks away.&lt;/P&gt;
&lt;P&gt;Link &lt;A href="http://www.msteched.com/content/webcasts.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=83486"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=83486" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/83486.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/06/28/83486.aspx</guid>
            <pubDate>Wed, 28 Jun 2006 21:05:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/83486.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/06/28/83486.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/83486.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/83486.aspx</trackback:ping>
        </item>
        <item>
            <title>.NET 3.0 - The next revolution</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/06/18/82266.aspx</link>
            <description>&lt;P&gt;Since last years TechEd everyone has been hearing about .NET 3.0 and the cool features of LINQ, lambda expressions, and all of the other cool new language features. I don't know about you, but I was definitely looking forward to them. We were also hearing about WinFx and &amp;#8220;Avalon&amp;#8220; and &amp;#8220;Indigo&amp;#8220;, InfoCard, Windows Workflow Foundation (WWF) and the other new technologies that looked like they would only be part of Vista.&lt;/P&gt;
&lt;P&gt;Fast-forward a year to this years TechEd and we're still hearing about .NET 3.0, Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF), WWF, and CardSpace (InfoCard). Most of us by now understand that WPF is &amp;#8220;Avalon&amp;#8220; and WCF is &amp;#8220;Indigo&amp;#8220;. However, the big change is that .NET 3.0 isn't what it used to be.&lt;/P&gt;
&lt;P&gt;In an effort to reduce the confusion in the industry about WinFx, Microsoft is essentially retiring that terminology. The key thing to note is that it is the terminology that is being retired, not the technology. Apparently there was a lot of confusion and concern that Microsoft was abandoning .NET and moving to this new platform named WinFx. What people failed to realize is that WinFx is .NET and is essentially some additional runtimes that sit on top of the .NET runtime.&lt;/P&gt;
&lt;P&gt;So, the bottom line is this:&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px" align=center&gt;&lt;STRONG&gt;.NET 3.0 == .NET 2.0 + WPF + WCF + WWF + CardSpace&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To help sort all of this out, a new community site devoted to .NET 3.0 has been created. According to the site, &lt;/P&gt;
&lt;P&gt;
&lt;BLOCKQUOTE&gt;The Microsoft .NET Framework 3.0 (formerly WinFX), is the new managed code programming model for Windows. It combines the power of the .NET Framework 2.0 with new technologies for building applications that have visually compelling user experiences, seamless communication across technology boundaries, and the ability to support a wide range of business processes.&lt;/BLOCKQUOTE&gt;Check out the new site at: &lt;A href="http://www.netfx3.com/"&gt;http://www.netfx3.com/&lt;/A&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82266"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82266" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/82266.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/06/18/82266.aspx</guid>
            <pubDate>Sun, 18 Jun 2006 20:55:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/82266.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/06/18/82266.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/82266.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/82266.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows PowerShell - Unix comes to Windows</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/06/18/82258.aspx</link>
            <description>&lt;P&gt;Windows PowerShell (formerly known as &amp;#8220;Monad&amp;#8221;) is a Microsoft's answer to the power and flexibility of the Unix command shells. It should finally complete the Windows management picture by providing a solid command line shell to administer Windows systems. PowerShell is part of Vista, but fortunately for all of us, it is being released separately and is available for Windows XP as well.&lt;/P&gt;
&lt;P&gt;PowerShell is a command line shell that is:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;as interactive and composable as bash/ksh (or any other Unix shell)&lt;/LI&gt;
&lt;LI&gt;as programmatic as Perl or Ruby&lt;/LI&gt;
&lt;LI&gt;as production oriented as the AS400 CL or VMS DCL languages&lt;/LI&gt;
&lt;LI&gt;allows access to data stores as easy as if they were a file system&lt;/LI&gt;
&lt;LI&gt;provides &amp;#8220;man-style&amp;#8220; help with a rich schema and searching capabilities&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;PowerShell seems to have incorporated many of the best features of the Unix shells, such as:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;series of profile files&amp;nbsp;that can be run at startup (or logon)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;command aliasing &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;SPAN&gt;prompt&amp;nbsp;customization&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;
&lt;DIV&gt;&lt;SPAN&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;tab completion&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;
&lt;DIV&gt;&lt;SPAN&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;
&lt;DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;many preferences controllable via variables&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/SPAN&gt;
&lt;DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Scripting&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Supports existing scripting models &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;U&lt;/SPAN&gt;&lt;SPAN&gt;NIX model of text processing including regular expressions &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Visual Basic Script model of COM automation &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Supports scripting .NET objects &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Support loose, strong, and extensible typing models &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Uniform syntax to access to a wide range of types &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;WMI, XML, COM, ADSI, ADO &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;Rich variable semantics (typed, read-only, constraints, descriptions) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;Rich operators and control structures (Visual C#-like with access to cmds &lt;/SPAN&gt;&lt;SPAN&gt;and utilities) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Functions (positional, named, typed, constrained params) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P v:shape="_x0000_s1026"&gt;&lt;SPAN&gt;Text Processing Model&lt;/SPAN&gt;&lt;/P&gt;
&lt;P v:shape="_x0000_s1026"&gt;&lt;/P&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;NET String class is the foundation &lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Clone, CompareTo, Contains, CopyTo, EndsWith, Equals, IndexOf, &lt;/SPAN&gt;&lt;SPAN&gt;IndexOfAny, Insert,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;LastIndexOf, LastIndexOfAny, Length, PadLeft, PadRight, &lt;/SPAN&gt;&lt;SPAN&gt;Remove, Replace, Split, StartsWith, Substring, ToCharArray, ToLower, &lt;/SPAN&gt;&lt;SPAN&gt;ToLowerInvariant, ToString, ToUpper, ToUpperInvariant, Trim, TrimEnd, &lt;/SPAN&gt;&lt;SPAN&gt;TrimStart &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Native support for useful datatypes &lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;REGEX, XML, Arrays, Associative arrays, &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Rich string operators &lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;+, *, -f, -replace, -match, -like, -eq, -ne, gt, -ge, -lt, -le &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Implicit/explicit casting and coercion &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Here-strings &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Rich control structures &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Rich utilities &lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Select-String, foreach, group, select, sort, where &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;DIV v:shape="_x0000_s1026"&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;FONT face="Courier New"&gt;function top ($property=&amp;#8220;Handles&amp;#8221;, [int]$count=10) &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;FONT face="Courier New"&gt;{ &lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Get-Process | sort $property | select &amp;#8211;first $count &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;} &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;For those of you who have written Unix shell scripts before (and maybe a lot of people who haven't) the syntax should look familiar. This declares a function named &amp;#8220;top&amp;#8221; which takes two paramters (both with defaults) and returns a sorted list of the top $count processes sorted by $property.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82258"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82258" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/82258.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/06/18/82258.aspx</guid>
            <pubDate>Sun, 18 Jun 2006 20:18:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/82258.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/06/18/82258.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/82258.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/82258.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Vista: Kernel Changes - BitLocker, Code Integrity</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/06/18/82252.aspx</link>
            <description>&lt;P&gt;&lt;STRONG&gt;BitLocker&lt;SUP&gt;TM&lt;/SUP&gt; Drive Encryption&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;BitLocker allows the entire OS volume to be encrypted as well as any other volumes. In order to do this, a 1.5 GB unencrypted system volume is required.&lt;/P&gt;
&lt;P&gt;BitLocker requires Trusted Platform Module (TPM) v1.2 or a USB device and USB-capable BIOS and is implemented as a file filter driver that sits just above the volume manager drivers.&lt;/P&gt;
&lt;P&gt;There are several supported modes for storing the decryption key:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;TPM locked with signature of boot files 
&lt;LI&gt;TPM locked with user-specified PIN 
&lt;LI&gt;external USB flash device&lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;STRONG&gt;Code Integrity Verification&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;The operating system loader and the kernel now perform code signature checks. On 64-bit x64 platforms, all kernel mode code must be signed and the identity of all kernel mode binaries is verified. The system also audits events for integrity check failures.&lt;/P&gt;
&lt;P dir=ltr&gt;On 32-bit platforms, the administrator is prompted to install unsigned code. Load-time checks are done on all kernel mode binaries, but if unsigned code is allowed to load you won't be able to play protected high-definition multimedia content.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82252"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82252" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/82252.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/06/18/82252.aspx</guid>
            <pubDate>Sun, 18 Jun 2006 18:18:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/82252.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/06/18/82252.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/82252.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/82252.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Vista: Kernel Changes - Shadows of Reliability, Performance and Scalability</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/06/18/82251.aspx</link>
            <description>&lt;P&gt;&lt;STRONG&gt;Performance and Scalability&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;Vista makes fewer and larger disk reads for page faults and system cache read-ahead and has removed the 64KB limit. Fewer, faster, and larger disk writes for the system page file and mapped file I/O reduce the page file fragmentation and allow a larger cluster size.&lt;/P&gt;
&lt;P&gt;The CPU usage has also been improved by providing improvements in the concurrency management within the kernel. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;STRONG&gt;Windows Error Reporting (WER)&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;Vista is a more robust and resilient operating system that provides a read-only system cached view of the registry which protects it from being overwritten by drivers and helps reduce data loss in page crashes.&lt;/P&gt;
&lt;P dir=ltr&gt;Prior to Vista, unhandled exceptions were handled in the context of the thread incurring the exception. This relied on the thread stack being valid and could result in the &amp;#8220;silent death&amp;#8221; of applications when the stack was corrupted.&lt;/P&gt;
&lt;P dir=ltr&gt;In Vista, unhandled exceptions are sent to the Windows Error Reporting service, which launches Werfault.exe. This replaces Dwwin.exe (Doctor Watson), and permits WER to be invoked for threads that are too corrupted to invoke their unhandled exception handling.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;STRONG&gt;Volume Shadow Copy&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;Windows Vista now uses Volume Shadow Copy for System Restore and Previous Versions. This creates a point-in-time copy-on-write snapshot of live volumes and solves the problem of open files not being backed up.&lt;/P&gt;
&lt;P dir=ltr&gt;The Previous Versions tab was introduced as Windows Server 2003 &amp;#8220;Shadow Copies for Shared Folders&amp;#8221; feature.&lt;/P&gt;
&lt;P dir=ltr&gt;Volume shadow copy now uses the kernel transaction manager for consistent cross-volume snapshots. Snapshots are taken once per day and when system restore points are taken.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;STRONG&gt;Other Reliability Features&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;The kernel now supports the concept of a &amp;#8220;flight data recorder&amp;#8221; with the introduction of the circular kernel context logger.&lt;/P&gt;
&lt;P dir=ltr&gt;There are new system events for virtual memory exhaustion, which can be used to help capture and report user-mode memory leaks.&lt;/P&gt;
&lt;P dir=ltr&gt;The Restart Manager enables most applications and services to be shutdown and restarted to unblock access to DLLs needing to be replaced. This feature may finally allow seamless replacement of in-use DLLs, reducing the number of times a reboot is necessary at the end of an install.&lt;/P&gt;
&lt;P dir=ltr&gt;For the developers, there are new debugger APIs that allow for &amp;#8220;wait chain traversal&amp;#8221; to help find and report deadlocks.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82251"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82251" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/82251.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/06/18/82251.aspx</guid>
            <pubDate>Sun, 18 Jun 2006 17:59:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/82251.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/06/18/82251.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/82251.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/82251.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Vista: Kernel Changes - Kernel Transactions</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/06/18/82249.aspx</link>
            <description>&lt;P&gt;&lt;STRONG&gt;Kernel Transaction Manager (KTM)&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;Before Vista, applications had to do a lot of hard work to recover from errors during the modification of files and registry keys. Windows Vista implements a generalized transaction manager called the Kernel Transaction Manager (KTM) which provides &amp;#8220;all or nothing&amp;#8221; transaction semantics. This means that changes are committed only when the associated transaction is completed and commits.&lt;/P&gt;
&lt;P&gt;The KTM is extensible through third-party resource managers and coordinates between the transaction clients (the applications) and the resource managers.&lt;/P&gt;
&lt;P&gt;The registry and NTFS have been enhanced to provide transaction semantics across all operations and is used by the Windows Update service and the System Protection services.&lt;/P&gt;
&lt;P&gt;Vista also picks up the Common Log File System (Clfs.sys) introduced in Windows Server 2003 R2, which provides efficient transaction logging facilities.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;STRONG&gt;Transaction APIs&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;Transactions can span modification across one or many registry keys, files, and volumes. By using the Distributed Transaction Coordinator (DTC) transactions can coordinate changes across files, registry, databases, and MSMQ.&lt;/P&gt;
&lt;P dir=ltr&gt;Transactions are relatively easy to use in Vista with the introduction of the new transaction command, which allows scripts to participate in the transaction process.&lt;/P&gt;
&lt;P dir=ltr&gt;The Windows API also has a new set of API functions:&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI&gt;
&lt;DIV&gt;CreateTransaction&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;SetCurrentTransaction&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;CommitTransaction&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;RollbackTransaction&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The kernel has IoCreateFile, which now has an ExtraCreateParameters which specified the transaction handle.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82249"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82249" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/82249.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/06/18/82249.aspx</guid>
            <pubDate>Sun, 18 Jun 2006 17:38:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/82249.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/06/18/82249.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/82249.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/82249.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Vista: Kernel Changes - Wakeup, wakeup, wakeup!</title>
            <link>http://geekswithblogs.net/sdorman/archive/2006/06/18/82247.aspx</link>
            <description>&lt;P&gt;Up until Vista, an application or a driver could prevent the system from entering a sleep mode (standby or hibernate) and was often caused by a bug or an overly aggressive power management policy. The problem with this was that the user might not know the system hasn't entered the appropriate sleep stat and eventually loose data.&lt;/P&gt;
&lt;P&gt;Vista no longer queries processes when entering sleep states like previous versions of Windows and has reduced the timeout for user-mode notifications to 2 seconds (down from 20 seconds). In addition, drivers can not veto the transition into a sleep state.&lt;/P&gt;
&lt;P&gt;Hopefully, these changes will make going to sleep a lot more peaceful.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82247"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82247" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/82247.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid>http://geekswithblogs.net/sdorman/archive/2006/06/18/82247.aspx</guid>
            <pubDate>Sun, 18 Jun 2006 17:24:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/82247.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2006/06/18/82247.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/82247.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/82247.aspx</trackback:ping>
        </item>
    </channel>
</rss>