<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Windows 7 Insider</title>
	<atom:link href="http://win7insider.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://win7insider.com</link>
	<description>Information &#38; Tips About Windows 7</description>
	<lastBuildDate>Fri, 03 Sep 2010 12:40:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Compound Case of the Outlook Hangs</title>
		<link>http://win7insider.com/2010/08/31/the-compound-case-of-the-outlook-hangs/</link>
		<comments>http://win7insider.com/2010/08/31/the-compound-case-of-the-outlook-hangs/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 05:11:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/31/the-compound-case-of-the-outlook-hangs/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>This case was shared with me by a friend of mine, Andrew Richards, a Microsoft Exchange Server Escalation Engineer. It&rsquo;s a really interesting case because it highlights the use of a Sysinternals tool I specifically wrote for use by Microsoft support&#8230;(<a rel="nofollow" target="_blank" href="http://blogs.technet.com/b/markrussinovich/archive/2010/08/24/3351213.aspx">read more</a>)<img src="http://blogs.technet.com/aggbug.aspx?PostID=3351213" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/31/the-compound-case-of-the-outlook-hangs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Post: Windows の Network Driver</title>
		<link>http://win7insider.com/2010/08/31/blog-post-windows-%e3%81%ae-network-driver/</link>
		<comments>http://win7insider.com/2010/08/31/blog-post-windows-%e3%81%ae-network-driver/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 05:05:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/31/blog-post-windows-%e3%81%ae-network-driver/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><span>お久しぶりです。さなえすです。<span lang="EN-US">8</span>月ももう終わりですね。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>私事ですが、この間の週末は高円寺の阿波踊りに「マイ���ロソフト連」として参加させていただきました。“<span lang="EN-US">Windows 7</span>”<span lang="EN-US">&#160; </span>を掛け声に踊ったんですけど、腕も足も痛いし、汗は目に入るしで大変でした。最後まで頑張れたのは、沿道のみなさんから「マイクロソフトぉ～頑張れ～！」「せぶんせぶんせぶん～」と温かい声援をかけていただいたおかげです。お祭りを通じて、地域のみなさんとの距離がぐっと近くなる感じが、とっても良かったです♪ さて、皆さまのこの夏の思い出は何でしたか？<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>今日は、ずーっと書きたいなと思っていたトピック、ネットワークについて書こうと思います。<span lang="EN-US">Windows </span>のネットワークに含まれるトピックは沢山あります。なので、その中でドライバーだけを取ってみても……やっぱり沢山あります。私が、初めて<span lang="EN-US"> Windows </span>の ネットワークドライバーの世界に触れた時、ドライバーの名称だけでも様々なものがあると感じました。例えば、ミニポートドライバー・<span lang="EN-US">NIC</span>ドライバー・<span lang="EN-US">LAN</span>ドライバー、ネットワーク フィルタードライバー、中間層ドライバー、<span lang="EN-US">TDI </span>ドライバー、プロトコル ドライバー、…………などなど、たくさんありますが、少しずつお伝えできればいいなと思っています。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>今日はまず、「<span lang="EN-US">NDIS </span>ドライバー」のお話。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US"></span></p>
<p>&#160;</p>
</p>
<p><span>この<span lang="EN-US"> Blog </span>を書くにあたって、<span lang="EN-US">Windows Internals 5th Edition </span>を参照したところ、<span lang="EN-US">NDIS</span>ライブラリー含め、<span lang="EN-US">NDIS </span>スタック上で動作するドライバーのことをまとめて「<span lang="EN-US">NDIS </span>ドライバー」と称していました。この<span lang="EN-US">Blog</span>でもそう呼ばせてもらおうと思います。ちなみにですが、<span lang="EN-US">NDIS</span>と書いて、通常「エヌディス」と読みますよ。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>●<span lang="EN-US">NDIS </span>ライブラリー<span lang="EN-US"> (Ndis.sys) </span></span></p>
</p>
</p>
<p><span>まず、<span lang="EN-US">Windows </span>上のネットワークドライバーを理解する上で、大きなポイントとなるのが <b><span lang="EN-US">NDIS</span></b>です。<span lang="EN-US">NDIS </span>とは、<span lang="EN-US">Network Driver Interface Specification </span>の略で、<span lang="EN-US">1989</span>年に<span lang="EN-US">3Com</span>とマイクロソフトによって共同で開発された、読んで字の如く、ネットワーク ドライバーにおけるインターフェースの仕様です。<span lang="EN-US">Windows </span>上では、<span lang="EN-US">NDIS </span>ライブラリー（※ 仕様自体と分けるため<span lang="EN-US"> NDIS </span>ライブラリーと明記しましたが、以降<span lang="EN-US"> NDIS </span>と称します）として実装されていて、実際のファイルは<span lang="EN-US"> Drivers </span>フォルダーの下にあります<span> </span><span lang="EN-US">(</span></span><span lang="EN-US">&#92;</span><span lang="EN-US">%SystemRoot%&#92;System32&#92;Drivers&#92;Ndis.sys)</span><span>。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">NDIS</span><span>では </span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ff571073(VS.85).aspx"><span>OSI</span><span lang="EN-US"><span lang="EN-US">参照モデル</span></span></a></span><span lang="EN-US"> </span><span>を忠実に踏襲している訳ではありませんが、ネットワーク上での役割を大まかに理解してもらうためにあえて言いますと、<span lang="EN-US">NDIS </span>は<span lang="EN-US"> OSI</span>参照モデルで言うところの データリンク レイヤー（の一部）の範囲に位置しています。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/3125.clip_5F00_image001_5F00_1A3722A4.jpg"><img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/3618.clip_5F00_image001_5F00_thumb_5F00_1DD53D81.jpg" width="5" height="5" /></a></span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/2148.clip_5F00_image003_5F00_24884704.jpg"><img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" border="0" alt="clip_image003" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/1007.clip_5F00_image003_5F00_thumb_5F00_38353098.jpg" width="143" height="244" /></a> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>もっと具体的な役割としては、<span lang="EN-US">NDIS </span>ドライバーが使用する<span lang="EN-US"> API </span>群<span lang="EN-US"> (NDIS </span>ライブラリー関数<span lang="EN-US">) </span>を提供するだけでなく、<span lang="EN-US">NDIS </span>ドライバーの動作する実行環境をも提供しています。この「実行環境を提供している」というのは、大ざっぱな言い方をすれば、<span lang="EN-US">NDIS </span>ドライバーは<span lang="EN-US"> NDIS </span>ライブラリー以外のドライバーと直接やり取りすることはなく、逆に言うと<span lang="EN-US"> NDIS </span>ライブラリーとのみやり取りすればよい、ということです。そのため、通常の<span lang="EN-US"> WDM</span>のドライバーが行うような<span lang="EN-US"> IRP </span>のハンドリングなどは直接行いませんし、他のドライバーから<span lang="EN-US"> IoCallDriver </span>などで呼び出されることも原則ありません。（独自のプロトコルを実装している場合は除きます）<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>現在<span lang="EN-US"> Window 7 </span>ならびに<span lang="EN-US"> Windows Server 2008 R2 </span>でサポートされている<span lang="EN-US"> NDIS </span>のバージョンは<span lang="EN-US"> 6.2 </span>です。<span lang="EN-US">NDIS 5.x </span>から<span lang="EN-US"> NDIS 6.x </span>へのメジャーアップデートは、<span lang="EN-US">Windows Vista (NDIS 6.0) </span>のリリースのタイミングでされました。<span lang="EN-US">NDIS<span> </span>6.x </span>は、従来の<span lang="EN-US"> NDIS 5.x </span>と比べて、状態遷移の管理方法や、転送の基本となるパケットの構造などに様々な変更がなされ、動的かつ効率的に処理を行うことができるようになっています。なお、<span lang="EN-US">NDIS 6.x </span>は下位互換を持っていますので、<span lang="EN-US">NDIS 5.x </span>として適切に実装されたドライバーであれば<span lang="EN-US"> Windows Vista </span>や<span lang="EN-US"> Windows 7 </span>などの<span lang="EN-US"> NDIS 6.x </span>の環境下でも動作します。ですが、実際のところ<span lang="EN-US"> NDIS 5.x </span>がラッピングされて<span lang="EN-US"> NDIS 6.x </span>環境下で動作しているため、パフォーマンス面では効率が落ちてしまいます。そのため、これから新規に実装を行う場合は当然のこと、<span lang="EN-US">NDIS5.x </span>系のドライバーも、最新の<span lang="EN-US"> NDIS </span>バージョンへ移行することをお勧めします。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>●その他の<span lang="EN-US">NDIS </span>ドライバー <span lang="EN-US"></span></span></p>
</p>
</p>
<p><span>上記の<span lang="EN-US"> NDIS</span>以外に、どんなものがあるのかと言いますと、ミニポート ドライバー、フィルタードライバー<span lang="EN-US">(LWD: lightweight filter driver)</span>、中間層<span lang="EN-US"> (IM: intermediate) </span>ドライバー、プロトコル ドライバーなどの種類があります。実際に<span lang="EN-US"> WDK </span>にもサンプルが沢山用意されていますので、是非のぞいてみてほしいと思います<span> </span><span lang="EN-US">(%BaseDir%</span></span><span lang="EN-US">&#92;</span><span lang="EN-US">src&#92;network&#92;ndis</span><span>）。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160;</span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/7851.clip_5F00_image001_5F00_62352EC0.jpg"><img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/5873.clip_5F00_image001_5F00_thumb_5F00_28B21EC9.jpg" width="5" height="5" /></a></span><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>●ミニポート ドライバー： <span lang="EN-US"></span></span></p>
</p>
</p>
<p><span lang="EN-US">LAN </span><span>ドライバー、<span lang="EN-US">NIC </span>ドライバー、様々な呼び方があるようですが、ネットワークアダプターの実質的な機能を提供するドライバーです。<span lang="EN-US">NDIS.sys </span>と共に<span lang="EN-US"> HW </span>に最も近いレイヤーで動作するドライバーです。通常、<span lang="EN-US">Net </span>クラスとして登録されます。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>●フィルター ドライバー ： <span lang="EN-US"></span></span></p>
</p>
</p>
<p><span>ミニポート ドライバー と プロトコル ドライバーの間に位置し、その特性を生かしてネットワークスタック上のデータをフィルタリングすることができます。用途に応じてクラスは様々ですが、<span lang="EN-US">NetTrans </span>クラス、<span lang="EN-US">NetService </span>クラスなどで登録され、中間層ドライバーに関しては、<span lang="EN-US">Net </span>クラスのインターフェースも持ちます（後述）。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>●プロトコル ドライバー ： <span lang="EN-US"></span></span></p>
</p>
</p>
<p><span>ミニポート ドライバー、フィルター ドライバーより上位に位置するため、<span lang="EN-US">NDIS </span>ドライバーの中でもよりアプリケーションに近いレイヤーで動作するドライバーです。アプリケーションと連動した独自プロトコルを実装することも可能です。こちらも用途に応じてクラスは様々ですが、<span lang="EN-US">NetTrans </span>クラス、<span lang="EN-US">NetService </span>クラスとして登録されることが多いようです。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/6864.clip_5F00_image004_5F00_2F65284C.jpg"><img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" border="0" alt="clip_image004" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/5381.clip_5F00_image004_5F00_thumb_5F00_67376C6F.jpg" width="304" height="484" /></a></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US"></span></p>
<p>&#160;</p>
</p>
<p><span>フィルター ドライバーについて、ちょっと補足をします。一口にフィルタードライバーと言っても、現在の<span lang="EN-US"> Windows </span>では、様々な様相を呈しています。まず、代表的なフィルター ドライバーとして、<span lang="EN-US">LWD: lightweight filter driver </span>があります。<span lang="EN-US">LWD </span>だけでなく、中間層<span lang="EN-US"> (IM: intermediate) </span>ドライバーもフィルタードライバーとみなされる場合もあります。中間層<span lang="EN-US"> (IM) </span>ドライバーは、他とは特に異なっており、ミニポートドライバーとしてのインターフェース（“<span lang="EN-US">Miniport Edge</span>”）と、プロトコルドライバーとしてのインターフェース（“<span lang="EN-US">Protocol Edge</span>”）の両方を持っているという特徴があります。ミニポート ドライバー と プロトコル ドライバーの間に位置するため、中間層・<span lang="EN-US">Intermediate </span>の名前を持つわけです。その特性ゆえ、フィルター ドライバーとして実装されることも多かったのですが、必ずしもいわゆるパケットなどを監視する “ネットワーク フィルター” の機能を持つとは限らず、仮想のネットワークアダプターとして実装することも可能です。余談ですが、中間層ドライバーは “<span lang="EN-US">Miniport Edge</span>” と “<span lang="EN-US">Protocol Edge</span>” それぞれに<span lang="EN-US"> INF </span>ファイルがあったりします。（<span lang="EN-US">INF</span>ファイルって<span lang="EN-US">1</span>つしかないという先入観があったためか、私は最初「へえ～」と思いました。）<span lang="EN-US">INF </span>は必ずしも<span lang="EN-US"> 2 </span>つに分ける必要はないですが、皆さん、普通は分けて書いているようですね。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;</span><span>また<span lang="EN-US"> NDIS </span>ドライバー以外にも、<span lang="EN-US">Windows Filtering Platform(WFP) </span>というフィルタリング専用の仕組みや、<span lang="EN-US">Winsock Kernel (WSK) </span>のインターフェースも<span lang="EN-US"> Vista </span>から新たにサポートされています。この<span lang="EN-US"> WFP </span>の仕組みを利用してカーネルモードで動作するドライバーに、<span lang="EN-US">Callout </span>ドライバーがあります。これまでに<span lang="EN-US">TDI </span>クライアント ドライバーで実装されていたモデルに代わり、<span lang="EN-US">WSK </span>のインターフェースを使用した実装へと更新することが推奨されています。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>さて、<span lang="EN-US">NDIS </span>ドライバーの住み分けが大体頭に入ったところで、手元の環境で実際に見てみたいと思います。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>私の手元の環境では、コントロールパネルから確認したところ、２つのネットワーク接続が有効になっています。実は、このマシンには、ネットワークアダプターは<span lang="EN-US"> 1 </span>枚しか刺さっていません。左側の<span lang="EN-US"> Local Area Connection </span>が実際のネットワークアダプターに対して作られている接続で、右側の<span lang="EN-US"> Local Area Connection 2 </span>は、仮想的なネットワークアダプターに対する接続です。<span lang="EN-US">WDK </span>の<span lang="EN-US"> MUX </span>サンプルがインストールされていて、<span lang="EN-US">MUX </span>は中間層ドライバーのサンプルです。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/4718.clip_5F00_image006_5F00_57B45AA0.jpg"><img style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px" border="0" alt="clip_image006" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-18-18-metablogapi/8831.clip_5F00_image006_5F00_thumb_5F00_240BEE42.jpg" width="534" height="272" /></a></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span>実際に、<span lang="EN-US">NDIS</span>にシンボルを合わせて、<span lang="EN-US">Debugger </span>でそれぞれのインスタンスを見てみましょう。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US"></span></p>
<p>&#160;</p>
</p>
<p><span lang="EN-US">OS: Windows 7 Enterprise (7600.16385) x86 </span><span>バージョン</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">Symbol: </span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://msdl.microsoft.com/download/symbols"><span>http://msdl.microsoft.com/download/symbols</span></a></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span>※パブリック<span> </span>シンボル<span> </span>サーバーを使用しています<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US"></span></p>
<p>&#160;</p>
</p>
<table border="0" cellpadding="0" width="604">
<tbody>
<tr>
<td>
<p><span lang="EN-US">0: kd&gt; .reload /f ndis.sys </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">0: kd&gt; !lmi ndis </span></p>
</p>
</p>
<p><span lang="EN-US">Loaded Module Info: [ndis] </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Module: ndis </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160; Base Address: 8c697000 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; Image Name: ndis.sys </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160; Machine Type: 332 (I386) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; Time Stamp: 4a5bbf58 Tue Jul 14 08:12:24 2009 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Size: b7000 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160; CheckSum: b5e1d </span></p>
</p>
</p>
<p><span lang="EN-US">Characteristics: 102&#160; perf </span></p>
</p>
</p>
<p><span lang="EN-US">Debug Data Dirs: Type&#160; Size&#160;&#160;&#160;&#160; VA&#160; Pointer </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CODEVIEW&#160;&#160;&#160; 21, 3e384,&#160;&#160; 3d984 RSDS &#8211; GUID: {A445ECC2-161F-4970-81DA-301D4F6F13BB} </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Age: 2, Pdb: ndis.pdb </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CLSID&#160;&#160;&#160;&#160; 4, 3e380,&#160;&#160; 3d980 [Data not mapped] </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; Image Type: MEMORY&#160;&#160; &#8211; Image read successfully from loaded memory. </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Symbol Type: PDB&#160;&#160;&#160;&#160;&#160; &#8211; Symbols loaded successfully from symbol server. </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; c:&#92;symbols&#92;ndis.pdb&#92;A445ECC2161F497081DA301D4F6F13BB2&#92;ndis.pdb </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Load Report: public symbols , not source indexed </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; c:&#92;symbols&#92;ndis.pdb&#92;A445ECC2161F497081DA301D4F6F13BB2&#92;ndis.pdb </span></p>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>ネットワーク アダプターの実質的な機能を提供するドライバーはミニポートドライバーです。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>ミニポートドライバー情報の一覧をダンプします。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<table border="0" cellpadding="0" width="604">
<tbody>
<tr>
<td>
<p><span lang="EN-US">0: kd&gt; !ndiskd.miniport </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; MiniDriver&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Miniport&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 873825e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 873cc0e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; RAS Async Adapter </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 8685aac0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86abe0e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (SSTP) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 86ab92f0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86abc0e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (PPTP) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 86ab7608&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86ab80e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (PPPOE) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 86ab4898&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86ab60e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (IPv6) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 86ab4898&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 868590e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (IP) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 86ab4898&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 868510e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (Network Monitor) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 86aab2b8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 8683d0e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><b><span lang="EN-US">Sample MUX-IM Virtual Miniport Driver</span></b><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 868374d8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 868330e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (L2TP) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 86778428&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 868360e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WAN Miniport (IKEv2) </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 867594d0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 867430e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><b><span lang="EN-US">Broadcom NetXtreme 57xx Gigabit Controller</span></b><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 863c1d10&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 863b20e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft Teredo Tunneling Adapter </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 863c1d10&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 863b40e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft ISATAP Adapter </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 863c1d10&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 863ba0e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft 6to4 Adapter #2 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; 863c1d10&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 856bb0e0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft 6to4 Adapter </span></p>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>ネットワークアダプターの個別の情報をダンプするには、リンクをクリックするか、アドレスを指定してダンプします。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="ZH-CN">まずは、</span><span lang="EN-US">Broadcom NetXtreme 57xx Gigabit Controller</span><span lang="ZH-CN">から。</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<table border="0" cellpadding="0" width="604">
<tbody>
<tr>
<td>
<p><span lang="EN-US">0: kd&gt; !ndiskd.miniport 867430e0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">MINIPORT </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Broadcom NetXtreme 57xx Gigabit Controller </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Ndis Handle&#160;&#160;&#160;&#160;&#160;&#160;&#160; 867430e0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Ndis API Version&#160;&#160; v6.20 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Adapter Context&#160;&#160;&#160; 86ae5000 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Miniport Driver&#160;&#160;&#160; 867594d0 &#8211; b57nd60x.sys&#160; v1.0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Ndis Verifier&#160;&#160;&#160;&#160;&#160; [No flags set] </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Media Type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 802.3 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Physical Medium&#160;&#160;&#160; 802.3 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Device Path&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#92;??&#92;PCI#VEN_14E4&amp;DEV_1677&amp;SUBSYS_01AD1028&amp;REV_01#4&amp;117729e2&amp;0&amp;00E0#{ad498944-762f-11d0-8dcb-00c04fc3358c}&#92;{6FF9F1D8-5A39-4A3F-B594-9759AE9C8A7A} </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Device Object&#160;&#160;&#160;&#160;&#160; 86743028 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; MAC Address&#160;&#160;&#160;&#160;&#160;&#160;&#160; 00-14-22-41-3c-dd </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">STATE </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Miniport&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Running </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Device PnP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Started </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Datapath&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Normal </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Interface&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Up </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Media&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Connected </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Power&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; D0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; References&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; User Handles&#160;&#160;&#160;&#160;&#160;&#160; 0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Total Resets&#160;&#160;&#160;&#160;&#160;&#160; 0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Pending OID&#160;&#160;&#160;&#160;&#160;&#160;&#160; None </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2c452218 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; ↑ BUS_MASTER, 64BIT_DMA, SG_DMA, DEFAULT_PORT_ACTIVATED, </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; SUPPORTS_MEDIA_SENSE, DOES_NOT_DO_LOOPBACK, MEDIA_CONNECTED </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; PnPFlags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 00210061 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; ↑ PM_SUPPORTED, DEVICE_POWER_ENABLED, DEVICE_POWER_WAKE_ENABLE, </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; RECEIVED_START, HARDWARE_DEVICE </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">BINDINGS </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Filter List&#160;&#160;&#160;&#160;&#160;&#160;&#160; Filter&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Filter Driver&#160;&#160;&#160;&#160;&#160; Context&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _ </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; No filters are bound </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Open List&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Open&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Protocol&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Context&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _ </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; <b>MUXP</b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86bfd798&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86aab110&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86bfdcf8 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">MORE INFORMATION </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Driver handlers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Task offloads </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Power management&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → PM protocol offloads </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Pending OIDs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Timers </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Pending NBLs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Receive Side Throttling </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Wake-on-LAN (WoL)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Packet filter </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Receive queues&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Receive filtering </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → NDIS ports&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → NIC switch </span></p>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>同じように、<span lang="EN-US">MUX </span>の仮想ネットワーク アダプターのほうもダンプしてみます。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<table border="0" cellpadding="0" width="604">
<tbody>
<tr>
<td>
<p><span lang="EN-US">0: kd&gt; !ndiskd.miniport 8683d0e0&#160;&#160;&#160;&#160;&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">MINIPORT </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Sample MUX-IM Virtual Miniport Driver </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Ndis Handle&#160;&#160;&#160;&#160;&#160;&#160;&#160; 8683d0e0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Ndis API Version&#160;&#160; v5.1 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Adapter Context&#160;&#160;&#160; 86bfeca8 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Miniport Driver&#160;&#160;&#160; 86aab2b8 &#8211; mux.sys&#160; v255.65535 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Ndis Verifier&#160;&#160;&#160;&#160;&#160; [No flags set] </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Media Type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 802.3 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Physical Medium&#160;&#160;&#160; NdisPhysicalMediumUnspecified </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Device Path&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#92;??&#92;Root#MS_MUXMP#0000#{ad498944-762f-11d0-8dcb-00c04fc3358c}&#92;{84AB8062-778A-439B-A886-E9923CC87AF5} </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Device Object&#160;&#160;&#160;&#160;&#160; 8683d028 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; MAC Address&#160;&#160;&#160;&#160;&#160;&#160;&#160; 06-0a-22-41-3c-dd </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">STATE </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Miniport&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Running </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Device PnP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Started </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Datapath&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Normal </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Interface&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Up </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Media&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Connected </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Power&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; D0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; References&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; User Handles&#160;&#160;&#160;&#160;&#160;&#160; 0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Total Resets&#160;&#160;&#160;&#160;&#160;&#160; 0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Pending OID&#160;&#160;&#160;&#160;&#160;&#160;&#160; None </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2c45b800 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; ↑ NOT_BUS_MASTER, IGNORE_PACKET_QUEUE, IGNORE_REQUEST_QUEUE, </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; IGNORE_TOKEN_RING_ERRORS, INTERMEDIATE_DRIVER, DEFAULT_PORT_ACTIVATED, </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; DESERIALIZED, RESOURCES_AVAILABLE, SUPPORTS_MEDIA_SENSE, </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; DOES_NOT_DO_LOOPBACK, MEDIA_CONNECTED </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; PnPFlags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 00018021 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; ↑ PM_SUPPORTED, DEVICE_POWER_ENABLED, NO_HALT_ON_SUSPEND, </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160;&#160;&#160;&#160; RECEIVED_START </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">BINDINGS </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Filter List&#160;&#160;&#160;&#160;&#160;&#160;&#160; Filter&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Filter Driver&#160;&#160;&#160;&#160;&#160; Context&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _ </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; No filters are bound </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Open List&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Open&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Protocol&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Context&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _ </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; NDISUIO&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 87072008&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 87074e68&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 870754f0 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; TCPIP6&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86ccf740&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 864845f8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86cd0008 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; TCPIP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86ccaaa8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86484798&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86cc9758 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">MORE INFORMATION </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Driver handlers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Task offloads </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Power management&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → PM protocol offloads </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Pending OIDs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Timers </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Pending NBLs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Receive Side Throttling </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Wake-on-LAN (WoL)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Packet filter </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → Receive queues&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → Receive filtering </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160;&#160; → NDIS ports&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; → NIC switch </span></p>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">MUX.sys </span><span>は中間層ドライバーですので、プロトコルドライバーとしてのインターフェースも持っているはずです。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>プロトコルドライバー情報の一覧をダンプします。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<table border="0" cellpadding="0" width="604">
<tbody>
<tr>
<td>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">0: kd&gt; !ndiskd.protocol</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">87075008 &#8211; RSPNDR</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">87074e68 &#8211; NDISUIO</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 87072008 &#8211; Sample MUX-IM Virtual Miniport Driver</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">87071410 &#8211; LLTDIO</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">86c60690 &#8211; NDPROXY</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cc9a60 &#8211; WAN Miniport (IKEv2)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cc9008 &#8211; WAN Miniport (IKEv2)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cc8a60 &#8211; WAN Miniport (L2TP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cc8008 &#8211; WAN Miniport (L2TP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cc1008 &#8211; WAN Miniport (PPPOE)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ca6260 &#8211; WAN Miniport (PPPOE)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ca6a60 &#8211; WAN Miniport (PPTP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cb4260 &#8211; WAN Miniport (PPTP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cb4a60 &#8211; WAN Miniport (SSTP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ac11e8 &#8211; WAN Miniport (SSTP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">86ab7458 &#8211; RASPPPOE</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">86ab4a40 &#8211; NDISWAN</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ee6008 &#8211; RAS Async Adapter</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cd5008 &#8211; WAN Miniport (SSTP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cd6008 &#8211; WAN Miniport (PPTP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cd6a60 &#8211; WAN Miniport (PPPOE)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cca008 &#8211; WAN Miniport (L2TP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cc7838 &#8211; WAN Miniport (IKEv2)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">86aab110 -<b> MUXP</b></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86bfd798 &#8211; Broadcom NetXtreme 57xx Gigabit Controller</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">866b5bc0 &#8211; WANARPV6</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ccb7b8 &#8211; WAN Miniport (IPv6)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">866b5e68 &#8211; WANARP</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86cd5a60 &#8211; WAN Miniport (IP)</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">864867d0 &#8211; TCPIP6TUNNEL</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ace3f8 &#8211; Microsoft Teredo Tunneling Adapter</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86acc740 &#8211; Microsoft ISATAP Adapter</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">8648be60 &#8211; TCPIPTUNNEL</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">864845f8 &#8211; TCPIP6</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ccf740 &#8211; Sample MUX-IM Virtual Miniport Driver</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">86484798 &#8211; TCPIP</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; 86ccaaa8 &#8211; Sample MUX-IM Virtual Miniport Driver</span><span lang="EN-US"> </span></p>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">MUXP</span><span lang="ZH-CN">というプロトコルが、</span><span lang="EN-US">Broadcom NetXtreme 57xx Gigabit Controller</span><span lang="ZH-CN">に対して関連付けられていますね。</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="ZH-CN">ところで、</span><span lang="EN-US">Broadcom NetXtreme 57xx Gigabit Controller</span><span lang="ZH-CN">のミニポート情報をもう一度見てください。</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><b><span lang="EN-US">BINGINGS</span></b><span>の <b><span lang="EN-US">Open List</span></b><span lang="EN-US"> </span>に<span lang="EN-US"> MUXP</span>の名前があるのにお気づきでしょうか。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>つまり、ミニポート側から見ても、<span lang="EN-US">MUXP </span>プロトコルに関連付けられていることが分かります。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<table border="0" cellpadding="0" width="604">
<tbody>
<tr>
<td>
<p><span lang="EN-US">BINDINGS </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Filter List&#160;&#160;&#160;&#160;&#160;&#160;&#160; Filter&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Filter Driver&#160;&#160;&#160;&#160;&#160; Context&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _ </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; No filters are bound </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; Open List&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Open&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Protocol&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Context&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _ </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160;&#160; <b>MUXP</b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86bfd798&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86aab110&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 86bfdcf8 </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span lang="EN-US">BIND </span><span>の話が出たところで、時間がなくなってしまいましたので今日はここらへんでおしまいにしようと思います。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>あんまり深く突っ込んだ内容ではなかったかもしれませんが、<span lang="EN-US">NDIS </span>ドライバーの種類と雰囲気については、つかんでいただけましたでしょうか？<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span>最後に、参考になりそうなサイトを【補足～リンク集～】に集めてみましたのでお時間のある時にでも見てみてください。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">BIND </span><span>の話は次回の私の投稿でできればな、と思っております。</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>ではまた！<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160;</span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">&#160;&#160; </span></p>
</p>
</p>
<p><span>【補足～リンク集～】<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>◎<span lang="EN-US">WHDC </span></span><span lang="EN-US">–</span><span lang="EN-US"> </span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://www.microsoft.com/japan/whdc/device/network/default.mspx"><span lang="EN-US"><span lang="EN-US">ネットワーク</span></span></a></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span>各種ホワイトペーパーや様々なサイトへのリンクが集められています。是非、チェックしてみてください。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>◎</span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ndis/"><span>The NDIS blog</span></a></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span>上記<span lang="EN-US">WHDC</span>のネットワークのページの関連ブログにもリンクが張られています。本文中に記載した<span lang="EN-US"> WinDBG </span>の出力についてより詳しく知りたい方は是非こちらも参考にしてみてください。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="ZH-CN">● </span><span lang="EN-US">[Re]Introducing NDISKD ~</span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ndis/archive/2010/03/01/re-introducing-ndiskd.aspx"><span>Over a decade of making NDIS developers dangerous</span></a></span><span lang="EN-US">~ </span></p>
</p>
</p>
<p><span lang="ZH-CN">● </span><span lang="EN-US">Getting started with NDISKD ~</span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ndis/archive/2010/03/05/getting-started-with-ndiskd.aspx"><span>Part 1 of a beginner</span><span lang="ZH-CN">’</span><span>s guide to debugging with NDISKD</span></a></span><span lang="EN-US">~ </span></p>
</p>
</p>
<p><span lang="ZH-CN">● </span><span lang="EN-US">NDISKD and !miniport ~</span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ndis/archive/2010/03/12/ndiskd-and-miniport.aspx"><span>The second installment of a beginner</span><span lang="ZH-CN">’</span><span>s guide to debugging with NDISKD</span></a></span><span lang="EN-US">~ </span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>◎</span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://www.ndis.com/"><span>NDIS Developer’s Reference</span></a></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">Microsoft </span><span>のサイトではありませんが、<span lang="EN-US">NDIS </span>ドライバー開発に関するノウハウが沢山詰まっています！<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
</p>
</p>
<p><span>◎</span><span lang="EN-US"><a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ff557563(v=VS.85).aspx"><span>Network Devices</span></a></span><span lang="EN-US"> </span></p>
</p>
</p>
<p><span lang="EN-US">MSDN</span><span>ドキュメントで情報をお探しの場合は、<span lang="EN-US">NDIS 6.x </span>と<span lang="EN-US"> NDIS 5.x </span>でドキュメントの構成を分けていますので、注意してください。<span lang="EN-US"> </span></span></p>
</p>
</p>
<p><span lang="EN-US">&#160; </span></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/31/blog-post-windows-%e3%81%ae-network-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Post: Building the Windows Experience Index Share Site – WEIshare.net</title>
		<link>http://win7insider.com/2010/08/31/blog-post-building-the-windows-experience-index-share-site-%e2%80%93-weishare-net/</link>
		<comments>http://win7insider.com/2010/08/31/blog-post-building-the-windows-experience-index-share-site-%e2%80%93-weishare-net/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 05:05:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/31/blog-post-building-the-windows-experience-index-share-site-%e2%80%93-weishare-net/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>By now you’ve probably seen <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/coding4fun/archive/2010/06/08/10021703.aspx">Larry’s video in which he explores the WEI Share</a> (“We” share) project and what it does. Now we’re going to show you what went in to creating it, from building the desktop portion to grab the score to compiling the data to setting it up on Azure.<br />
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="157">
<p>Lincoln Anderson, Web Designer</p>
<p>Peter Brownstein, Web Programmer</p>
<p>Peter Juchniewicz, Web Programmer</p>
<p>Peter VanRysdam, CMO <br /><a rel="nofollow" target="_blank" href="http://www.352media.com">352 Media Group</a></p>
</td>
<td valign="top" width="481">
<p><b>Source Code:</b> <a rel="nofollow" target="_blank" href="http://weishare.codeplex.com/">Download </a><b> <br />Difficulty:</b> Intermediate <br /><b>Time Required:</b> 30 hours (Website Programming), 50 hours (desktop programming), 20 hours (graphics/WPF design) </p>
<p><b>Software Needed:</b> <a rel="nofollow" target="_blank" href="http://www.microsoft.com/expression">Microsoft Expression Blend</a>, <a rel="nofollow" target="_blank" href="http://www.microsoft.com/express/download/">Visual Basic or Visual C# Express</a>, <a rel="nofollow" target="_blank" href="http://www.microsoft.com/web/downloads/platform.aspx">SQL Server Management Studio</a> <br /><b>Hardware:</b> PC with Windows Vista or higher (need access to a WinSAT XML file from Windows 7)</p>
</td>
</tr>
</tbody>
</table>
<h2>Creating the Silverlight App and Web Service – Peter B.</h2>
<p>We originally set out to create a Silverlight Application that would display uploaded Windows Experience Index (WEI) Scores via a Web Service and Desktop Application. At the time, we created the application in Silverlight 3 and used a WCF Service to integrate with not only the desktop application but also the Silverlight application. Since we weren’t sure exactly where the WCF Service was being hosted in relation to the Web Site, one of the things we did was make it so the location of the WCF Service can be fairly easily changed. We ended up going with Silverlight Parameters to pass in the location of the WCF Service. Doing this was fairly easy, but it took some set up. The first step involved modifying App.xaml.cs to the following:</p>
<pre><span>private</span> <span>void</span> Application_Startup(<span>object</span> sender, StartupEventArgs e) { <span>//Insert InitParams into Global Resources</span> <span>foreach</span> (<span>string</span> key <span>in</span> e.InitParams.Keys) { <span>this</span>.Resources.Add(key, e.InitParams[key]); } <span>this</span>.RootVisual = <span>new</span> MainPage(); }</pre>
<p>Once this was done, we then had to modify the code behind for the main Silverlight app in MainPage.xaml.cs, like so:</p>
<pre>WindowsExperienceServiceClient serviceClient; <span>public</span> MainPage() { InitializeComponent(); <span>if</span> (App.Current.Resources.Contains(<span>"WCFServiceLocation"</span>) &amp;&amp; !String.IsNullOrEmpty(App.Current.Resources[<span>"WCFServiceLocation"</span>] <span>as</span> <span>string</span>)) { EndpointAddress endpointAddress = <span>new</span> EndpointAddress( App.Current.Resources[<span>"WCFServiceLocation"</span>].ToString()); serviceClient = <span>new</span> WindowsExperienceServiceClient(<span> "CustomBinding_IWindowsExperienceService"</span>, endpointAddress); } <span>else</span> { serviceClient = <span>new</span> WindowsExperienceServiceClient(); } myDelay.Duration = TimeSpan.FromMilliseconds(2000); myDelay.Completed += <span>new</span> EventHandler(myDelayCompleted); myDelay.Begin(); <span>this</span>.Loaded += <span>new</span> RoutedEventHandler(MainPage_Loaded); }</pre>
<p>In the above example, I checked for the parameter, and finding that it existed I changed the Endpoint Address of the WCF Service (without an existing parameter, it uses the default address). After this was complete, we had to pass in a location similar to the following in the Default.aspx page’s object tag for the Silverlight control:</p>
<pre><span>&lt;</span><span>param</span> <span>name</span><span>="initparams"</span> <span>value</span><span>="WCFServiceLocation=http://&lt;%=Request.Url.Host %&gt;:8080/windowsexperienceservice.svc"</span> <span>/&gt;</span></pre>
<p>This made changing the location of the WCF Service much easier, allowing the flexibility we later needed.</p>
<p>Within the WCF Service, we separated our code using a three layered approach utilizing separate folders for each layer “DataAccessLayer”, “BusinessLogicLayer”, and “BusinessEntities”. Within the BusinessEntities folder, we had the base classes containing each business entity. As an example, we had the WindowsAssessment class, which contained all of the properties of the data sent from the Desktop Application to the WCF Service, including scores. Below, you can see part of what this looked like:</p>
<pre>[DataContract] <span>public</span> <span>class</span> WindowsAssessment { <span>public</span> Guid? WindowsAssessmentID { get; set; } [DataMember] <span>public</span> <span>decimal</span>? SystemScore { get; set; } [DataMember] <span>public</span> <span>decimal</span>? AverageScore { get; set; } [DataMember] <span>public</span> <span>decimal</span>? MemoryScore { get; set; } [DataMember] <span>public</span> <span>decimal</span>? CpuScore { get; set; } [DataMember] <span>public</span> <span>decimal</span>? CpuSubAggScore { get; set; } [DataMember] <span>public</span> <span>decimal</span>? VideoEncodeScore { get; set; } <span>/* additional properties... */</span> }</pre>
<p>You’ll notice above that [DataContract] and [DataMember] was set above the class and properties so that it could be used as part of the WCF Service.</p>
<p>Within the DataAccessLayer folder, we utilized Linq2Sql. We simply created a dbml file, and brought over the few assets we created in the database by dragging and dropping the tables from the Data Source into the diagram. Then, within the WindowsAssessment.cs file of the Data Access Layer, we created methods that used Linq2Sql for our basic CRUD, taking advantage of Linq to easily create paging that we can search, filter, and orderby. Finally, within the Business Logic Layer, we utilized the Business Entities and created different methods that called the DAL and also took advantage of HttpRuntime.Cache. </p>
<p>Once all of the layers were complete, the Desktop and Silverlight Application were free to communicate back and forth, allowing the Desktop App to send a score and the Silverlight App to display it.</p>
<h3>Upgrading to Silverlight 4 and Azure</h3>
<p>Unfortunately, after we completed all of this, Silverlight 4 released. We quickly moved to upgrade to Silverlight 4 and, while we were at it, also modify the app to utilize Windows Azure. </p>
<p>One of the first things I encountered was that the WCF Service was not going to be within the Web Site anymore. Azure has roles in which you create for your project. In this particular instance I needed 2 web roles, one for the website, one for the WCF. In the end my Solution looked like the following: </p>
<p><a rel="nofollow" target="_blank" href="http://ecn.channel9.msdn.com/c4fcontent/images/382ec90aac36_BB2F/clip_image0024.jpg"><img style="border-right-width:0px;padding-left:0px;padding-right:0px;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px" border="0" alt="clip_image002[4]" src="http://ecn.channel9.msdn.com/c4fcontent/images/382ec90aac36_BB2F/clip_image0024_thumb.jpg" width="345" height="144" /></a></p>
<p>Working with WCF as a WCF Role, I noticed that there were a few known issues, all of which were documented here: <a rel="nofollow" target="_blank" href="http://code.msdn.microsoft.com/wcfazure/Wiki/View.aspx?title=KnownIssues&amp;referringTitle=Home">http://code.msdn.microsoft.com/wcfazure/Wiki/View.aspx?title=KnownIssues&amp;referringTitle=Home</a>. Luckily, with another developer’s help, we were able to pinpoint some of the issues and once we addressed them, we really didn’t have much more to worry about when working with WCF.</p>
<p>The next hurdle was moving over the database. The easiest way to do this is to use the tool, SQL Azure Migration Wizard, which can be found on CodePlex at <a rel="nofollow" target="_blank" href="http://sqlazuremw.codeplex.com/">http://sqlazuremw.codeplex.com/</a>.</p>
<h2>Creating the Desktop Experience – Peter J</h2>
<p>I was tasked with creating a set of applications for showcasing user’s Windows Experience Index (WEI) scores. The set of applications included a desktop application created using Windows Presentation Foundation (WPF) for retrieving the scores and other system data, and a web site using Silverlight for displaying the information.</p>
<p>I needed to create the desktop application. Accordingly, there were some initial pre-requisites and other considerations we had to deal with:</p>
<ul>
<li>Limiting the desktop application to only run in Windows 7 </li>
<li>Determining where the relevant WEI data is stored in the system </li>
<li>Retrieving the relevant information for all areas </li>
<li>Remote Service connectivity—in this case we used a WCF service </li>
<li>Not forcing the user to install/unzip anything (just download and run) </li>
</ul>
<p>After scouring the web, I found a site (<a rel="nofollow" target="_blank" href="http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973">http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973</a>) with just the information I needed:</p>
<pre><span>/// &lt;summary&gt;</span> <span>/// Determines if the current version of windows is valid (Vista, 7, Server 2008)</span> <span>/// &lt;/summary&gt;</span> <span>/// &lt;returns&gt;&lt;/returns&gt;</span> <span>public</span> <span>static</span> <span>bool</span> IsValidWindowsVersion() { System.OperatingSystem osInfo = System.Environment.OSVersion; <span>//6 - Vista, 7, Server 2008</span> <span>if</span> (osInfo.Version.Major == 6) { <span>//windows 7 = 1</span> <span>if</span>(osInfo.Version.Minor == 1) <span>return</span> <span>true</span>; } <span>return</span> <span>false</span>; }</pre>
<p>The next major hurdle to overcome was determining where all of the information for the system was stored. </p>
<p>I didn’t really know where to start, so I started looking at MSDN and the search engines for the best way to get this information and I came across a term I had only heard in passing: WMI. Windows Managed Instruction (WMI) allows for querying the system for data, as well as other things that I did not use it for so we will skip all that. You can learn more on WMI on your own time here: <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/aa394582(VS.85).aspx">http://msdn.microsoft.com/en-us/library/aa394582(VS.85).aspx</a>. I also found a nifty tool from Microsoft called WMI Creator (<a rel="nofollow" target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&amp;displaylang=en</a>) to help facilitate my search. I was blown away by the sheer amount of data and left with no idea of where to start. So, it was back to MSDN to figure out what happens when the Experience Index is run. This made my task much easier since the Experience Index creates its own XML files with most of the data I need.</p>
<p>I retrieved a list of files and used the one that was within a day of the current date/time. This was easy stuff, till I had to determine what to do if they didn’t have an Experience Index. If they didn’t, I’d just run the Experience Index on the fly. To do this, set the program to tell the user that they do not have a current enough score and that we’ll update the information for them by running the Windows System Assessment Tool (WinSAT).</p>
<p>The initial version was not very good since it was modal and caused the application to not refresh until the Experience Index finished running. Needless to say, I was not happy. What I did do, though, was setup a child form that would launch the WinSAT and query every 5 seconds to see if it was still running. Here is the initial call to load the dialog windows and, if successful, check again for a valid Experience Index to post:</p>
<pre><span>/// &lt;summary&gt;</span> <span>/// Launches the dialog that handles launching WinSat and checking if it is running.</span> <span>/// &lt;/summary&gt;</span> <span>private</span> <span>void</span> SetupAndRunWinSAT() { WinSatProgress progressWindow = <span>new</span> WinSatProgress(); <span>bool</span>? dialogResult = progressWindow.ShowDialog(); <span>if</span> (dialogResult.HasValue &amp;&amp; dialogResult.Value) CheckForAndProcessScore(); }</pre>
<p>Now we are getting into the good stuff, so I will touch on the actual running of the WinSAT and querying the system for a running process.</p>
<p>Launching the WinSAT is pretty simple since there is an environment variable that points to its path:</p>
<pre>Environment.GetFolderPath(Environment.SpecialFolder.System) + <span>@"&#92;WinSat.exe"</span></pre>
<p>I only started a basic process and told it to run. I did not tell it to run behind the scenes because I wanted the user to be sure something was actually happening since the WinSAT can take any number of minutes depending on the system configuration. I also setup a global variable (WinsatExecutableExited) used elsewhere in the application to query to see if the process exited:</p>
<pre><span>/// &lt;summary&gt;</span> <span>/// Launches the winsat program</span> <span>/// &lt;/summary&gt;</span> <span>public</span> <span>static</span> <span>bool</span> RunWinSatProgram() { <span>bool</span> isLaunched = <span>false</span>; WinsatExecutableExited = <span>false</span>; System.Diagnostics.Process winSatProcess = <span>new</span> System.Diagnostics.Process(); winSatProcess.StartInfo.FileName = Helpers.Globals.WinSatExecutable; winSatProcess.StartInfo.Arguments = Helpers.Globals.WinSatExecutableParameters; winSatProcess.EnableRaisingEvents = <span>true</span>; winSatProcess.Exited += <span>new</span> EventHandler(WinSatProcess_Exited); <span>try</span> { winSatProcess.Start(); isLaunched = <span>true</span>; } <span>catch</span> { } <span>return</span> isLaunched; }</pre>
<p>You’ll notice the exited event handler. I put that there so that when the process exited, it set the flag. However, I was having issues with it not always getting executed on some systems. To accommodate for this, I setup a DispatchTimer in the dialog window that would check every 5 seconds to see if the global WinsatExecutableExited flag was true or if the WinSAT process was still running. In order to check if the process is still running, I used WMI. Yes, yes I know—why, since I hadn’t yet done much of anything with it, am I using WMI for this? Well, I won’t bore you with details, but I found an example online and modified it to fit what I need (<a rel="nofollow" target="_blank" href="http://www.techimo.com/forum/applications-operating-systems/117464-need-vbulletin-script-check-see-if-process-running.html">http://www.techimo.com/forum/applications-operating-systems/117464-need-vbulletin-script-check-see-if-process-running.html</a>). Bet you weren’t expecting that were you? (Or, maybe you were.) Long story short, I set up a method that I can pass a process name to, and it returns true/false if it is still running or null if it can’t determine anything:</p>
<pre><span>/// &lt;summary&gt;</span> <span>/// used to determine if the process is still running</span> <span>/// http://www.techimo.com/forum/applications-operating-systems/117464-need-vbulletin-script-check-see-if-process-running.html</span> <span>/// &lt;/summary&gt;</span> <span>/// &lt;param name="processName"&gt;&lt;/param&gt;</span> <span>/// &lt;returns&gt;&lt;/returns&gt;</span> <span>public</span> <span>static</span> <span>bool</span>? IsProcessStillRunning(<span>string</span> processName) { <span>bool</span>? response = <span>null</span>; <span>try</span> { ManagementObjectSearcher searcher = <span>new</span> ManagementObjectSearcher(<span>"root&#92;&#92;CIMV2"</span>, <span>"SELECT * FROM Win32_Process"</span>); <span>foreach</span> (ManagementObject queryObj <span>in</span> searcher.Get()) { <span>if</span>(<span>string</span>.Compare(queryObj[<span>"Name"</span>].ToString(), processName, StringComparison.OrdinalIgnoreCase) == 0) { response = <span>true</span>; <span>break</span>; } } <span>if</span>(!response.HasValue) response = <span>false</span>; } <span>catch</span> (Exception ex) { System.Windows.MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace); } <span>return</span> response; }</pre>
<p>Neat, huh? That’s what happens every time the dialog counts down until it either finishes or can’t—for whatever reason—determine the status of the WinSAT.</p>
<p>Now that the file is generated, we want to get all of the data goodness out of it so we can post our data to the service. Since this is an XML file, it was easily loaded into a XElement and traversed as needed. Now we come to another sticky point, retrieving other system data not stored in the XML file. This is where the web and that WMI Creator application came in handy. I would look online to find what I needed, and then leveraged WMI Creator to generated my base code for me. I setup an object for the retrieved data and here’s what it looks like to query the system for the memory type and speed:</p>
<pre><span>/// &lt;summary&gt;</span> <span>/// used to retrieve the memory info</span> <span>/// &lt;/summary&gt;</span> <span>/// &lt;returns&gt;&lt;/returns&gt;</span> <span>public</span> <span>static</span> List&lt;WMIItem&gt; GetPhysicalMemory() { List&lt;WMIItem&gt; response = <span>new</span> List&lt;WMIItem&gt;(); ManagementObjectSearcher searcher = <span>new</span> ManagementObjectSearcher(<span>"root&#92;&#92;CIMV2"</span>, <span>"SELECT * FROM Win32_PhysicalMemory"</span>); <span>foreach</span> (ManagementObject queryObj <span>in</span> searcher.Get()) { response.Add ( <span>new</span> WMIItem() { Key = <span>"MemoryType"</span>, Value = queryObj[<span>"MemoryType"</span>] } ); response.Add ( <span>new</span> WMIItem() { Key = <span>"Speed"</span>, Value = queryObj[<span>"Speed"</span>] } ); <span>break</span>; } <span>return</span> response; }</pre>
<p>Now is about where I have all of my information ready and need to send it to the server. Setting up the service connection for initial testing is no problem. It’s a standard Windows Communication Foundation (WCF) service. But here comes the hard part—setting it up so the service does not need information from a config file. Back to the web we go, since I am like the other 100% lazy programmers who prefer to just add a Service reference because it is easy. Well, there are two parts to this: generating the code class and setting up the service connection information.</p>
<p>Generating the code class is easy—you use a command line to generate it. It was a little complex since I was generating it for asynchronous calls to the service, but this was nothing MSDN couldn’t help me with. Speaking of, here’s the documentation from MSDN: <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ms730059.aspx">http://msdn.microsoft.com/en-us/library/ms730059.aspx</a></p>
<p>The other part was sending up the binding endpoint. Most of the information I needed was generated when I generated the code file form the service. Now I just needed to determine how to put it all together. MSDN to the rescue yet again: <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ms733107.aspx">http://msdn.microsoft.com/en-us/library/ms733107.aspx</a></p>
<p>What I ended up doing was creating a CustomBinding and specifying the same information/objects the system would have created for me using the values in the config file:</p>
<pre><span>/// &lt;summary&gt;</span> <span>/// The wcf service reference member</span> <span>/// &lt;/summary&gt;</span> WindowsExperienceServiceClient experienceClient = <span>null</span>; CustomBinding myBinding = <span>new</span> CustomBinding(); myBinding.Elements.Add(Helpers.Globals.CustomServiceBinding); myBinding.Elements.Add(Helpers.Globals.CustomTransportBinding); experienceClient = <span>new</span> WindowsExperienceServiceClient( myBinding, Helpers.Globals.CustomEndPoint);</pre>
<p>The global bindings and endpoints:</p>
<pre><span>/// &lt;summary&gt;</span> <span>/// The binary encoding objct for the custom binding</span> <span>/// &lt;/summary&gt;</span> <span>public</span> <span>static</span> BinaryMessageEncodingBindingElement CustomServiceBinding { get { BinaryMessageEncodingBindingElement binaryEncoding = <span>new</span> BinaryMessageEncodingBindingElement(); binaryEncoding.MaxReadPoolSize = 64; binaryEncoding.MaxSessionSize = 2048; binaryEncoding.MaxWritePoolSize = 16; binaryEncoding.ReaderQuotas.MaxDepth = 32; binaryEncoding.ReaderQuotas.MaxStringContentLength = 8192; binaryEncoding.ReaderQuotas.MaxArrayLength = 16384; binaryEncoding.ReaderQuotas.MaxBytesPerRead = 4096; binaryEncoding.ReaderQuotas.MaxNameTableCharCount = 16384; <span>return</span> binaryEncoding; } } <span>/// &lt;summary&gt;</span> <span>/// The transport element for the custom binding</span> <span>/// &lt;/summary&gt;</span> <span>public</span> <span>static</span> HttpTransportBindingElement CustomTransportBinding { get { HttpTransportBindingElement transportBinding =  <span>new</span> HttpTransportBindingElement(); transportBinding.ManualAddressing = <span>false</span>; transportBinding.MaxBufferPoolSize = 524288; transportBinding.MaxReceivedMessageSize = 65536; transportBinding.AllowCookies = <span>false</span>; transportBinding.AuthenticationScheme =  System.Net.AuthenticationSchemes.Anonymous; transportBinding.BypassProxyOnLocal = <span>false</span>; <span>//decompressionEnabled="true" </span> transportBinding.HostNameComparisonMode =  HostNameComparisonMode.StrongWildcard; transportBinding.KeepAliveEnabled = <span>true</span>; transportBinding.MaxBufferSize = 65536; transportBinding.ProxyAuthenticationScheme =  System.Net.AuthenticationSchemes.Anonymous; transportBinding.Realm = <span>string</span>.Empty; transportBinding.TransferMode = TransferMode.Buffered; transportBinding.UnsafeConnectionNtlmAuthentication = <span>false</span>; transportBinding.UseDefaultWebProxy = <span>true</span>; <span>return</span> transportBinding; } } <span>/// &lt;summary&gt;</span> <span>/// the endpoint used for the service communication</span> <span>/// &lt;/summary&gt;</span> <span>public</span> <span>static</span> EndpointAddress CustomEndPoint { get { <span>return</span> <span>new</span> EndpointAddress( Properties.Resources.WEIServiceEndpoint); } }</pre>
<p>Yes, it is just that easy. All I had to do after that was setup the call completed handler and then call the service method and then it was all done.</p>
<h2>Conclusion</h2>
<p>This was a really fun and challenging project for us. While we’d worked extensively in Silverlight, the desktop development was relatively new to us. After getting our bearings, we found it pretty simple to translate our Web development skills to the desktop environment with WPF.</p>
<p>If you want to try this out, the download link for the source code is at the top of the article!</p>
<h2>About The Authors</h2>
<p>Lincoln Anderson, Peter Brownstein, and Peter Juchniewicz are all developers at <a rel="nofollow" target="_blank" href="http://www.352media.com/">web design company</a> <a rel="nofollow" target="_blank" href="http://www.352media.com/WebDesign.aspx">352 Media Group</a>. The company, which focuses on emerging technologies like <a rel="nofollow" target="_blank" href="http://www.352media.com/SilverlightDevelopment.aspx">Microsoft Silverlight Design</a>, <a rel="nofollow" target="_blank" href="http://www.352media.com/WindowsPhone7Apps.aspx">Windows Phone 7 App Development</a>, and <a rel="nofollow" target="_blank" href="http://www.352media.com/MicrosoftSurfaceDevelopment.aspx">Microsoft Surface Development</a>, has worked on other cool tools like the Coding4Fun <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/coding4fun/archive/2010/06/13/my_2D00_microsoft_2D00_teched_2D00_talk.aspx">Windows Phone 7 T-Shirt Cannon</a> and the <a rel="nofollow" target="_blank" href="http://tweetcraft.codeplex.com/">Tweetcraft WOW Twitter client</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/31/blog-post-building-the-windows-experience-index-share-site-%e2%80%93-weishare-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making Sites Look Their Best in Standards Mode</title>
		<link>http://win7insider.com/2010/08/24/making-sites-look-their-best-in-standards-mode/</link>
		<comments>http://win7insider.com/2010/08/24/making-sites-look-their-best-in-standards-mode/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 18:04:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/24/making-sites-look-their-best-in-standards-mode/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>IE has traditionally drawn a 2-pixel border around the content area of a site. This border, drawn as part of the page rather than IE&rsquo;s EA Shark &#8211; is very sophisticated <a href="http://www.forexeasystems.com">forex trading system from ForexEASystems.com</a>. frame, affects calculations of distance from the top and left of the page. It also creates a not-so-modern beveled look.</p>
<p>In the fourth Platform Preview, you&rsquo;ll notice pages running in IE9&rsquo;s Standards Mode no longer have the border of EA Shark &#8211; is very sophisticated <a href="http://www.forexeasystems.com">forex trading system from ForexEASystems.com</a>. It`s description is available on the official website.. Here&rsquo;s a before and after:</p>
<div> <b>Before</b><br /> <img src="http://ieblog.members.winisp.net/images/John_2PXBorder_1.png" alt="webpage with 2px border" /></div>
<div> <b>After</b><br /> <img src="http://ieblog.members.winisp.net/images/John_2PXBorder_2.png" alt="webpage with no border" /></div>
<p>Pages that run in legacy document modes will still have a 2-pixel border so that any site calculations dependent on the 2 pixels remain the same as in IE8.</p>
<p>To make sure your site runs in IE9 Standards Mode and gets this and all the other latest features in IE9, use a strict doctype. We recommend the <a rel="nofollow" target="_blank" href="http://www.w3.org/TR/html5-diff/#doctype">HTML5 doctype</a> (&lt;!DOCTYPE html&gt;) since it&rsquo;s simple and will put your site in Standards Mode in all current browsers.</p>
<p>John Hrvatin <br />Program Manager</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10049628" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/24/making-sites-look-their-best-in-standards-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft to Co-Chair New W3C Web Performance Working Group</title>
		<link>http://win7insider.com/2010/08/23/microsoft-to-co-chair-new-w3c-web-performance-working-group/</link>
		<comments>http://win7insider.com/2010/08/23/microsoft-to-co-chair-new-w3c-web-performance-working-group/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:04:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/23/microsoft-to-co-chair-new-w3c-web-performance-working-group/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Earlier this morning the W3C announced the formation of a new <a rel="nofollow" target="_blank" href="http://www.w3.org/2010/06/webperf.html">Web Performance Working Group</a> chartered with making it easier to accurately measure web application performance. Enabling web developers to understand the real world performance characteristics of their applications is critical to the success of HTML5, and we&rsquo;re excited to have been selected as co-chairs of the new working group alongside Google. We look forward to partnering with the W3C and the broader web community to enable these scenarios through an interoperable API.</p>
<p>The first deliverable for the working group is to recommend an API that measures the performance of browser navigations. The <a rel="nofollow" target="_blank" href="http://dev.w3.org/2006/webapi/WebTiming/">WebTimings specification</a> provides a good starting point for these capabilities, so this specification will move into the Web Performance Working Group and become the foundation for our recommendations.</p>
<p>The <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">third Internet Explorer 9 Platform Preview</a> was the first browser to <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/28/measuring-web-page-performance.aspx">implement these portions of the WebTimings specification</a>. Following standard conventions, we used a vendor prefix (ms) on the name because the specification was still under active development and hadn&rsquo;t been brought into the charter of any working group. Google also recently provided an early implementation of these API&rsquo;s <a rel="nofollow" target="_blank" href="http://blog.chromium.org/2010/07/do-you-know-how-slow-your-web-page-is.html">inside Chrome</a> using their vendor prefix (webkit). Through early collaboration between our engineering teams, we almost have interoperable implementations which is impressive for an API that has only been discussed for a few months. This is a great example of what&rsquo;s possible through collaborative partnerships at the W3C.</p>
<p>With two early implementations available, it shouldn&rsquo;t take long to finalize an interoperable API and remove the vendor prefixes. We can&rsquo;t do this alone though &#8211; the new working group needs your feedback to ensure we have the right design. Over the next few weeks we&rsquo;ll post more details on the working group website and begin to solicit feedback. In preparation, you can try out these API&rsquo;s using the <a rel="nofollow" target="_blank" href="http://www.ietestdrive.com/">IE9 Platform Preview</a> or Chrome 6 nightly builds. To help you get started take a look at the <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Performance/msPerformance/Default.html">msPerformance demo</a> on the IE9 TestDrive which shows these API&rsquo;s in action.</p>
<p>Jason Weber <br />Lead Program Manager for IE Performance</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10051688" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/23/microsoft-to-co-chair-new-w3c-web-performance-working-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE9, Opacity, and Alpha</title>
		<link>http://win7insider.com/2010/08/23/ie9-opacity-and-alpha/</link>
		<comments>http://win7insider.com/2010/08/23/ie9-opacity-and-alpha/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:04:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/23/ie9-opacity-and-alpha/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>IE9 introduces support for the <a rel="nofollow" target="_blank" href="http://www.w3.org/TR/css3-color/">CSS3 Color Module</a>, including its popular opacity property. As we have done with other standards-based features, opacity is implemented so that the same markup used in other browsers just works in IE9&rsquo;s &shy;standard mode.</p>
<p>Internet Explorer 8 and earlier versions implemented an alternative mechanism to apply opacity using the alpha filter of the IE-specific filter property. This creates a compatibility challenge because IE9&rsquo;s standard mode supports only opacity and <i>not</i> the alpha filter. (IE9&rsquo;s compatibility modes Quirks, 7, and 8 still support the alpha filter but do not implement opacity.)</p>
<p>For sites that use best practice feature detection, this is not a problem. They will detect that opacity is supported in IE9 and use it instead of filter. <b>The problem is</b> with sites that use <i>browser detection</i> and mistakenly assume that IE always uses filter alpha instead of opacity and then change only the filter property in script. The opacity effect will appear broken in those Web pages when run in IE9&rsquo;s default 9 document mode. <b>The fix is</b> to detect the standards-based opacity feature first and browser-specific filter feature second <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/04/14/same-markup-writing-cross-browser-code.aspx">as we&rsquo;ve described in previous posts</a>.</p>
<p><strong>Example Best Practice CSS</strong></p>
<div>
<pre><span>.fiftyPercentOpaque</span>{ opacity: <span>0.5;</span> filter: alpha(opacity=50);} </pre>
</div>
<h5>Example Best Practice Code</h5>
<div>
<pre><span>// set flags for whether we should use opacity or filter with</span><span>// this browser (or browser mode). we prefer opacity.</span><span>var</span> useOpacity = (<span>typeof</span> document.createElement(<span>"div"</span>).style.opacity != <span>'undefined'</span>);<span>var</span> useFilter = !useOpacity &amp;&amp; (<span>typeof</span> document.createElement(<span>"div"</span>).style.filter != <span>'undefined'</span>);

<span>function</span> setOpacity(el, value) { <span>// let el be either an element object or an id string</span> <span>if</span> (<span>typeof</span> el == <span>'string'</span>) el = document.getElementById(el);

 <span>// ensure value is in [0-1] range</span> value = Math.min(1, Math.max(value, 0));

 <span>// set opacity or filter alpha depending on what's supported</span> <span>if</span> (useOpacity) el.style.opacity = value; <span>else</span> <span>if</span> (useFilter) el.style.filter = <span>"alpha(opacity="</span> + (value * 100) + <span>")"</span>;}</pre>
</div>
<h5>Alternative Browser-detection Code</h5>
<p>In general, we prefer feature detection to browser detection but we&rsquo;ve see a lot of opacity-related code use browser detection instead of feature detection.&nbsp; If you have a site that does that today, you may find it easier to update your browser detection so it works with IE9. Here&rsquo;s code that properly detects when IE is running in a browser mode less than 9&rsquo;s standards mode.</p>
<div>
<pre><span>function</span> browserDetectSetOpacity(el, value) { <span>// let el be either an element object or an id string</span> <span>if</span> (<span>typeof</span> el == <span>'string'</span>) el = document.getElementById(el);

 <span>// ensure value is in [0-1] range</span> value = Math.min(1, Math.max(value, 0));

 <span>if</span> (navigator.userAgent.match(/&#92;bMSIE&#92;b/) &amp;&amp; (!document.documentMode || document.documentMode &lt; 9)) el.style.filter = <span>"alpha(opacity="</span> + (value * 100) + <span>")"</span>; <span>else</span> el.style.opacity = value;}</pre>
</div>
<h5>Summary</h5>
<p>The problem described above occurs only when the opacity of an element is changed using script that doesn&rsquo;t detect whether opacity is supported before changing filter. Sites that use only declarative CSS markup will continue to work fine even when opacity is changed indirectly by changing the CSS class of an element or using a pseudo-class such as :hover.</p>
<p><a rel="nofollow" target="_blank" href="http://www.w3schools.com/">W3Schools</a> offers a <a rel="nofollow" target="_blank" href="http://w3schools.com/Css/css_image_transparency.asp">clear explanation</a> of CSS opacity and IE&rsquo;s legacy alpha filter.</p>
<p>&mdash;Ted Johnson, Program Manager Lead for Web Graphics</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10051178" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/23/ie9-opacity-and-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add-ons, and Opting out of Google Analytics Without Them</title>
		<link>http://win7insider.com/2010/08/23/add-ons-and-opting-out-of-google-analytics-without-them/</link>
		<comments>http://win7insider.com/2010/08/23/add-ons-and-opting-out-of-google-analytics-without-them/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:04:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/23/add-ons-and-opting-out-of-google-analytics-without-them/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Recently, Google made available the &ldquo;<a rel="nofollow" target="_blank" href="http://tools.google.com/dlpage/gaoptout">Google Analytics Opt-out Browser Add-on</a>.&rdquo; This add-on enables consumers to &ldquo;indicate that information about the website visit should not be sent to Google Analytics.&rdquo; We agree that making it easy for consumers to protect their privacy is good, and Internet Explorer offers a <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2008/08/25/ie8-and-privacy.aspx">variety</a> of <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/08/01/online-privacy-tracking-and-ie8-s-inprivate-filtering.aspx">features</a> to help keep you in <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ieinternals/archive/2010/06/05/understanding-internet-explorer-cookie-controls.aspx">control</a> of your information when visiting websites. In this post, we describe how to use some of these built in features to accomplish the same outcome without installing a Browser Helper Object and the Google Update Service.</p>
<p>Users of Internet Explorer 7 and 8 (and soon 9) who wish to prevent Google Analytics&rsquo; script from running can follow these steps: </p>
<ol>
<li>In Internet Explorer, open the <strong>Tools </strong><img src="http://ieblog.members.winisp.net/images/EricLaw_GoogleOptOut_1.png" alt="tool icon" /> menu and click <b>Internet Options</b>. </li>
<li>Click the <b>Security</b> tab and then click the <b>Restricted Sites </b>icon. </li>
<li>Click the <b>Sites</b> button. </li>
<li>In the box at the top, add <b>*.google-analytics.com</b> and push the <b>Add</b> button. </li>
<li>Click the Close button, and then the OK button to dismiss Internet Options. </li>
</ol>
<p>After this configuration change, script from the Google Analytics website will not run on any webpage, and cookies will never be sent to the Google Analytics server.</p>
<p><img src="http://ieblog.members.winisp.net/images/EricLaw_GoogleOptOut_2.png" alt="Internet Options Restricted Sites dialog" /></p>
<p>How does this simple procedure work?&nbsp; In IE7, we made a <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2006/03/15/552246.aspx">minor change to the Restricted Sites zone</a>. IE will not run scripts that originate from sites the user places in the Restricted zone. </p>
<p>To protect your privacy further, IE will not send cookies to sites in the Restricted Sites zone.&nbsp; In general, you can block script from any other domains by also adding those domains to the Restricted Sites zone.</p>
<p>Add-ons are useful and important. They are also a key cause of <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/08/03/add-on-performance-part-1-measuring-add-on-performance.aspx">performance</a>, <a rel="nofollow" target="_blank" href="http://www.apple.com/hotnews/thoughts-on-flash/">stability</a>, and security issues for <a rel="nofollow" target="_blank" href="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/">all browsers</a>. A more trustworthy approach involves building more functionality into the core browser and relying more on <i>data</i> (in the form of declarative descriptions, like XML) than <i>code</i> to extend the browser. For example, <a rel="nofollow" target="_blank" href="http://www.ieaddons.com/en/accelerators">Accelerators</a> in IE are XML descriptions of how to get a map, rather than arbitrary script that can get a map and possibly do more (like slow down the browser, or share more information than you&rsquo;d like). <a rel="nofollow" target="_blank" href="http://www.ieaddons.com/en/webslices">Webslices</a> are XML descriptions of parts of a webpage to show on IE&rsquo;s Favorites Bar, rather than arbitrary script that can modify IE&rsquo;s user interface and possibly do <a rel="nofollow" target="_blank" href="http://www.eweek.com/c/a/Security/Mozilla-Firefox-Addon-Pulled-for-Stealing-Passwords-399326/">more than that</a> under the hood. </p>
<p>In this situation, rather than install and run a lot of additional software on the machine, people can just add a web site to the Restricted Sites zone. Similarly, InPrivate Filtering in IE8 (and IE9) supports Importing and Exporting lists of sites that the user doesn&rsquo;t want to exchange information with. That&rsquo;s a simpler, safer, faster and more reliable approach than running more code. </p>
<p>Eric Lawrence <br />Program Manager</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10050655" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/23/add-ons-and-opting-out-of-google-analytics-without-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add-on Guidelines and Requirements in Action – Upgrade Advisor</title>
		<link>http://win7insider.com/2010/08/23/add-on-guidelines-and-requirements-in-action-%e2%80%93-upgrade-advisor/</link>
		<comments>http://win7insider.com/2010/08/23/add-on-guidelines-and-requirements-in-action-%e2%80%93-upgrade-advisor/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:04:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/23/add-on-guidelines-and-requirements-in-action-%e2%80%93-upgrade-advisor/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>We’ve <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/ie/archive/2009/09/09/guidelines-for-add-on-developers.aspx">blogged</a> in the past about <a rel="nofollow" target="_blank" href="http://go.microsoft.com/fwlink/?LinkId=159651">guidelines and requirements</a> that we’ve published to help add-on developers create quality add-ons.&#160; We wrote these guidelines based on years of providing support to users and developers in response to questions from the developer community. </p>
<p>We’ve shared <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/05/25/add_2d00_on-guidelines-and-requirements-in-action-google-toolbar.aspx">several</a> <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/01/14/add-on-guidelines-in-action-crawler-toolbar.aspx?PageIndex=1">great</a> <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2009/10/06/add-on-guidelines-in-action-avg-security-toolbar.aspx">examples</a> of these guidelines and requirements in action in the past few months. As part of IE’s cumulative security updates, we’ve released an update to the Internet Explorer Upgrade Advisor list that helps users update to new versions of add-ons that follow the guidelines and requirements. In this post, we highlight the latest add-ons that have made changes based on the guidelines and requirements, and we describe the Upgrade Advisor user experience in detail.</p>
<p>It’s been encouraging to see more add-ons recently release new versions with improvements in functionality based on these guidelines and requirements. As more developers follow them, our users will have a better experience. Here are some of the add-ons that have made changes to their functionality:<br />
<table border="0" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td valign="top" width="203"><b>Add-on Name</b> </td>
<td valign="top" width="102"><b>New Version</b> </td>
</tr>
<tr>
<td valign="top" width="203"><b>AOL Toolbar</b> </td>
<td width="102">5.74.1.5498 </td>
</tr>
<tr>
<td valign="top" width="203"><b>Ask Toolbar</b> </td>
<td width="102">5.6.2.119 </td>
</tr>
<tr>
<td valign="top" width="203"><b>BuySafe Shopping Advisor Toolbar</b> </td>
<td width="102">5.0.1.366 </td>
</tr>
<tr>
<td valign="top" width="203"><b>Comcast Toolbar</b> </td>
<td width="102">1.0.0.17 </td>
</tr>
<tr>
<td valign="top" width="203"><b>Quero Toolbar</b> </td>
<td width="102">5.0.0.5 </td>
</tr>
<tr>
<td valign="top" width="203"><b>XFinity Toolbar</b> </td>
<td width="102">1.0.0.17 </td>
</tr>
<tr>
<td valign="top" width="203"><b>Yandex.Bar</b> </td>
<td width="102">5.1.2.1189 </td>
</tr>
</tbody>
</table>
<p>It’s important to update users to the new versions of these add-ons so they can benefit from improved stability and compatibility. Today we released an updated Upgrade Advisor list with IE’s Cumulative Security Updates to help users do just that. Users who have specific versions of the above add-ons may see the Upgrade Advisor dialog box when they launch Internet Explorer 8:</p>
<p> <img alt="IE Upgrade Advisor Dialog" src="http://ieblog.members.winisp.net/images/Herman_AddOnGuidelines.png" />
<p>The dialog box presents the user with three options to choose from:</p>
<blockquote><p><b>Option 1: Check online for an update</b> <br />When the user selects this option or closes the dialog without making a choice, the dialog box is dismissed and a web page is displayed in a new window that runs in No Add-ons Mode. The user can follow the steps in this web page to install the new version of the add-on. If a link to the new version of the add-on is not provided by the vendor, or the new version does not follow the guidelines and requirements, the web page will inform the user that no update is available yet. </p>
<p><b>Option 2: Always open Internet Explorer without this add-on</b> <br />When the user selects this option, Internet Explorer disables the add-on, the dialog box is dismissed, and Internet Explorer continues to launch.</p>
<p><b>Option 3: Keep using this add-on anyway</b> <br />When the user selects this option, the dialog box is dismissed and Internet Explorer continues to launch with the add-on enabled until the next refresh of the Upgrade Advisor list which occurs approximately every 8 weeks. </p>
</blockquote>
<p>Many thanks to the teams that have made changes to follow the guidelines and requirements. We will continue to work with add-on vendors to help them release new versions of add-ons that have better stability, compatibility and performance.</p>
<p>Herman Ng <br />Program Manager</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10049104" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/23/add-on-guidelines-and-requirements-in-action-%e2%80%93-upgrade-advisor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE August Cumulative Security Update Now Available</title>
		<link>http://win7insider.com/2010/08/23/ie-august-cumulative-security-update-now-available/</link>
		<comments>http://win7insider.com/2010/08/23/ie-august-cumulative-security-update-now-available/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:04:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/23/ie-august-cumulative-security-update-now-available/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>The <a rel="nofollow" target="_blank" href="http://www.microsoft.com/technet/security/bulletin/MS10-053.mspx">IE Cumulative Security Update for August 2010</a> is now available via <a rel="nofollow" target="_blank" href="http://windowsupdate.microsoft.com/">Windows Update</a>. This security update resolves six privately reported vulnerabilities in Internet Explorer. The most severe vulnerabilities could allow remote code execution if a user views a specially crafted Web page using Internet Explorer. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.</p>
<p>This security update is rated Critical for Internet Explorer 6, Internet Explorer 7, and Internet Explorer 8. The security update addresses the vulnerabilities by modifying the way that Internet Explorer enforces security checks and handles objects in memory. For more information about the vulnerabilities, please see the full <a rel="nofollow" target="_blank" href="http://www.microsoft.com/technet/security/bulletin/MS10-053.mspx">bulletin</a>. </p>
<p>The majority of customers have automatic updating enabled and will not need to take any action because this security update will be downloaded and installed automatically. Customers who have not enabled automatic updating need to check for updates and install this update manually. For information about specific configuration options in automatic updating, see <a rel="nofollow" target="_blank" href="http://support.microsoft.com/kb/294871">Microsoft Knowledge Base Article 294871</a>.</p>
<p>For administrators and enterprise installations, or end users who want to install this security update manually, Microsoft recommends that customers apply the update immediately using update management software, or by checking for updates using the <a rel="nofollow" target="_blank" href="http://go.microsoft.com/fwlink/?LinkID=40747">Microsoft Update</a> service.</p>
<p>Tyson Storey <br />Program Manager</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10048628" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/23/ie-august-cumulative-security-update-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5, Modernized: Fourth IE9 Platform Preview Available for Developers</title>
		<link>http://win7insider.com/2010/08/23/html5-modernized-fourth-ie9-platform-preview-available-for-developers/</link>
		<comments>http://win7insider.com/2010/08/23/html5-modernized-fourth-ie9-platform-preview-available-for-developers/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:04:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2010/08/23/html5-modernized-fourth-ie9-platform-preview-available-for-developers/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>IE9 started from the premise that the modern web will deliver HTML5 experiences that feel more like native applications than sites. Building on <a rel="nofollow" target="_blank" href="http://mashable.com/2010/06/25/ie9-chrome-firefox/">hardware-accelerated SVG, canvas, video</a>, audio, and text, developers will use <a rel="nofollow" target="_blank" href="http://www.informationweek.com/news/software/showArticle.jhtml?articleID=225701362">the power</a> of <a rel="nofollow" target="_blank" href="http://www.wired.com/epicenter/2010/06/new-hardware-accelerated-ie9-previewarrives/">the whole PC</a> to achieve great performance. On the modern web, developers will use the same markup across different HTML5 browsers. </p>
<p>With IE9, we have worked much more closely with the developer community. Developers have had <a rel="nofollow" target="_blank" href="http://www.webstandards.org/2010/06/28/ie9-looks-reall-promising/">an earlier</a> (and more frequently updated) <a rel="nofollow" target="_blank" href="http://twitter.com/shelleypowers/status/16878942029">look at the platform</a>. With that early engagement, <a rel="nofollow" target="_blank" href="http://twitter.com/standardistas/status/17322874492">developer feedback</a> has had a <a rel="nofollow" target="_blank" href="http://forabeautifulweb.com/blog/about/internet_explorer_9_in_on_the_boil/">bigger impact</a> than before. People have downloaded IE9 Platform Previews over 2.5 million times. The samples on the IE Test Drive site have had over 20 million visitors. We appreciate the <a rel="nofollow" target="_blank" href="http://twitter.com/Malarkey/status/16914520327">positive feedback</a> and all the <a rel="nofollow" target="_blank" href="http://www.quirksmode.org/blog/archives/2010/06/ies_big_leap_fo.html">specific issues</a> logged in Connect. They’ve helped us make demonstrable improvements that the community has noticed.</p>
<p>The <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/">fourth Platform Preview</a> of Internet Explorer 9, available now, shows the opportunity of fully hardware-accelerated HTML5. You can run new test drive samples that show modern SVG and native JavaScript integration in action. In March, we promised to deliver platform preview releases approximately every eight weeks. With this installment, you will find more performance and more support for same markup. You’ll also find many fixes to issues reported in previous Platform Previews. Here is a video of some of the test drive samples: </p>
<blockquote><p>    <a rel="nofollow" target="_blank" href="http://go.microsoft.com/fwlink/?LinkID=124807"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none" /> </a> </p></blockquote>
<p><i>Note this video uses the HTML5 video tag (with the H.264 codec) if your browser supports it, and falls back to other methods otherwise. It’s a good example of same markup in action.</i></p>
<h4>Fully Hardware-Accelerated HTML5 </h4>
<p>The performance benefits of hardware acceleration are <a rel="nofollow" target="_blank" href="http://news.softpedia.com/news/IE9-Pedal-to-the-Metal-to-the-Turbo-Charged-Future-of-the-Internet-146122.shtml">clear from running different sample sites</a> side by side in IE9 and other browsers. Browsers that implement partial hardware acceleration – for example, text-only, or video-playback only, or image-only acceleration – offer inconsistent and possibly unpredictable platform experiences to developers and end-users. </p>
<p>IE9 offers consistent, fully hardware-accelerated text, graphics, and media, both audio and video. Try <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Performance/HamsterDanceRevolution/Default.html">Hamster Dance Revolution</a>, <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Graphics/IEBeatz/Default.xhtml">IE Beatz</a>, or <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Graphics/MSNBC/Default.xhtml">MSNBC Video</a> in different browsers to experience the difference. <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Performance/PsychedelicBrowsing/Default.html">Psychedelic Browsing</a> demonstrates what HTML5 canvas can do when it’s fully accelerated with the GPU.</p>
<blockquote><p><img alt="IE9 PPB4 and Firefox 4 showing the Psychedelic Browsing demo. IE9 gets 1789 revolutions per minute, FF4 gets 829 rpm" src="http://ieblog.members.winisp.net/images/Dean_PPB4_2.png" /> </p>
<p><img alt="IE9 PPB4 and Chrome 6 showing the IE Beatz demo, IE9 gets 36 frames per second and 160 beats per minute, Chrome 6 gets 7 FPS and 115 BPM" src="http://ieblog.members.winisp.net/images/Dean_PPB4_3.png" /> </p>
<p><img alt="IE9 PPB4 and Chrome 6 showing Hamster Dance Demo, IE9 gets 41 fps Chrome 6 gets 4 fps" src="http://ieblog.members.winisp.net/images/Dean_PPB4_4.png" /> </p></blockquote>
<h4>Modern SVG</h4>
<p>With Platform Preview 4, we’re excited to show highly-interactive and integrated, or modern, SVG. Typically, developers think of SVG as the graphics format for static engineering diagrams and images. With HTML5 and hardware acceleration, SVG is an excellent choice for a new class of interactive, animated scenarios. </p>
<p>You can see great SVG performance, animated via JavaScript, with the <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Performance/SVGDice/Default.xhtml">SVG Dice example</a>. The sample shows striking performance differences between browsers animating the same SVG markup, as well as the benefits of being able to style SVG with CSS. Unfortunately, you can see <a rel="nofollow" target="_blank" href="http://samples.msdn.microsoft.com/ietestcenter/#svg11e2">differences in how different browsers display the same SVG</a>; as an industry we have more work to do so the same markup delivers the same results. </p>
<h4>Native JavaScript Integration </h4>
<p>We’re committed to the <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">right foundation</a> for HTML5 applications, including <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx">performance</a> and ensuring the <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/05/05/html5-and-same-markup-second-ie9-platform-preview-available-for-developers.aspx">same markup</a> and <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/25/javascript-same-code-and-a-standardized-test-suite.aspx">same script</a> work across browsers. One aspect of doing these things well is integrating the JavaScript engine natively <i>inside</i> the browser, rather than bolting it onto the side to support <a rel="nofollow" target="_blank" href="http://code.google.com/apis/v8/embed.html">multiple</a> <a rel="nofollow" target="_blank" href="http://trac.webkit.org/wiki/SquirrelFish">JavaScript engines</a> as some other browsers do today. How a JavaScript engine is integrated into the browser is as important as the engine itself for real-world HTML5.</p>
<p>The fourth Platform Preview moves the <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/03/18/the-new-javascript-engine-in-internet-explorer-9.aspx">new JavaScript engine</a>, codenamed Chakra, inside IE9 and brings them together into one single, integrated system.</p>
<p>Through this deep integration, the performance of real world websites significantly improves, and IE9 becomes the first browser to have a shared DOM between the browser and the script engine based on ECMAScript5. The benefits start with real-world performance and consistency. </p>
<p>The easiest way to understand the importance of this fundamental change is by looking at how earlier versions of Internet Explorer integrated JavaScript. For the last 15 years Internet Explorer has supported multiple programming languages including JScript, VBScript, and even specialized languages such as Perl. While this gave developers choice it also came at the cost of performance and features. The browser and these script engines communicated through <a rel="nofollow" target="_blank" href="http://www.microsoft.com/com/default.mspx">COM</a> which <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2007/01/04/ie-jscript-performance-recommendations-part-3-javascript-code-inefficiencies.aspx">could cause performance problems</a>. Each script engine had its own language specific view of the DOM which <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ericlippert/archive/2004/10/07/239289.aspx">created discrepancies</a>. Additionally, the browser was forced to use a least common denominator approach which made adding new features challenging.</p>
<p> <img alt="Diagram of IE8 vs IE9 JavaScript Integration Model. In IE8 the JavaScript engine was outside of IE, in IE9 the JavaScript engine is inside IE and shares the IE DOM" src="http://ieblog.members.winisp.net/images/Dean_PPB4_5.png" />
<p>In the fourth Platform Preview, we’ve moved the JavaScript engine inside IE9. With this change, communication between the browser and script engine is now direct, which significantly improves performance for real world websites. We now have a single DOM, shared across all browser subsystems including JavaScript. This change ensures a consistent and interoperable view of the document. And this single DOM is now based on ES5, which prepares the entire system for the future.</p>
<p>When programming the IE9 DOM from JavaScript, objects now feel like native ES5 objects because, underneath the covers, they actually are ES5 objects. This approach brings the benefits of ECMAScript5 to the DOM. With the fourth Platform Preview, IE9 becomes the first browser to have a fully discoverable DOM through ES5 reflection features. IE9 is the first browser to apply ES5 bindings to DOM objects, enabling a full Inheritance view of the DOM, and taking advantage of the <a rel="nofollow" target="_blank" href="http://www.w3.org/TR/WebIDL/">WebIDL specification</a> as the foundation for this support. Together, these changes provide developers a natural ES5 based programming model. Try some of these <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/HTML5/DOMCapabilities/Default.html">enhanced DOM capabilities</a> out for yourself to see how well your browser’s DOM and JavaScript engine are integrated. IE9 will continue to support additional programming languages through the legacy model, but we strongly encourage developers and enterprises to take full advantage of the benefits of JavaScript moving forward.</p>
<p>Platform Preview 4 also continues improvements to the JavaScript engine itself. One measure of JavaScript performance is the Webkit Sunspider microbenchmark. Here is a <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/benchmarks/SunSpider/Default.html">chart</a> of the latest results:</p>
<p> <img alt="WebKit Sunspider Results from 8/2/10, IE9 PPB4 get's 4th" src="http://ieblog.members.winisp.net/images/Dean_PPB4_6.png" longdesc="http://ie.microsoft.com/testdrive/benchmarks/SunSpider/Default.html" />
<p>The differences between browsers on this microbenchmark are converging within <i>thousandths</i> of seconds on tests that repeat operations many, many times to find any differences at all. </p>
<p>Real-world HTML5 performance often reflects the entire browser’s performance, not just the JavaScript engine in isolation. <a rel="nofollow" target="_blank" href="http://www.downloadsquad.com/2010/06/23/internet-explorer-9-vs-chrome-6-developer-video-speed-benchmark/">This video</a>, for example, shows a side by side comparison of different browsers running an HTML5 canvas. The performance differences between browsers are striking and do not reflect relative JavaScript performance. We encourage other browser vendors to consider following our lead in designing for end-to-end performance and natively integrating JavaScript engines rather than treating script as a <a rel="nofollow" target="_blank" href="http://www2.webkit.org/perf/sunspider-0.9.1/sunspider.html">separable subsystem</a> to be optimized in isolation. </p>
<h4>Same Markup, and Tests </h4>
<p>To assess the quality and completeness of a browser’s standards support, we look to the official standards bodies. Their open, consensus-based process is the best way to bring the community of browser vendors and web developer and design professionals together in building a test suite. </p>
<p>With Platform Preview 4, we’re contributing 519 new tests to the standards bodies. Based on community <a rel="nofollow" target="_blank" href="http://lists.w3.org/Archives/Public/public-html-testsuite/2010Jun/0039.html">feedback</a>, we’ve also updated five of the previously submitted tests. This brings the total number of tests we’ve contributed during IE9 development to 2,138. We welcome your feedback on the specific test cases. Please continue to provide feedback on the test cases to the appropriate W3C working group. In case of ES5 test cases please provide test case specific feedback via <a rel="nofollow" target="_blank" href="https://connect.microsoft.com/IE">Microsoft Connect</a>. We also invite you to submit your own test cases to the standards bodies as well. You can find the test cases Microsoft has developed at the <a rel="nofollow" target="_blank" href="http://go.microsoft.com/?linkid=9721785">IE Test Center</a>. </p>
<p>These test cases represent a strong start on a complete and comprehensive test suite of the web standards developers expect to work consistently across browsers. While the suite is not complete yet, it is interesting to note how interoperable some of the same markup is across different browsers:</p>
<p> <img alt="Cross Browser Test Results Summary from IETest" src="http://ieblog.members.winisp.net/images/Dean_PPB4_7.png" longdesc="http://samples.msdn.microsoft.com/ietestcenter/" />
<p>Some people use a particular test or website as shorthand for standards compliance. Different sites test different subsets of different standards to different depths. <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/benchmarks/Acid3/Default.html">Acid3</a> is one that some people in the community have cited. It tests about 100 fragments of a dozen different technologies. Here’s a screenshot of how today’s IE9 Platform Preview runs today’s Acid3 test, going from 83 in the previous platform preview to 95:</p>
<p><img alt="IE9 PPB4 showing Acid3 score of 95/100" src="http://ieblog.members.winisp.net/images/Dean_PPB4_8.png" /> </p>
<p>As IE9 has implemented more of the standards that developers use and value, IE9’s Acid3 score has continued to rise. The remaining points involve two particular technologies (SVG Fonts and <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/SVG_animation">SMIL animation of SVG</a>) that are in transition. </p>
<p>Support for SVG Fonts in the web development and font communities has been <a rel="nofollow" target="_blank" href="http://weblogs.mozillazine.org/roc/archives/2010/06/not_implementin.html">declining</a> for some time. There’s already been <a rel="nofollow" target="_blank" href="http://krijnhoetmer.nl/irc-logs/whatwg/20100625#l-206">discussion</a> without objection of <a rel="nofollow" target="_blank" href="http://krijnhoetmer.nl/irc-logs/whatwg/20100625#l-151">dropping SVG fonts</a> from the Acid3 test. The community has put forth a proposal in the SVG Working Group to give <a rel="nofollow" target="_blank" href="http://www.w3.org/2010/05/31-svg-minutes.html#item02">SVG Fonts optional status</a>. </p>
<p>Instead, developers can use the Web Open Font Format (<a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/WOFF">WOFF</a>, supported in IE9 Platform Preview 3 as well as other browsers) for both HTML and SVG content. It works well in conjunction with the CSS3 Fonts module and has broad support from leading font vendors (e.g. <a rel="nofollow" target="_blank" href="http://fontfeed.com/archives/ipad-typography/">here</a>, “a majority of font makers have already settled on <a rel="nofollow" target="_blank" href="http://people.mozilla.com/~jkew/woff/woff-2009-09-16.html">WOFF</a> or services like <a rel="nofollow" target="_blank" href="http://fontfeed.com/archives/fontfonts-on-the-web-starting-today/">Typekit</a> as their format of choice”). WOFF fonts are a better long-term solution for many reasons <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/07/15/the-css-corner-better-web-typography-for-better-design.aspx">discussed previously</a>. </p>
<p>Similarly, support for <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language#SMIL.2BSVG">SMIL</a> animation of SVG in the web development community is far from strong. The leader of the SVG standardization effort <a rel="nofollow" target="_blank" href="http://www.w3.org/blog/SVG/2010/06/07/ie9_suport">wrote that <i>not</i> supporting SMIL</a> in its current state is probably best “since the SVG WG intends to coordinate with the CSS WG to make some changes to animation and to extend filters.” There’s already work started to <a rel="nofollow" target="_blank" href="http://www.w3.org/2010/fx/effects-task-force.html">reconcile CSS3 animations and SVG</a>. Developers interested in animating SVG can use JavaScript, as the samples in the test drive site do today, with consistent results.</p>
<h4>Getting sites ready for Beta </h4>
<p>With the fourth Platform Preview, we strongly recommend developers, designers, and partners to start getting your sites ready for the IE9 Beta.</p>
<ul>
<li><b>Test your site in IE9 Standards Mode</b>.&#160; This mode provides the best performance and interoperability and will offer additional benefits in the IE9 Beta. We suggest using the <a rel="nofollow" target="_blank" href="http://www.w3.org/TR/html5-diff/#doctype">HTML5 doctype</a>. More details <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for-site-developers.aspx">here</a> and <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/04/13/running-today-s-different-markup.aspx">here</a>. </li>
<li><b>We recommend sending IE9 the same standards-based markup your site sends other browsers</b>. More details <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/04/14/same-markup-writing-cross-browser-code.aspx">here</a> and <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/10/same-markup-explaining-quot-jscript-version-quot-and-styling-new-html5-elements.aspx">here</a>. From the feedback so far, and our experience with sites, the best way to get your site working in IE9 Standards Mode is to start from the same markup other browsers receive rather than IE6, IE7, or IE8 markup. </li>
<li><b>Use </b><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/04/14/same-markup-writing-cross-browser-code.aspx"><b>feature</b></a><b> </b><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/10/same-markup-explaining-quot-jscript-version-quot-and-styling-new-html5-elements.aspx"><b>detection</b></a><b>, not browser detection </b>to handle any cross browser differences in behavior or feature support.&#160; This keeps your site working even as browsers change. </li>
<li><b>Please continue to report issues on Connect</b> if your site doesn’t look or work right, and you’re giving it the same code as you’re giving to other modern browsers. With IE9 Platform Preview 4, we’ve fixed over 100 community-reported issues. We will fix even more between now and the IE9 beta and want your feedback. </li>
<li><b>Consider the experience for IE9 Beta users</b> if you find that sending the same markup creates more issues than you can resolve in your production site. It is possible that <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for-site-developers.aspx">running your site in Compatibility View</a> is better for your users. </li>
<li><b>Take advantage of HTML5, CSS3, SVG, DOM, ES5</b>, and more… all described here in the <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/ie/ff468705.aspx">developer guide</a>.&#160; We’re excited to run the amazing experiences you bring to the web using these new capabilities, taking advantage of hardware through IE9. </li>
</ul>
<p>Platform Preview 4 is an important milestone on the way to beta. It is the last preview before the IE9 Beta. The IE9 platform is nearly complete. We ask that developers and partners start testing in preparation for the beta and prepare their sites to take advantage of IE9’s new capabilities. We continue to welcome your feedback via Connect.</p>
<p>Thanks, <br />Dean Hachamovitch <br />General Manager, Internet Explorer</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10045632" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2010/08/23/html5-modernized-fourth-ie9-platform-preview-available-for-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
