<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WER Services</title><link>http://blogs.msdn.com/wer/default.aspx</link><description>This blog focuses on technologies that support Windows Error Reporting and Windows Quality data.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Microsoft PDC 2009</title><link>http://blogs.msdn.com/wer/archive/2009/11/19/microsoft-pdc-2009.aspx</link><pubDate>Thu, 19 Nov 2009 18:21:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9925638</guid><dc:creator>khill</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wer/comments/9925638.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9925638</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9925638</wfw:comment><description>&lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:26ccb24c-b147-42bf-b057-cf45d9a07c8f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/pdc09" rel="tag"&gt;pdc09&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PDC" rel="tag"&gt;PDC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft+PDC" rel="tag"&gt;Microsoft PDC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PDC+2009" rel="tag"&gt;PDC 2009&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Error+Reporting" rel="tag"&gt;Windows Error Reporting&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Watson" rel="tag"&gt;Watson&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WER" rel="tag"&gt;WER&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Developer" rel="tag"&gt;Developer&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Quality" rel="tag"&gt;Quality&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Software" rel="tag"&gt;Software&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Development" rel="tag"&gt;Development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+7" rel="tag"&gt;Windows 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VS+2010" rel="tag"&gt;VS 2010&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET+4.0" rel="tag"&gt;.NET 4.0&lt;/a&gt;&lt;/div&gt; &lt;/p&gt;  &lt;p&gt;I had a chance to present a lunch session at Microsoft PDC 2009 this year!&lt;/p&gt;  &lt;p&gt;&lt;a title="http://microsoftpdc.com/Sessions/CL33" href="http://microsoftpdc.com/Sessions/CL33"&gt;http://microsoftpdc.com/Sessions/CL33&lt;/a&gt; – This talk starts with creating a better customer experience around software failures using the Application Restart and Recovery (ARR) API, to downloading and debugging mini-dumps send in from customers, to creating customer responses pointing to updates and fixes.&lt;/p&gt;  &lt;p&gt;Steven Sinofsky highlighted the importance of Windows Error Reporting and how Microsoft uses this technology to build Windows in his keynote at PDC 2009&lt;/p&gt;  &lt;p&gt;Some of his talk was summarized in this CNET article:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“Sinofsky is talking about the different mechanisms Microsoft uses from Windows Error Reporting, or Watson, to its Software Quality Monitor. Sinofsky notes that the monitoring tools require the user's permission in the final versions of Windows.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://news.cnet.com/8301-13860_3-10400476-56.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-5" href="http://news.cnet.com/8301-13860_3-10400476-56.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-5"&gt;http://news.cnet.com/8301-13860_3-10400476-56.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-5&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here is Sinofsky’s keynote: &lt;a href="http://microsoftpdc.com/Sessions/KEY02"&gt;http://microsoftpdc.com/Sessions/KEY02&lt;/a&gt; (00:15:32, starts with Telemetry)&lt;/p&gt;  &lt;p&gt;Other blog entries:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.pcmag.com/miller/2009/11/pdc09_sinofsky_talks_about_cre.php" href="http://blogs.pcmag.com/miller/2009/11/pdc09_sinofsky_talks_about_cre.php"&gt;http://blogs.pcmag.com/miller/2009/11/pdc09_sinofsky_talks_about_cre.php&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/e7/archive/2009/05/11/OurNextEngineeringMilestone2.aspx" href="http://blogs.msdn.com/e7/archive/2009/05/11/OurNextEngineeringMilestone2.aspx"&gt;http://blogs.msdn.com/e7/archive/2009/05/11/OurNextEngineeringMilestone2.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9925638" width="1" height="1"&gt;</description></item><item><title>!Analyze – Automatic Root Cause Analysis</title><link>http://blogs.msdn.com/wer/archive/2009/09/29/analyze-automatic-root-cause-analysis.aspx</link><pubDate>Tue, 29 Sep 2009 20:19:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9900893</guid><dc:creator>khill</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wer/comments/9900893.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9900893</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9900893</wfw:comment><description>&lt;p&gt;Meet the two engineers behind the !Analyze windows debugger extension!&lt;/p&gt;  &lt;p&gt;&lt;a title="http://channel9.msdn.com/posts/Charles/David-Grant-and-Ryan-Kivett-Analyze-Automatic-Root-Cause-Analysis/" href="http://channel9.msdn.com/posts/Charles/David-Grant-and-Ryan-Kivett-Analyze-Automatic-Root-Cause-Analysis/"&gt;http://channel9.msdn.com/posts/Charles/David-Grant-and-Ryan-Kivett-Analyze-Automatic-Root-Cause-Analysis/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;!Analyze is an automatic root cause analysis tool for software failures. For years, it has provided insight to engineers both inside and outside of Microsoft. It is a key enabling technology behind numerous higher-level feedback systems, including Windows Error Reporting and Watson.    &lt;br /&gt;!Analyze runs millions of times each day, producing actionable results from reliability telemetry data sent to Microsoft. Ordinary debugging tools report the file and function where a failure ended. !Analyze pinpoints where the failure started.     &lt;br /&gt;How does it work, exactly? What's the story behind !Analyze?     &lt;br /&gt;Meet two of the Software Developers behind !Analyze, David Grant and Ryan Kivett. They share with us how !Analyze works, it's history and provide a glimpse into it's potential future.Tune in. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9900893" width="1" height="1"&gt;</description></item><item><title>Using the web services to delete product mappings</title><link>http://blogs.msdn.com/wer/archive/2009/08/24/using-the-web-services-to-delete-product-mappings.aspx</link><pubDate>Mon, 24 Aug 2009 22:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9882910</guid><dc:creator>sunilab</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wer/comments/9882910.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9882910</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9882910</wfw:comment><description>&lt;div class="csharpcode"&gt; &lt;p&gt;&lt;font face="Trebuchet MS"&gt;In our June release we added web services for deleting mapped product(s), deleting mapped files from a product and deleting a mapped file from multiple products.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Trebuchet MS"&gt;The following code sample shows how to delete mapped products.&lt;/font&gt;&lt;/p&gt; &lt;p style="color: red"&gt;&lt;font face="Trebuchet MS"&gt;&lt;strong&gt;IMPORTANT: Please use and/or test this code very carefully as this delete cannot be undone.&lt;/strong&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Trebuchet MS"&gt;The first part of the code is used to login to the web service and get the encrypted token. The second part of the code is for deleting mapped products. The web service for deleting mapped products should be called with a post parameter named "mappedproductid" with a comma separated list of mapped product id's.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Trebuchet MS"&gt;Get the mapped product id's from the web service for getting the list of products.&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; baseUrl = &lt;span class="str"&gt;"https://winqual.microsoft.com"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; userName = &lt;span class="str"&gt;"your winqual username"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; password = &lt;span class="str"&gt;"your winqual password"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="rem"&gt;// login&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; loginUrl = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="str"&gt;"{0}/services/Authentication/Authentication.svc/BasicTicket"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    , baseUrl);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; request = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="str"&gt;"&amp;lt;?xml version=\"1.0\" encoding=\"utf-8\"?&amp;gt;&amp;lt;soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"&amp;gt;&amp;lt;soap:Body&amp;gt;&amp;lt;GetBasicTicket xmlns=\"https://winqual.microsoft.com/Services/Authentication/\"&amp;gt;&amp;lt;userName&amp;gt;{0}&amp;lt;/userName&amp;gt;&amp;lt;password&amp;gt;{1}&amp;lt;/password&amp;gt;&amp;lt;/GetBasicTicket&amp;gt;&amp;lt;/soap:Body&amp;gt;&amp;lt;/soap:Envelope&amp;gt;"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    , userName&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    , password);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;WebClient loginClient = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebClient();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;loginClient.Headers.Add(HttpRequestHeader.ContentType, &lt;span class="str"&gt;"text/xml"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;loginClient.Headers.Add(&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    &lt;span class="str"&gt;"SOAPAction"&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="str"&gt;"https://winqual.microsoft.com/Services/Authentication/IBasicTicket/GetBasicTicket"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; loginResponse = loginClient.UploadString(loginUrl, request);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="rem"&gt;// TODO: Handle condition where the ticket is null in case of bad pwd, bad username or some other error&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&lt;span class="rem"&gt;// parse the response to get the encrypted ticket out&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; startingIndex = loginResponse.IndexOf(&lt;span class="str"&gt;"&amp;lt;GetBasicTicketResult&amp;gt;"&lt;/span&gt;) + &lt;span class="str"&gt;"&amp;lt;GetBasicTicketResult&amp;gt;"&lt;/span&gt;.Length;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; endingIndex = loginResponse.IndexOf(&lt;span class="str"&gt;"&amp;lt;/GetBasicTicketResult&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; encryptedTicket = loginResponse.Substring(startingIndex, (endingIndex - startingIndex));&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;&lt;span class="rem"&gt;// comma separated list of mapped product id’s (integers) to delete.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&lt;span class="rem"&gt;// IMPORTANT: This delete cannot be undone.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;&lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; mappedProductIDs = &lt;span class="str"&gt;"list of comma separated mapped product id's"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;NameValueCollection nameValueCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; NameValueCollection(1);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;nameValueCollection.Add(&lt;span class="str"&gt;"mappedproductid"&lt;/span&gt;, mappedProductIDs);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;WebClient webClient = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebClient();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;webClient.Encoding = Encoding.UTF8;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;webClient.Headers.Add(&lt;span class="str"&gt;"encryptedTicket"&lt;/span&gt;, encryptedTicket);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;webClient.UploadValues(baseUrl + &lt;span class="str"&gt;"/services/wer/user/deletemappedproducts.aspx"&lt;/span&gt;, nameValueCollection);&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;

&lt;p&gt;This code will delete the mapped products and these products will look grayed out in the mapped product list at &lt;a title="https://winqual.microsoft.com/member/wer/user/ManageProductMappings.aspx" href="https://winqual.microsoft.com/member/wer/user/ManageProductMappings.aspx"&gt;https://winqual.microsoft.com/member/wer/user/ManageProductMappings.aspx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The code for deleting mapped files for a product and deleting mapped file from multiple products is similar to the code above.&lt;/p&gt;
&lt;p&gt;The relative URL for deleting multiple mapped files from a single product is “/member/wer/user/DeleteMappedFilesForProduct.aspx”. This form requires two POST parameters. One is the “mappedproductid” parameter with the id of the mapped product and the second is “mappedfileid” which is the comma seperated list of mapped file id’s to delete.&lt;/p&gt;
&lt;p&gt;The relative URL for deleting a single mapped file from multiple products is “/member/wer/user/DeleteMappedFileFromProducts.aspx”. This form requires two POST parameters. One is the “mappedfileid” parameter with the id of the mapped file and the second is “mappedproductid” which is the comma seperated list of mapped product id’s to delete the mapped file id.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9882910" width="1" height="1"&gt;</description></item><item><title>The Three Cs of Response Satisfaction</title><link>http://blogs.msdn.com/wer/archive/2009/08/12/the-three-cs-of-response-satisfaction.aspx</link><pubDate>Wed, 12 Aug 2009 21:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9866878</guid><dc:creator>BethanT</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wer/comments/9866878.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9866878</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9866878</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The Windows Error Reporting (WER) platform offers software and hardware companies a way to provide helpful information to customers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When an application stops working the WER client application that runs on Windows (since XP) detects these events and checks to see if a solution exists.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Software and hardware companies are able to create WER responses through the Windows Quality web portal (&lt;/FONT&gt;&lt;A href="https://winqual.microsoft.com/" mce_href="https://winqual.microsoft.com/"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;https://winqual.microsoft.com&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Windows end-users also have the ability to provide feedback on the quality of the solutions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Through analyzing the feedback provided over the years and performing extensive usability studies we have found some simple rules that help to create a pleasant experience for end-users.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The 3 C’s are comprised of keeping Customer focus, providing Clear information, and keeping your information Current.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Customer focus&lt;/B&gt; – Keep the customer’s experience paramount in creating a response for your customers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Understanding that the customer sees messages first on the Windows operating system is important in creating a seamless experience.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;FONT face=Calibri size=3&gt;Do:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Create custom content that guides the customer&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Acknowledge that the customer was referred by Windows Error Reporting&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Use clear language and common terms&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;FONT face=Calibri size=3&gt;Don’t:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Put the customer on your main homepage&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Send the customer to a general support forum&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 0pt 0.75in; mso-add-space: auto"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Clear information&lt;/B&gt; – Ensure that information provides clear and concise steps for the end-user.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;FONT face=Calibri size=3&gt;Do:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l6 level1 lfo3"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Provide a direct download link to an update from the response message when possible&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l6 level1 lfo3"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Provide a customized and dedicated landing page on your company’s website that contains an easily identifiable link to download a fix&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l6 level1 lfo3"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Provide concise steps if user action is needed during an install&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l6 level1 lfo3"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Provide clear instructions if a work around is available&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;FONT face=Calibri size=3&gt;Don’t:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l0 level1 lfo4"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Provide misleading links&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l0 level1 lfo4"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Make the user click on three or more options before they reach an actionable solution&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l1 level1 lfo5"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Provide non-actionable information&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Current information&lt;/B&gt; – Keep your responses and landing pages up-to-date!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We regularly review response quality and make decisions to un-publish responses based on current information and customer ratings.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;FONT face=Calibri size=3&gt;Do:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l3 level1 lfo6"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Check links on the landing pages after website updates&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l3 level1 lfo6"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Monitor the Response Satisfaction report available on the Developer Portal&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;FONT face=Calibri size=3&gt;Don’t:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-add-space: auto; mso-list: l5 level1 lfo7"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Let content sit for months unchanged&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 0pt 0.5in; mso-add-space: auto"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;If you have questions about creating a good response, you are welcome to use the contact information available on the WER portal. We are always happy to help.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9866878" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wer/archive/tags/FAQ/default.aspx">FAQ</category><category domain="http://blogs.msdn.com/wer/archive/tags/Windows+Error+Reporting/default.aspx">Windows Error Reporting</category><category domain="http://blogs.msdn.com/wer/archive/tags/WER+Services/default.aspx">WER Services</category><category domain="http://blogs.msdn.com/wer/archive/tags/Getting+Started/default.aspx">Getting Started</category><category domain="http://blogs.msdn.com/wer/archive/tags/Responses/default.aspx">Responses</category></item><item><title>Using the Product Mapping File Upload Web Service</title><link>http://blogs.msdn.com/wer/archive/2009/06/12/using-the-product-mapping-file-upload-web-service.aspx</link><pubDate>Fri, 12 Jun 2009 23:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9738450</guid><dc:creator>sunilab</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wer/comments/9738450.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9738450</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9738450</wfw:comment><description>&lt;P&gt;Yesterday we released updates to our web services offerings. These updates include the ability to automate the upload of the product mapping XML, getting a list of products mapped, getting the list of mapped files for a product, deleting a mapped file from a product, deleting mapped products and deleting a mapped file from multiple products.&lt;/P&gt;
&lt;P&gt;This blog post lists the code (in C#) required to access our web services for uploading a product mapping file.&lt;/P&gt;
&lt;P&gt;The code does 2 things:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Login to the Winqual portal, since the authentication web service uses SOAP the code for accessing the authentication web service without a proxy is a bit cumbersome.&lt;/LI&gt;
&lt;LI&gt;Use the .NET WebClient class (you can also use the HttpWebRequest and HttpWebResponse classes for this) to upload the product mapping file and get the response.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Code for using the product mapping file upload service (also attached as a CS file):&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; filePath = &lt;SPAN class=str&gt;"path to the product mapping XML file e.g. c:\upload\CoolApplication.xml"&lt;/SPAN&gt;; &lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; baseUrl = &lt;SPAN class=str&gt;"https://winqual.microsoft.com"&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; userName = &lt;SPAN class=str&gt;"your winqual username"&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; password = &lt;SPAN class=str&gt;"your winqual password"&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;// login&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   7:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; loginUrl = &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt;.Format(&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   9:  &lt;/SPAN&gt;    &lt;SPAN class=str&gt;"{0}/services/Authentication/Authentication.svc/BasicTicket"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  10:  &lt;/SPAN&gt;    , baseUrl);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  11:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; request = &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt;.Format(&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  12:  &lt;/SPAN&gt;    &lt;SPAN class=str&gt;"&amp;lt;?xml version=\"1.0\" encoding=\"utf-8\"?&amp;gt;&amp;lt;soap:Envelope &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;xmlns:soap=\&lt;A href="http://schemas.xmlsoap.org/soap/envelope//" mce_href="http://schemas.xmlsoap.org/soap/envelope/\"&gt;http://schemas.xmlsoap.org/soap/envelope/\&lt;/A&gt; &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;xmlns:xsi=\&lt;A href="http://www.w3.org/2001/XMLSchema-instance/" mce_href="http://www.w3.org/2001/XMLSchema-instance\"&gt;http://www.w3.org/2001/XMLSchema-instance\&lt;/A&gt; &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"&amp;gt;&amp;lt;soap:Body&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;&amp;lt;GetBasicTicket &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;xmlns=\"https://winqual.microsoft.com/Services/Authentication/\"&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;&amp;lt;userName&amp;gt;{0}&amp;lt;/userName&amp;gt;&amp;lt;password&amp;gt;{1}&amp;lt;/password&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;&amp;lt;/GetBasicTicket&amp;gt;&amp;lt;/soap:Body&amp;gt;&amp;lt;/soap:Envelope&amp;gt;"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  13:  &lt;/SPAN&gt;    , userName&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  14:  &lt;/SPAN&gt;    , password);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  15:  &lt;/SPAN&gt;WebClient loginClient = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; WebClient();&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  16:  &lt;/SPAN&gt;loginClient.Headers.Add(HttpRequestHeader.ContentType, &lt;SPAN class=str&gt;"text/xml"&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  17:  &lt;/SPAN&gt;loginClient.Headers.Add(&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  18:  &lt;/SPAN&gt;    &lt;SPAN class=str&gt;"SOAPAction"&lt;/SPAN&gt;,&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  19:  &lt;/SPAN&gt;    &lt;SPAN class=str&gt;"https://winqual.microsoft.com/Services&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=str&gt;/Authentication/IBasicTicket/GetBasicTicket"&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  20:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; loginResponse = loginClient.UploadString(loginUrl, request);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  21:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  22:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  23:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;// parse the response to get the encrypted ticket out&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  24:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;// TODO: Handle condition where the ticket is null in case of bad pwd, &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=rem&gt;bad username or some other error&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  25:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  26:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  27:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;int&lt;/SPAN&gt; startingIndex = loginResponse.IndexOf(&lt;SPAN class=str&gt;"&amp;lt;GetBasicTicketResult&amp;gt;"&lt;/SPAN&gt;) &lt;/PRE&gt;&lt;PRE&gt;+ &lt;SPAN class=str&gt;"&amp;lt;GetBasicTicketResult&amp;gt;"&lt;/SPAN&gt;.Length;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  28:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;int&lt;/SPAN&gt; endingIndex = loginResponse.IndexOf(&lt;SPAN class=str&gt;"&amp;lt;/GetBasicTicketResult&amp;gt;"&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  29:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; encryptedTicket = loginResponse.Substring(startingIndex&lt;/PRE&gt;&lt;PRE&gt;, (endingIndex - startingIndex));&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  30:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  31:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  32:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;// upload file&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  33:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  34:  &lt;/SPAN&gt;WebClient webClient = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; WebClient();&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  35:  &lt;/SPAN&gt;webClient.Headers.Add(&lt;SPAN class=str&gt;"encryptedTicket"&lt;/SPAN&gt;, encryptedTicket);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  36:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;byte&lt;/SPAN&gt;[] responseBytes = webClient.UploadFile(baseUrl &lt;/PRE&gt;&lt;PRE&gt;+ &lt;SPAN class=str&gt;"/services/wer/user/fileupload.aspx"&lt;/SPAN&gt;, filePath);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  37:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  38:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  39:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;// the response that the WebClient gets may contain an updated ticket, so get that&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  40:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  41:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (webClient.ResponseHeaders[&lt;SPAN class=str&gt;"encryptedTicket"&lt;/SPAN&gt;] != &lt;SPAN class=kwrd&gt;null&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  42:  &lt;/SPAN&gt;{&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  43:  &lt;/SPAN&gt;    encryptedTicket = webClient.ResponseHeaders[&lt;SPAN class=str&gt;"encryptedTicket"&lt;/SPAN&gt;];&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  44:  &lt;/SPAN&gt;}&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  45:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  46:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  47:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;// get the response&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  48:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  49:  &lt;/SPAN&gt;UTF8Encoding encoding = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; UTF8Encoding();&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  50:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; fileUploadResponse = encoding.GetString(responseBytes);&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  51:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  52:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  53:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;// TODO: Check the response XML for success or error message&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  54:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;//&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  55:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  56:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; fileUploadResponse;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;The XML response from the authentication service will be similar to the following when the login is successful: 
&lt;STYLE type=text/css&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;
&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Envelope&lt;/SPAN&gt; &lt;SPAN class=attr&gt;xmlns:s&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://schemas.xmlsoap.org/soap/envelope/"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Body&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;GetBasicTicketResponse&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=attr&gt;xmlns&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="https://winqual.microsoft.com/Services/Authentication/"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
                     &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;GetBasicTicketResult&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&lt;/SPAN&gt;encrypted ticket string&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;GetBasicTicketResult&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
              &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;GetBasicTicketResponse&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
      &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Body&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Envelope&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;The XML response from the authentication service in case of a login failure will be similar to the following: 
&lt;STYLE type=text/css&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;
&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Envelope&lt;/SPAN&gt; &lt;SPAN class=attr&gt;xmlns:s&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://schemas.xmlsoap.org/soap/envelope/"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Body&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;GetBasicTicketResponse&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=attr&gt;xmlns&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="https://winqual.microsoft.com/Services/Authentication/"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;GetBasicTicketResult&lt;/SPAN&gt; &lt;SPAN class=attr&gt;a:nil&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="true"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=attr&gt;xmlns:a&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://www.w3.org/2001/XMLSchema-instance"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt; 
        &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;GetBasicTicketResponse&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Body&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;s:Envelope&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;The XML response when the upload is successful is similar to the following ATOM output:&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN class=html&gt;xml&lt;/SPAN&gt; &lt;SPAN class=attr&gt;version&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1.0"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;encoding&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="utf-8"&lt;/SPAN&gt; ?&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;feed&lt;/SPAN&gt; &lt;SPAN class=attr&gt;xmlns&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;=&lt;A href="http://www.w3.org/2005/Atom" mce_href="http://www.w3.org/2005/Atom"&gt;http://www.w3.org/2005/Atom&lt;/A&gt;&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=attr&gt;xmlns:wer&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;=&lt;A href="http://schemas.microsoft.com/windowserrorreporting" mce_href="http://schemas.microsoft.com/windowserrorreporting"&gt;http://schemas.microsoft.com/windowserrorreporting&lt;/A&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&lt;/SPAN&gt; &lt;SPAN class=attr&gt;wer:status&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="ok"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;title&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;Feed Success&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;title&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;link&lt;/SPAN&gt; &lt;SPAN class=attr&gt;rel&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="alternate"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;type&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="text/html"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=attr&gt;href&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="https://winqual.microsoft.com/services/wer/user/fileupload.aspx"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt; 
    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;updated&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;2009-06-12 19:28:28Z&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;updated&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;id&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;Success&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;id&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;entry&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;updated&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;2009-06-12 19:28:28Z&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;updated&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;published&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;2009-06-12 19:28:28Z&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;published&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;title&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;File uploaded successfully&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;title&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;id&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;File uploaded successfully&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;id&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt; 
        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;wer:additionalInformation&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt; 
    &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;entry&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;feed&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;You can check the file upload by going to the website:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://winqual.microsoft.com/member/wer/user/ManageProductMappings.aspx" mce_href="https://winqual.microsoft.com/member/wer/user/ManageProductMappings.aspx"&gt;https://winqual.microsoft.com/member/wer/user/ManageProductMappings.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Once you sort the table by the Map Date column in descending order, you should see your uploaded product.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/UsingtheProductMappingFileUploadWebServi_B8C7/clip_image002_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/UsingtheProductMappingFileUploadWebServi_B8C7/clip_image002_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=clip_image002 border=0 alt=clip_image002 src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/UsingtheProductMappingFileUploadWebServi_B8C7/clip_image002_thumb.jpg" width=534 height=83 mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/UsingtheProductMappingFileUploadWebServi_B8C7/clip_image002_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;You can see the files for the product uploaded by clicking the icon under the File Mappings column.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9738450" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wer/archive/tags/WER+Services/default.aspx">WER Services</category><category domain="http://blogs.msdn.com/wer/archive/tags/Mapping+XML+Upload/default.aspx">Mapping XML Upload</category></item><item><title>Windows Error Reporting – Vote for a fix!</title><link>http://blogs.msdn.com/wer/archive/2009/05/13/windows-error-reporting-vote-for-a-fix.aspx</link><pubDate>Thu, 14 May 2009 00:38:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9611483</guid><dc:creator>khill</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wer/comments/9611483.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9611483</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9611483</wfw:comment><description>&lt;p&gt;If you are a developer and reading this blog you may already know of the direct benefits provided by users submitting error reports, if you are an end-user of an application, on Windows, developers are relying on you to help identify solutions to issues that are difficult to reproduce.&lt;/p&gt;  &lt;p&gt;I want to take this short blog entry on what good Windows Error Reporting brings to the Windows Operating System and eco-system.&amp;#160; I am including hyperlinks that give a view from 3rd parties on the good things that Windows Error Reporting enables for developers on the Windows OS.&lt;/p&gt;  &lt;p&gt;The title of this blog posting was inspired by the &lt;a href="http://windowsitpro.com/article/articleid/46982/windows-error-reporting-elementary-my-dear-watson.html"&gt;WindowsITPro.com&lt;/a&gt; article below where each error report sent to Windows Error Reporting (WER) is a vote for a fix, although the article was written a few years ago, the theme of voting remains the same. Although not like texting a vote into American Idol, I argue that sending a Windows Error Report is easier and can end up fixing the issue you reported in the end!&amp;#160;&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Kate details how using Windows Error Reporting to solve problems is helpful on Vista.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a title="http://www.gregcons.com/KateBlog/WindowsErrorReportingIsYourFriend.aspx" href="http://www.gregcons.com/KateBlog/WindowsErrorReportingIsYourFriend.aspx"&gt;http://www.gregcons.com/KateBlog/WindowsErrorReportingIsYourFriend.aspx&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;O’Reilly gives an overview:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a title="http://windowsdevcenter.com/pub/a/windows/2004/03/16/wer.html" href="http://windowsdevcenter.com/pub/a/windows/2004/03/16/wer.html"&gt;http://windowsdevcenter.com/pub/a/windows/2004/03/16/wer.html&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Bob Kelly has a post talking about his recommendations:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a title="http://www.realtime-vista.com/administration/2007/03/windows_error_reporting_option.htm" href="http://www.realtime-vista.com/administration/2007/03/windows_error_reporting_option.htm"&gt;http://www.realtime-vista.com/administration/2007/03/windows_error_reporting_option.htm&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;WindowsITPro.com article highlights how each error report you send in is like a vote for a fix:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a title="http://windowsitpro.com/article/articleid/46982/windows-error-reporting-elementary-my-dear-watson.html" href="http://windowsitpro.com/article/articleid/46982/windows-error-reporting-elementary-my-dear-watson.html"&gt;http://windowsitpro.com/article/articleid/46982/windows-error-reporting-elementary-my-dear-watson.html&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;An article talking about how WER has helped to build Windows 7:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a title="http://news.softpedia.com/news/Windows-7-Windows-Error-Reporting-Infrastructure-103252.shtml" href="http://news.softpedia.com/news/Windows-7-Windows-Error-Reporting-Infrastructure-103252.shtml"&gt;http://news.softpedia.com/news/Windows-7-Windows-Error-Reporting-Infrastructure-103252.shtml&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:06a65a56-e540-420e-a3a6-6e5710da0b5d" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WER" rel="tag"&gt;WER&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows" rel="tag"&gt;Windows&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Error" rel="tag"&gt;Error&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Reports" rel="tag"&gt;Reports&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Error+Reporting" rel="tag"&gt;Windows Error Reporting&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Fix" rel="tag"&gt;Fix&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Developer" rel="tag"&gt;Developer&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9611483" width="1" height="1"&gt;</description></item><item><title>Vista WER Settings UI Deciphered</title><link>http://blogs.msdn.com/wer/archive/2009/04/15/vista-wer-settings-ui-deciphered.aspx</link><pubDate>Thu, 16 Apr 2009 00:53:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9551579</guid><dc:creator>varunb</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/wer/comments/9551579.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9551579</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9551579</wfw:comment><description>&lt;p&gt;This post is a follow up to the original post I did about &lt;a href="http://blogs.msdn.com/wer/archive/2009/03/11/an-overview-of-wer-consent-settings-and-corresponding-ui-behavior.aspx"&gt;WER Settings &amp;amp; UI for Windows 7&lt;/a&gt;. While that post outlined the settings UI in Windows 7, this post covers the WER settings UI for Windows Vista.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WER Consent Settings:&lt;/strong&gt; The various WER consent levels are identical across Windows Vista and Windows 7. Please review &lt;a href="http://blogs.msdn.com/wer/archive/2009/03/11/an-overview-of-wer-consent-settings-and-corresponding-ui-behavior.aspx"&gt;this post&lt;/a&gt; to get an understanding of the various consent levels first. The rest of this blog post explains how these consent options are exposed in the Windows Vista UI. &lt;/p&gt;  &lt;p&gt;The WER setting in Windows Vista is exposed in the ‘Problem Reports &amp;amp; Solutions’ (aka PRS) Control Panel. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_thumb.png" width="422" height="238" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Clicking the ‘Change settings’ link in PRS, opens up the &lt;strong&gt;basic settings page&lt;/strong&gt; shown below. These settings allow configuration of WER consent settings for that specific &lt;strong&gt;logged in user&lt;/strong&gt; only.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_thumb_2.png" width="671" height="266" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Clicking on the ‘Advanced Settings’ link on this page opens the, well, &lt;strong&gt;advanced settings page&lt;/strong&gt; shown below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_thumb_3.png" width="625" height="425" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Clicking on the lower ‘Change Settings’ button, brings up a dialog which allows setting consent for &lt;strong&gt;all users on the machine&lt;/strong&gt;. Here is how that dialog looks:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/VistaWERSettingsUIDeciphered_CE3A/image_thumb_4.png" width="487" height="243" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hope this clarifies the various WER settings and how they can be configured on Windows Vista.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9551579" width="1" height="1"&gt;</description></item><item><title>Problem Steps Recorder (PSR.exe) + Windows Error Reporting = Another tool to help find solutions to software defects</title><link>http://blogs.msdn.com/wer/archive/2009/03/30/problem-steps-recorder-psr-exe-windows-error-reporting-another-tool-to-help-find-solutions-to-software-defects.aspx</link><pubDate>Mon, 30 Mar 2009 22:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9519998</guid><dc:creator>khill</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wer/comments/9519998.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9519998</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9519998</wfw:comment><description>&lt;div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7dd81d36-fd40-4dc4-8cdb-fb26cea22a64" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/PSR" mce_href="http://technorati.com/tags/PSR" rel="tag"&gt;PSR&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WER" mce_href="http://technorati.com/tags/WER" rel="tag"&gt;WER&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WER+Services" mce_href="http://technorati.com/tags/WER+Services" rel="tag"&gt;WER Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Problem+Steps+Recorder" mce_href="http://technorati.com/tags/Problem+Steps+Recorder" rel="tag"&gt;Problem Steps Recorder&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Repro+Steps" mce_href="http://technorati.com/tags/Repro+Steps" rel="tag"&gt;Repro Steps&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;There is a bunch of information on the web about PSR and one of the best is this video on CNET:&amp;nbsp; &lt;a href="http://cnettv.cnet.com/2001-1_53-50005144.html" mce_href="http://cnettv.cnet.com/2001-1_53-50005144.html"&gt;http://cnettv.cnet.com/2001-1_53-50005144.html&lt;/a&gt;&amp;nbsp; as you can see a demo of the tool working for an end-user perspective, it behaves differently when invoked by WER as described below.&amp;nbsp; The key difference is that WER doesn’t collect screenshots.&lt;/p&gt;  &lt;p&gt;From an error reporting perspective we plan on exposing this via the WER Services.&amp;nbsp; The concept is that if you aren’t able to use standard mini-dumps or heap dumps to find the source of the problem, WER Services will allow the PSR tool to be run (with &lt;b&gt;&lt;u&gt;&lt;a href="http://blogs.msdn.com/wer/archive/2009/03/11/an-overview-of-wer-consent-settings-and-corresponding-ui-behavior.aspx" mce_href="http://blogs.msdn.com/wer/archive/2009/03/11/an-overview-of-wer-consent-settings-and-corresponding-ui-behavior.aspx"&gt;user consent&lt;/a&gt;&lt;/u&gt;&lt;/b&gt;) &lt;/p&gt;  &lt;p&gt;Example of screen-shot shown to user:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/ProblemStepsRecorderPSR.exe_7876/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/ProblemStepsRecorderPSR.exe_7876/image_2.png"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/ProblemStepsRecorderPSR.exe_7876/image_thumb.png" style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="image" alt="image" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/ProblemStepsRecorderPSR.exe_7876/image_thumb.png" width="381" border="0" height="246"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When we enable an error &lt;b&gt;Bucket&lt;/b&gt; to collect PSR data, here is the workflow:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;User prompted with a request for additional data &lt;/li&gt;    &lt;li&gt;PSR waits until next time the same application is launched &lt;/li&gt;    &lt;li&gt;PSR runs silently in the background while user is using the application &lt;/li&gt;    &lt;li&gt;PSR captures descriptions of steps user has taken (without screenshots) &lt;/li&gt;    &lt;li&gt;&lt;b&gt;IF&lt;/b&gt; the same unhandled exception occurs (&lt;b&gt;BucketID&lt;/b&gt;) &lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;The Memory dump, Additional Files, and the PSR output is sent in a CAB file through WER &lt;/li&gt;      &lt;li&gt;Developer’s can now download CAB files associated with a particular event that contain these steps a user took leading up to the crash &lt;/li&gt;      &lt;li&gt;Developer’s can try to reproduce the error locally following these steps.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;After PSR steps are sent with CAB the PSR tool is disabled for user&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;b&gt;IMPORTANT NOTES&lt;/b&gt;: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;PSR.exe when invoked by WER does &lt;b&gt;NOT&lt;/b&gt; capture screenshots, see example output below.&lt;/li&gt;    &lt;li&gt;Only CAB files that contain PSR steps will be submitted to WER, this means that possibly fewer cabs will be sent for a particular Bucket.&lt;/li&gt;    &lt;li&gt;When Windows 7 firsts launches this feature will only be manually enabled by the team behind &lt;a href="mailto:wer@microsoft.com" mce_href="mailto:wer@microsoft.com"&gt;wer@microsoft.com&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Other links and blog posts&lt;/b&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/magazine/dd464813.aspx" mce_href="http://technet.microsoft.com/en-us/magazine/dd464813.aspx"&gt;http://technet.microsoft.com/en-us/magazine/dd464813.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cjacks/archive/2009/02/25/deciphering-the-command-line-configuration-of-the-windows-7-problem-steps-recorder.aspx" mce_href="http://blogs.msdn.com/cjacks/archive/2009/02/25/deciphering-the-command-line-configuration-of-the-windows-7-problem-steps-recorder.aspx"&gt;http://blogs.msdn.com/cjacks/archive/2009/02/25/deciphering-the-command-line-configuration-of-the-windows-7-problem-steps-recorder.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/tims/archive/2009/01/12/the-bumper-list-of-windows-7-secrets.aspx" mce_href="http://blogs.msdn.com/tims/archive/2009/01/12/the-bumper-list-of-windows-7-secrets.aspx"&gt;http://blogs.msdn.com/tims/archive/2009/01/12/the-bumper-list-of-windows-7-secrets.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Sample output&lt;/b&gt;:&lt;/p&gt;  &lt;table width="523" border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="521"&gt;         &lt;p&gt;&lt;i&gt;&lt;b&gt;Problem Step 1: (3/27/2009 7:53:51 PM)&lt;/b&gt; User right click on "user consent (editable text)" in "Problem Steps Recorder (PSR.exe) + Windows Error Reporting = Another tool to help find solutions to software defects - Windows Live Writer" &lt;/i&gt;&lt;/p&gt;          &lt;p&gt;&lt;i&gt;&lt;b&gt;Problem Step&amp;nbsp; 2: (3/27/2009 7:53:53 PM)&lt;/b&gt; User left click on "Hyperlink... (menu item)" &lt;/i&gt;&lt;/p&gt;          &lt;p&gt;&lt;i&gt;&lt;b&gt;Problem Step 3: (3/27/2009 7:53:55 PM)&lt;/b&gt; User keyboard input in "Insert Hyperlink" [... Enter]&lt;/i&gt; &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9519998" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wer/archive/tags/WER/default.aspx">WER</category><category domain="http://blogs.msdn.com/wer/archive/tags/Windows+Error+Reporting/default.aspx">Windows Error Reporting</category><category domain="http://blogs.msdn.com/wer/archive/tags/WER+Services/default.aspx">WER Services</category><category domain="http://blogs.msdn.com/wer/archive/tags/PSR/default.aspx">PSR</category></item><item><title>Let There Be Hangs: Part 4 – Hashes and Type Codes and XProc, Oh My!</title><link>http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-4-better-bucketing-in-windows-vista.aspx</link><pubDate>Thu, 19 Mar 2009 22:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9490989</guid><dc:creator>ryankiv</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/wer/comments/9490989.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9490989</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9490989</wfw:comment><description>&lt;H5&gt;Hang Bucketing, A Better Way&lt;/H5&gt;
&lt;P&gt;In the &lt;A href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-3-the-hungapp-module.aspx" mce_href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-3-the-hungapp-module.aspx"&gt;previous post&lt;/A&gt; I gave a brief introduction of how the first version of hang reporting was implemented using the existing crash reporting infrastructure.&lt;/P&gt;
&lt;P&gt;Eventually (after Windows XP shipped) a new general purpose event reporting and bucketing mechanism was built. In a nutshell, this mechanism provides a very flexible way to report incidents to the WER pipeline.&amp;nbsp; It supports a custom named event (internally at Microsoft dubbed “generic events”) and up to 10 custom bucketing parameters P1...P&lt;EM&gt;n&lt;/EM&gt;...P10. &lt;/P&gt;
&lt;P&gt;During the development of Windows Vista, we decided to do something about the problematic hang bucketing and leverage the new general purpose reporting to gain a much better client-side classification of hang issues.&amp;nbsp; Before I explain what bucketing parameters these have, let me discuss a few other new things in Vista:&lt;/P&gt;
&lt;P&gt;Another problem with Windows XP hang reporting was that the application process was often hung waiting on an external process.&amp;nbsp; The report would only include a memory dump of the hung application and developers were often forced to give up not able to debug the other process.&amp;nbsp; (Now, granted, you very often don't need to debug the other process to fix a hang, but that is a discussion for a later blog post.)&lt;/P&gt;
&lt;P&gt;To solve this problem, the &lt;A href="http://msdn2.microsoft.com/en-us/library/ms679364.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms679364.aspx"&gt;GetThreadWaitChain&lt;/A&gt; API was created.&amp;nbsp; This API allows the caller to discover the blocking graph (or “wait chain”) for a given thread.&amp;nbsp; A trivial example: Thread A is waiting to enter a critical section owned by Thread B which is making a blocking SendMessage call to Thread C which is waiting on a mutex owned by Thread D which is running in another process.&amp;nbsp; The output from the API provides the caller all of this information.&lt;/P&gt;
&lt;P&gt;It's this mechanism that hang reporting uses in Vista to discover not only the wait chain information but to collect memory dumps of external processes.&lt;/P&gt;
&lt;P&gt;Back to the bucketing parameters – the hang reporting infrastructure actually reports hangs to two different generic events: AppHangB1 and AppHangXProcB1 (yes, B1 stands for Beta 1.&amp;nbsp; Don’t ask…).&amp;nbsp; On Winqual, AppHangB1 is shown as Event Type "Hang" and AppHangXProcB1 is shown as "Hang XProc".&amp;nbsp; AppHangB1 has 5 parameters (by convention P1 &amp;amp; P2 are typically Application Name &amp;amp; Version):&lt;/P&gt;
&lt;P&gt;P1 - Application Name &lt;BR&gt;P2 - Application Version &lt;BR&gt;P3 - Application Timestamp &lt;BR&gt;P4 - Stack Hash &lt;BR&gt;P5 - Type Code&lt;/P&gt;
&lt;P&gt;AppHangXProcB1 has those 5 and adds 2 more:&lt;/P&gt;
&lt;P&gt;P6 - Waiting On Application Name &lt;BR&gt;P7 - Waiting On Application Version&lt;/P&gt;
&lt;P&gt;Most of these parameters are self explanatory.&amp;nbsp; The two that might not be are P4 and P5:&lt;/P&gt;
&lt;P&gt;Stack Hash (P4) - hang reporting traverses the wait chain and for the final thread in the chain &lt;EM&gt;before&lt;/EM&gt; it jumps to a different process, we generate a hash based on the thread’s stack back trace. P4 is a &lt;EM&gt;restricted &lt;/EM&gt;hash which means we chop the MD5 128-bit hash down to 16 bits.&amp;nbsp; This prevents any wild spraying of buckets and when we studied it we were still achieving ~85% uniqueness.&lt;/P&gt;
&lt;P&gt;Type Code (P5) - this is a bit field based in part on the WCT_OBJECT_TYPEs found during wait chain traversal with GetThreadWaitChain (e.g., mutex, COM, etc.) but also on a few other items too - like if there's a deadlock or if the hang report came from End Task in Task Manager (more blog fodder).&lt;/P&gt;
&lt;P&gt;As rich and wonderful as hang bucketing has become in Windows Vista, there are still edge cases (just as there are in crash bucketing) where a bucket does not uniquely identify a single bug.&amp;nbsp; In a future post I will discuss bucketing more generally and how we REALLY determine and quantify bugs using WER data at Microsoft.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9490989" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wer/archive/tags/WER/default.aspx">WER</category><category domain="http://blogs.msdn.com/wer/archive/tags/Hang/default.aspx">Hang</category><category domain="http://blogs.msdn.com/wer/archive/tags/Bucketing/default.aspx">Bucketing</category></item><item><title>Let There Be Hangs: Part 2 – WER History 101</title><link>http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-2-wer-history-101.aspx</link><pubDate>Thu, 19 Mar 2009 22:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9490986</guid><dc:creator>ryankiv</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/wer/comments/9490986.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9490986</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9490986</wfw:comment><description>&lt;h4&gt;Crashes Suck&lt;/h4&gt;  &lt;p&gt;In the beginning, we needed a way to close the loop with our customers in order to ease the pain felt from software defects (bugs) that caused crashes.&amp;#160; A simple client service was produced that collected crash dumps from Windows desktops and sent them back to Microsoft for analysis. The crash dumps were debugged, bugs exposed, fixes were made, problems went away. Lather, rinse, repeat.&amp;#160; Note: This is how &lt;em&gt;user&lt;/em&gt; mode error reporting began.&amp;#160; Interestingly, kernel mode error reporting (bluescreens) had its origin in a roughly parallel timeframe (actually a little earlier) but it began in a completely different group at Microsoft. For the rest of this series of posts I’m talking about the user mode side of WER.&lt;/p&gt;  &lt;h5&gt;Buckets&lt;/h5&gt;  &lt;p&gt;An early design assumption was that this client had zero analysis ability and so we needed a simple and deterministic way to organize the data that would allow both the client and the backend servers at Microsoft to speak to each other in a common language.&amp;#160; Oh, and the solution needed to be (*ahem*) scalable. That common language is the unique combination of event &lt;em&gt;parameters&lt;/em&gt; which give us the &lt;em&gt;Event ID&lt;/em&gt;. Internally at Microsoft these are actually known as &lt;em&gt;bucket&lt;/em&gt; IDs – or just buckets.&amp;#160; It’s more natural for me to talk about buckets and I’ll try to be consistent, but just in case, know that “bucket” and “event” are mostly interchangeable in the context of error reporting. &lt;/p&gt;  &lt;p&gt;Originally, plain old crashes were bucketed using 5 parameters:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The application’s name &lt;/li&gt;    &lt;li&gt;The application’s version &lt;/li&gt;    &lt;li&gt;The name of the module containing the instruction that causes the crash exception &lt;/li&gt;    &lt;li&gt;The version of that module &lt;/li&gt;    &lt;li&gt;The byte offset into that module where that instruction resides &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart2_A854/crash%20event%20with%20hits.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart2_A854/crash%20event%20with%20hits.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="crash event with hits" border="0" alt="crash event with hits" align="right" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart2_A854/crash%20event%20with%20hits_thumb.png" width="240" height="212" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart2_A854/crash%20event%20with%20hits_thumb.png" /&gt;&lt;/a&gt; The idea was that crashes with the same set of parameters were caused by the same bug. It turns out that this isn’t always true (We’ll save that for a later post) but in general it works pretty well. Today, this “client” is built as a core component of Windows and became generally referred to Windows Error Reporting (WER) Services.&amp;#160; In Vista we added 3 more parameters to plain old crash reporting: file link timestamps for both the application and modules (to try and avoid some issues of naming collisions) and exception code.&amp;#160; And by the way, the client itself has become smarter and in fact does &lt;em&gt;some&lt;/em&gt; cursory analysis when deriving bucketing parameters.&lt;/p&gt;  &lt;p&gt;Notice that you can tell the explorer crash to the right is from Windows XP because those extra 3 parameters don’t have data.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-1-not-responding.aspx"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt; Read Part 1&lt;/a&gt; [Part 2] &lt;a href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-3-the-hungapp-module.aspx"&gt;Read Part 3 &lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9490986" width="1" height="1"&gt;</description></item><item><title>Let There Be Hangs: Part 3 – The ‘hungapp’ module</title><link>http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-3-the-hungapp-module.aspx</link><pubDate>Thu, 19 Mar 2009 22:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9490988</guid><dc:creator>ryankiv</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wer/comments/9490988.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9490988</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9490988</wfw:comment><description>&lt;h4&gt;Hang Bucketing, v1&lt;/h4&gt;  &lt;p&gt;On Windows XP, hangs have it rough.&amp;#160; Like a younger sibling, error reporting for hangs has to wear the hand-me-down clothes of crash reporting – it piggybacks on the same 5 fixed bucketing parameters used by crash reporting. However with a hang there is no exception context and so there is no faulting instruction, therefore there is no module name, module version or module offset.&amp;#160; So on XP, hangs really only have 2 effective bucketing parameters (application name and application version).&amp;#160; The other parameters are set where module name is &amp;quot;hungapp&amp;quot;, module version is &amp;quot;0.0.0.0&amp;quot;, and the offset is 0.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart3_A863/hungapp%20box%20explorer.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart3_A863/hungapp%20box%20explorer.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="hungapp box explorer" border="0" alt="hungapp box explorer" align="right" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart3_A863/hungapp%20box%20explorer_thumb.png" width="240" height="137" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart3_A863/hungapp%20box%20explorer_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This means all of particular version of an application’s hangs ended up in a single bucket.&amp;#160; Knowing this, you might correctly guess that these buckets have very high hit counts when compared with crash buckets for the same app name/version (though some corruption buckets are not far behind).&amp;#160; When someone runs a generalized query similar to, &amp;quot;what are my highest hitting XP buckets this week?&amp;quot;, the top end of the results are often littered with hang buckets.&amp;#160; A naive conclusion would be &amp;quot;Oh my! Hangs are a huge problem and we must focus all our effort to eradicate them!&amp;quot;&amp;#160; While hangs are indeed a big problem, arriving at this conclusion based on bucket hit volume is incorrect.&amp;#160; Also, when the actual failures contained in these hang buckets are studied, it is quickly apparent they are composing many bugs – not just the ideal 1 (or few). This is a big reason development teams historically struggled to make progress with hang bugs - the data was difficult to sort and measure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart3_A863/hungapp%20box%20explorer.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/LetThereBeHangsPart3_A863/hungapp%20box%20explorer.png"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-2-wer-history-101.aspx"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt; Read Part 2&lt;/a&gt; [Part 3] &lt;a href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-4-better-bucketing-in-windows-vista.aspx"&gt;Read Part 4 &lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9490988" width="1" height="1"&gt;</description></item><item><title>Let There Be Hangs: Part 1 (Not Responding)</title><link>http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-1-not-responding.aspx</link><pubDate>Thu, 19 Mar 2009 22:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9490974</guid><dc:creator>ryankiv</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wer/comments/9490974.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9490974</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9490974</wfw:comment><description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:edcd728b-4424-4fed-96ca-269747ffe964" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/application" rel="tag"&gt;application&lt;/a&gt;,&lt;a href="http://technorati.com/tags/hang" rel="tag"&gt;hang&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application+hang" rel="tag"&gt;application hang&lt;/a&gt;,&lt;a href="http://technorati.com/tags/windows" rel="tag"&gt;windows&lt;/a&gt;,&lt;a href="http://technorati.com/tags/hung" rel="tag"&gt;hung&lt;/a&gt;,&lt;a href="http://technorati.com/tags/xproc" rel="tag"&gt;xproc&lt;/a&gt;,&lt;a href="http://technorati.com/tags/hang+XProc" rel="tag"&gt;hang XProc&lt;/a&gt;&lt;/div&gt;  &lt;h4&gt;Well hang &lt;em&gt;reports &lt;/em&gt;anyway…&lt;/h4&gt;  &lt;p&gt;Those of you signed up on the &lt;a href="http://winqual.microsoft.com/" mce_href="http://winqual.microsoft.com/"&gt;Winqual site&lt;/a&gt; are likely familiar with the &amp;quot;Event ID&amp;quot; and what it (ideally) represents – that is, a basic demarcation of unique software defects.&amp;#160; Additionally you’re probably more familiar with crash-related Event IDs like “Crash 32-bit” and “Crash 64-bit”.&amp;#160; But what about the other event types?&amp;#160; Specifically “Hang” and “Hang XProc”?&amp;#160; And by the way – what’s a crash in module “hungapp”?&lt;/p&gt;  &lt;p&gt;In this and later posts I’m going to explain a little bit about error reporting and a little bit more about hangs – what they are, how they’re detected, reported, organized, counted, etc. Before getting into all that, however, we need a (very) brief history lesson.&lt;/p&gt;  &lt;h4&gt;Ghost Windows&lt;/h4&gt;  &lt;p&gt;Some of you might remember something like the following scene from the days of Windows NT 4 (and maybe you’ve seen similar scenes in more recent times):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/SavedForPart1_B21C/NT4NoGhost_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="NT4NoGhost" border="0" alt="NT4NoGhost" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/SavedForPart1_B21C/NT4NoGhost_thumb.jpg" width="240" height="234" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is a screenshot of CALC.EXE moved across an intentionally hung instance of NOTEPAD.EXE.&lt;/p&gt;  &lt;p&gt;Without getting into too much nitty gritty, a thread that creates GUI elements, namely windows, has an implicit contract with the desktop window manager that it will service messages that arrive in its message queue... in a timely fashion. “Servicing” means retrieving &lt;em&gt;and&lt;/em&gt; dispatching the messages (aka pumping messages).&amp;#160; There is plenty of &lt;a class="class" href="http://msdn.microsoft.com/en-us/library/ms644928.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/ms644928.aspx"&gt;content on MSDN&lt;/a&gt; that covers the specific APIs and mechanisms used for this and plenty of content &lt;a class="class" href="http://blogs.msdn.com/oldnewthing/search.aspx?q=message+queues&amp;amp;p=1" target="_blank" mce_href="http://blogs.msdn.com/oldnewthing/search.aspx?q=message+queues&amp;amp;p=1"&gt;elsewhere&lt;/a&gt; about the interesting peculiarities of this area.&amp;#160; What &amp;quot;timely fashion&amp;quot; means is somewhat a matter of debate among developers and users. To the window manager, it means 5 seconds by default.&amp;#160; Our user research shows that this is actually quite generous.&lt;/p&gt;  &lt;p&gt;If a thread stops pumping messages from its message queue, bad things start to happen. In such cases, the thread is often off busy working on whatever task the user just “asked” it to do (e.g. opening a file or recalculating some total or talking to a web service over the internet) and there’s a good chance that it didn’t update its UI to indicate that it’s off doing this work; it almost certainly hasn’t shown any UI resulting from that work. But there is a worse and more fundamental problem – while it’s away, the messages it isn’t pumping could be mouse, keyboard, or touch input along with paint messages.&amp;#160; Not pumping those messages would result in a window stuck on the user’s screen – the user wouldn’t be able to move, minimize, or close it and if they moved something in front of it, they’d get something like the jaggy mess in the screen shot above.&lt;/p&gt;  &lt;p&gt;I say &lt;em&gt;would&lt;/em&gt; because beginning with Windows 2000, we added functionality to the window manager to handle these cases.&amp;#160; The concept is actually quite simple – the window manager watches for when a thread has pending input in its queue but hasn’t serviced it for more than 5 seconds. When the situation is detected (aka &lt;a href="http://msdn.microsoft.com/en-us/library/ms633526.aspx" target="_blank"&gt;IsHungAppWindow&lt;/a&gt;), the window manager does a presto chango maneuver whereby it hides the window whos thread isn’t pumping input messages and seamlessly shows a replacement window (known as a “ghost” window) with its client area filled with the real window’s last known good client area bits. &lt;/p&gt;  &lt;p&gt;While the original thread isn’t responding, the window manager manages both windows in parallel, to the extent that the application doesn’t know this is happening. For example, IsWindowVisible() will actually return true for the hidden/unresponsive window. The only visual difference (initially) to the user is that the text “(Not Responding)” is appended to the ghost window’s title. Using the ghost window, the user can effectively move, minimize, and even close the unresponsive application window. When (if) the thread starts pumping messages again, the original window is re-shown and the ghost window goes away. By the way, this window manager feature is called (obviously) window ghosting - and naturally, we offer an API you should almost never use: &lt;a href="http://msdn.microsoft.com/en-us/library/ms648415.aspx" target="_blank"&gt;DisableProcessWindowsGhosting&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;While we were working on Windows XP, we realized that it might be nice to know about these unresponsive applications.&amp;#160; We had already started to collect data about crashes, which were clearly annoying to customers, and some schools of thought (and some research) indicated that unresponsive UI was even more annoying -some might even use words like “infuriating” (I know I do).&amp;#160; So, we decided to wire up a ghost window’s close button to the infrastructure that sent crash reports back to Microsoft… and voila!, hang reporting was born.&lt;/p&gt;  &lt;p&gt;[Part 1] &lt;a href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-2-wer-history-101.aspx"&gt;Read part 2 &lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9490974" width="1" height="1"&gt;</description></item><item><title>FAQ</title><link>http://blogs.msdn.com/wer/archive/2009/03/16/faq.aspx</link><pubDate>Mon, 16 Mar 2009 19:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9481931</guid><dc:creator>BethanT</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/wer/comments/9481931.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9481931</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9481931</wfw:comment><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#startwer"&gt;How do I get started with Windows Error Reporting (WER)?&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#weronpc"&gt;How do I find Windows Error Reporting information on a PC?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#matching"&gt;How do we match up crash data (Windows Error Reporting signatures) with companies?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#whatfiles"&gt;What files should I map?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/archive/2009/03/19/let-there-be-hangs-part-1-not-responding.aspx"&gt;How do we detect applications hangs in Windows?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#bucket"&gt;What is a bucket?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#specialexception"&gt;What is a “special” exception?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#dumptypes"&gt;What are the different types of memory dumps?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/wer/pages/faq.aspx#when"&gt;When will I see data?&lt;/a&gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a title="startwer" name="startwer"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;strong&gt;How do I get started with Windows Error Reporting (WER)?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;A&lt;/b&gt;: As an Independent Software Vendor (ISV) who develops software applications for the Windows Operating Systems, you are able to register to receive Software Quality information from the Windows Quality website. &lt;/p&gt;  &lt;p&gt;Please follow this link to a page with directions on how to get started! (&lt;a href="http://www.microsoft.com/whdc/maintain/StartWER.mspx" mce_href="http://www.microsoft.com/whdc/maintain/StartWER.mspx"&gt;http://www.microsoft.com/whdc/maintain/StartWER.mspx&lt;/a&gt;). &lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a title="weronpc" name="weronpc"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;:&lt;strong&gt; How Do I find Windows Error Reporting information on a PC?&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;:&amp;#160; Here are the solutions for finding WER data on XP, Vista, and Windows 7. &lt;/p&gt;  &lt;table style="border-bottom: black 1px solid; border-left: black 1px solid; width: 400px; height: 246px; border-top: black 1px solid; border-right: black 1px solid" cellspacing="0" cellpadding="2" width="378"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="47"&gt;&lt;strong&gt;OS&lt;/strong&gt;&lt;/td&gt;        &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="69"&gt;&lt;strong&gt;WER Information&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="47"&gt;Windows XP&lt;/td&gt;        &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="69"&gt;Event Log&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="47"&gt;Windows Server 2003&lt;/td&gt;        &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="69"&gt;Event Log&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="47"&gt;Windows Vista&lt;/td&gt;        &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="69"&gt;Event Log          &lt;br /&gt;”wercon”&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="47"&gt;Windows Server 2008&lt;/td&gt;        &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="69"&gt;Event Log          &lt;br /&gt;”wercon”&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="47"&gt;Windows 7&lt;/td&gt;        &lt;td style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" valign="top" width="69"&gt;Event Log          &lt;br /&gt;Action Center&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h4&gt;&lt;font color="#ff0000"&gt;&lt;/font&gt;&amp;#160;&lt;/h4&gt;  &lt;h1&gt;Windows XP/ Server 2003&lt;/h1&gt;  &lt;p&gt;   &lt;br /&gt;On XP / Server 2003 you can find information about error reports in the &lt;strong&gt;Application Log&lt;/strong&gt;.     &lt;br /&gt;When a crash occurs the bucketing parameters are written to the Application Event log with the event source of “&lt;strong&gt;Application Error&lt;/strong&gt;” and event ID &lt;strong&gt;1000&lt;/strong&gt;.&amp;#160; &lt;br /&gt;When the crash is submitted the bucket ID is written to the Application Log with the same event source and has an event ID &lt;strong&gt;1001&lt;/strong&gt;.&lt;/p&gt;  &lt;h1&gt;Windows Vista / Server 2008&lt;/h1&gt;  &lt;p&gt;   &lt;br /&gt;On Vista you can use the “&lt;strong&gt;wercon&lt;/strong&gt;” control panel accessible via:     &lt;br /&gt;Start &amp;gt;Control Panel &amp;gt;System and Maintenance &amp;gt;Problem Reports and Solutions &amp;gt;View Problem History     &lt;br /&gt;Or     &lt;br /&gt;By typing “&lt;strong&gt;wercon&lt;/strong&gt;” in the Search Box at the base of the Start Menu.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image002_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image002_thumb.gif" width="480" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click on the “&lt;strong&gt;View problem history&lt;/strong&gt;” link&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image002%5B9%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[9]" border="0" alt="clip_image002[9]" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image002%5B9%5D_thumb.gif" width="484" height="363" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Double click on on a line item below the Application Name to view details:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image002%5B11%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[11]" border="0" alt="clip_image002[11]" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image002%5B11%5D_thumb.gif" width="481" height="361" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;Notice the&lt;strong&gt; bucketID&lt;/strong&gt; and the&lt;strong&gt; Copy to Clipboard feature.&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h1&gt;Windows 7&lt;/h1&gt;  &lt;p mce_keep="true"&gt;Using the Action Center:&amp;#160; &lt;/p&gt;  &lt;p&gt;Open the Action Center by clicking on the flag icon in the system tray&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image001%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001[5]" border="0" alt="clip_image001[5]" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/clip_image001%5B5%5D_thumb.jpg" width="33" height="41" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;   &lt;br /&gt;Select the Action Icon from the system tray, and click Open Action Center.&lt;/p&gt;  &lt;p mce_keep="true"&gt;By expanding the Maintenance toggle button, the customer can see the &lt;b&gt;View System History&lt;/b&gt; link.&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/image_thumb_1.png" width="511" height="411" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;After selecting the &lt;b&gt;View System History&lt;/b&gt; link, the customer can click the &lt;b&gt;View problem reports and responses&lt;/b&gt; link.&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="View Problem Response and Reports/Reliability Panel" border="0" alt="View Problem Response and Reports/Reliability Panel" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/image_thumb_3.png" width="514" height="413" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;Or, you can type &lt;i&gt;&lt;b&gt;error &lt;/b&gt;&lt;/i&gt;into the &lt;b&gt;Search&lt;/b&gt; bar on the &lt;strong&gt;Start Menu &lt;/strong&gt;and click the “View problem History”&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="StartMenu &amp;quot;View Problem History&amp;quot;" border="0" alt="StartMenu &amp;quot;View Problem History&amp;quot;" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/FAQ_8412/image_thumb.png" width="369" height="86" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;Select &lt;b&gt;View Problem History&lt;/b&gt;, and then select &lt;b&gt;View problem reports and responses&lt;/b&gt;.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a title="matching" name="matching"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;strong&gt;How do we match up crash data?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A: &lt;/strong&gt;Here is the general mapping logic we used based on crash data that is gathered by Windows Error Reporting (WER) client.&amp;#160; Notice the difference between Pre Windows Vista, and Post Windows Vista.&lt;/p&gt;  &lt;p&gt;How do we match up crash signatures with Files that are mapped?&lt;/p&gt;  &lt;p&gt;We use 4-6 basic parameters to match mapped files in the developer portal, &lt;strong&gt;Windows XP &lt;/strong&gt;has fewer and matches on File Name and File Version for either Applications and Modules. With this in mind if you are still developing for &lt;strong&gt;Windows XP&lt;/strong&gt; it is a best practice to come up with a unique file name and file version. This best practice translates to any other development environment, but is important with &lt;strong&gt;Windows XP &lt;/strong&gt;as you can see the parameters below that the &lt;strong&gt;Windows XP &lt;/strong&gt;WER Client sends to our service.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows XP (Includes Windows Server 2003)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;WER client sends these parameters we use to match crashes: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Application Name &lt;/li&gt;    &lt;li&gt;Application Version &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;OR&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Module Name &lt;/li&gt;    &lt;li&gt;Module Version &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;With &lt;strong&gt;Windows XP/Windows Server 2003&lt;/strong&gt; crashes we have less data to use for matching crash signatures with files mapped on the portal.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Vista++ (includes Windows Server 2008)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;WER client sends these parameters we use to match crashes: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Application Name &lt;/li&gt;    &lt;li&gt;Application Version &lt;/li&gt;    &lt;li&gt;Application File Link Date &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;OR&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Module Name &lt;/li&gt;    &lt;li&gt;Module Version &lt;/li&gt;    &lt;li&gt;Module File Link Date &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We use the link date to get a more accurate match on the files mapped on the portal.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a title="matching" name="matching"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;strong&gt;&lt;a title="whatfiles" name="whatfiles"&gt;&lt;/a&gt;What files should I map&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A: &lt;/strong&gt;Given the way we have implemented mapping logic the best policy is to map only the files where you own or maintain the source code.&amp;#160; If you ship 3rd party or open source modules with your software where you do not own or maintain source then you will not be able to take action on these error reports, and this information will just be added noise and complexity.&lt;/p&gt;  &lt;p&gt;Even if you don’t map 3rd party modules you will still see crash reports where any module crashed your application.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: We have mapping collision detection that will preclude you from mapping certain files.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;p&gt;Product Name: &lt;strong&gt;FabrikamReportingApplication&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Product Binary files:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="540"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="140"&gt;&lt;strong&gt;File Name&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="66"&gt;&lt;strong&gt;File Version&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="24"&gt;&lt;strong&gt;Should I map?&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="140"&gt;FabrikamReportGUI.exe &lt;/td&gt;        &lt;td valign="top" width="66"&gt;1.0.0.0&lt;/td&gt;        &lt;td valign="top" width="308"&gt;User interface for my reporting product&lt;/td&gt;        &lt;td valign="top" width="24"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="140"&gt;FabrikamWebserviceDataImport.dll&lt;/td&gt;        &lt;td valign="top" width="66"&gt;1.0.0.1&lt;/td&gt;        &lt;td valign="top" width="308"&gt;Library used to import and transform data from web services.&lt;/td&gt;        &lt;td valign="top" width="24"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="140"&gt;ThirdPartyChartControl.dll&lt;/td&gt;        &lt;td valign="top" width="66"&gt;5.6.1.3&lt;/td&gt;        &lt;td valign="top" width="308"&gt;3rd party &lt;strong&gt;DLL &lt;/strong&gt;I’ve licensed to ship with my report product&lt;/td&gt;        &lt;td valign="top" width="24"&gt;No&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="140"&gt;OpenSourceDataVisualizer.exe&lt;/td&gt;        &lt;td valign="top" width="66"&gt;4.5.3.1&lt;/td&gt;        &lt;td valign="top" width="308"&gt;An open source application that helps with visualizing multiple data sources (I don’t maintain code for this)&lt;/td&gt;        &lt;td valign="top" width="24"&gt;No&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="140"&gt;OpenSourceGridControl.dll&lt;/td&gt;        &lt;td valign="top" width="66"&gt;2.3.1.4&lt;/td&gt;        &lt;td valign="top" width="308"&gt;An open source library where I’ve incorporated the source code into my build and maintain changes and updates for this source.&lt;/td&gt;        &lt;td valign="top" width="24"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;With the mapping scenario above you will still see crashes where &lt;strong&gt;ThirdPartyChartControl.dll&lt;/strong&gt; caused a crash in the &lt;strong&gt;FabrikamReportGUI.exe&lt;/strong&gt; application.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a title="bucket" name="bucket"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;strong&gt;&lt;a title="bucket" name="bucket"&gt;&lt;/a&gt;What is a bucket?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A: &lt;/strong&gt;A bucket uses a set of parameters gathered by the WER client to describe a WER Event.&amp;#160; For crash events the bucketing parameters are Application Name, Application Version, Application Build Date, Module Name, Module Version, Module Build Date, Exception Code, and Code Offset.&lt;/p&gt;  &lt;p&gt;There are also Generic Buckets that are made up of up to 10 parameters.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a title="specialexception" name="specialexception"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;strong&gt;&lt;a title="specialexception" name="specialexception"&gt;&lt;/a&gt;What is “special” exception?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A: &lt;/strong&gt;A special exception is a grouping of two WER event types: Buffer Overruns (BEX) where the exception code = C0000409, and Data Execution Prevention (DEP) where the exception code = C0000005.&amp;#160; These two event types are related to security of software and can also be viewed in the Security Alerts section of the website.&amp;#160; In order for the WER client to capture BEX events you need to use the /GS command when compiling your software.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a title="dumptypes" name="dumptypes"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;strong&gt;&lt;a title="dumptypes" name="dumptypes"&gt;&lt;/a&gt;What are the different types of memory dumps?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A: &lt;/strong&gt;Below is a table that contains brief descriptions of the different types of dump files that can appear in .CAB file.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="520"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="66"&gt;Extension&lt;/td&gt;        &lt;td valign="top" width="452"&gt;Description&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;.mdmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;minidump (Default dump collection type, stacks, and loaded modules)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;.hdmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;.mdmp += heap data&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;.kdmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;on-demand kernel mode minidump (snapshot of the kernel mode portion of a given user mode process) only sent if WCT (Wait Chain Traversal) added it, or was explicitly requested for a given ibucket by a user.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;memory.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;Old style (&amp;lt;=XPSP2) heap dump.&amp;#160; This is not actually a debugging dump file, instead its just a blob of read only pages &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;atk.dmp &lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;a&lt;/b&gt;pplication &lt;b&gt;t&lt;/b&gt;ermination &lt;b&gt;k&lt;/b&gt;ernel (taken when an exited process takes more than 10 seconds to actually terminate)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;hu.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;h&lt;/b&gt;eap &lt;b&gt;u&lt;/b&gt;ser&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;mu.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;m&lt;/b&gt;ini &lt;b&gt;u&lt;/b&gt;ser&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;odk.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;o&lt;/b&gt;n &lt;b&gt;d&lt;/b&gt;emand &lt;b&gt;k&lt;/b&gt;ernel&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;axhu.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;a&lt;/b&gt;rbitrary &lt;b&gt;x&lt;/b&gt;-process &lt;b&gt;h&lt;/b&gt;eap &lt;b&gt;u&lt;/b&gt;ser&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;axmu.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;a&lt;/b&gt;rbitrary &lt;b&gt;x&lt;/b&gt;-process &lt;b&gt;m&lt;/b&gt;ini &lt;b&gt;u&lt;/b&gt;ser&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;wxhu.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;w&lt;/b&gt;ct &lt;b&gt;x&lt;/b&gt;-process &lt;b&gt;h&lt;/b&gt;eap &lt;b&gt;u&lt;/b&gt;ser (wct is wait chain traversal)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="66"&gt;wxmu.dmp&lt;/td&gt;        &lt;td valign="top" width="452"&gt;&lt;b&gt;w&lt;/b&gt;ct &lt;b&gt;x&lt;/b&gt;-process &lt;b&gt;m&lt;/b&gt;ini &lt;b&gt;u&lt;/b&gt;ser &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="dumptypes" name="dumptypes"&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;strong&gt;&lt;a title="dumptypes" name="dumptypes"&gt;&lt;/a&gt;&lt;a title="when" name="when"&gt;When will I see data?&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A:&amp;#160; &lt;/strong&gt;After mapping files we will start to pull any existing data we have for crashes. Generally you will see Hit data within a day or so. Users who setup Vista and Windows 7 with recommended settings (~80%) will automatically send us the hit data without any prompting, so you can see hits without cabs. &lt;/p&gt;  &lt;p&gt;By default we collect 10 cab (minidump) files per event, since a user still has to click on the “send additional information” button for us to get the crash dump it can take some time to get cab files. &lt;/p&gt;  &lt;p&gt;Once we receive cab files for an event you will generally be able to see these cabs within a few hours of us recieving them.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9481931" width="1" height="1"&gt;</description></item><item><title>An overview of WER consent settings and corresponding UI behavior</title><link>http://blogs.msdn.com/wer/archive/2009/03/11/an-overview-of-wer-consent-settings-and-corresponding-ui-behavior.aspx</link><pubDate>Wed, 11 Mar 2009 21:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9470878</guid><dc:creator>varunb</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/wer/comments/9470878.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9470878</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9470878</wfw:comment><description>&lt;p&gt;This post gives a high level overview of the various consent settings WER supports and the corresponding experience a user has when opted into any of those setting. Before going into further details, I want to clarify a couple of terms used here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;WER Client – The binaries that ship with the Windows OS and report problems to Microsoft. &lt;/li&gt;    &lt;li&gt;WER Service – The backend service hosted by Microsoft to which the WER client reports problems. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Windows users have three different levels to choose from when opting into reporting errors to Microsoft. these levels are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Level 1 – If a user chooses this option, Windows does not report problems to Microsoft automatically. Instead, every time a fault (like a crash or hang) occurs on the user’s machine, a dialog is presented to the user, to get explicit consent to report the fault to Microsoft. &lt;/li&gt;    &lt;li&gt;Level 2 (Is the default recommended by Windows - more details about defaults later in the post) – For users choosing this option, Windows automatically reports the problem signature (aka WER event parameters) to the Microsoft WER Service. However, if the backend WER Service requests for additional information from the machine (like mini dumps, log files), a dialog is presented to the user to get explicit consent before uploading the additional information. &lt;/li&gt;    &lt;li&gt;Level 3 – For users choosing this option, Windows automatically reports the WER event parameters to the backend WER Service, and if the WER Service requests for additional information that does not contain any personally identifiable information (PII), then that information is uploaded to the service automatically. An example of such information is a mini dump, which has an extremely low probability of containing PII. However, if the information requested by the WER Service has the potential to contain PII (for example, a heap dump), a dialog is presented to the user to get explicit consent before uploading the additional information. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Note that the three consent levels only come into play &lt;b&gt;if WER is enabled&lt;/b&gt; for the user/machine. If WER is disabled, then the user is never even prompted to report problems.&lt;/p&gt;  &lt;p&gt;Following is a summary of the typical Windows 7 user experience for each of the consent levels (&lt;b&gt;Note:&lt;/b&gt; Windows 7 is still in Beta and the UI is still susceptible to changes):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;User experience when WER is disabled:&lt;/b&gt; Error reporting does not kick in. A simple dialog informing the user about the crash is shown. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image_thumb.png" width="244" height="115" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image_thumb.png" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;User experience when WER consent level is set to 1:&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 1: On detecting a crash, WER client presents UI to get explicit user consent to report WER event parameters to Microsoft’s WER backend service&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image9.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image9.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image9_thumb.png" width="240" height="119" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image9_thumb.png" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 2: On getting consent in step 1, WER client starts reporting parameters to Microsoft&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image12.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image12_thumb.png" width="240" height="111" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image12_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 3: If the WER Service requests additional data (like heap dumps, log files etc.), WER client starts collecting the information.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image15.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image15.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image15_thumb.png" width="240" height="122" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image15_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 4: After completing data collection, WER client asks user for explicit consent to upload data to Microsoft. If user agrees, WER client uploads the data. If user clicks ‘Cancel’, the data is discarded and not sent to Microsoft.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image18.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image18.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image18_thumb.png" width="240" height="180" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image18_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;User experience when consent level is set to 2:&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 1: On detecting a crash, WER client automatically starts reporting WER event parameters to Microsoft’s WER Service.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image21.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image21.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image21_thumb.png" width="240" height="111" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image21_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 2: If the WER Service requests additional data (like mini dump, heap dumps, log files etc.), WER client starts collecting the information.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image24.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image24.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image24_thumb.png" width="240" height="122" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image24_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 3: After completing data collection, WER client asks user for explicit consent to upload data to Microsoft. If user agrees, WER client uploads the data.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image27.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image27.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image27_thumb.png" width="240" height="180" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image27_thumb.png" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;User experience when consent level is set to 3:&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 1: On detecting a crash, WER client automatically starts reporting WER event parameters to Microsoft’s WER backend service.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image30.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image30.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image30_thumb.png" width="240" height="111" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image30_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 2: If the WER Service requests additional data (like mini dump, heap dumps, log files etc.), WER client starts collecting the information&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image33.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image33.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image33_thumb.png" width="240" height="122" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image33_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Step 3: If the data collected is considered safe (i.e. not containing PII; like a minidump) WER client uploads that data automatically without asking for explicit user consent. If however, the data isn't considered safe (like heap dumps, log files etc.), WER client asks user for explicit consent to upload data to the WER Service. If user clicks ‘Send Information’, WER uploads the data.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image36.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image36.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image36_thumb.png" width="240" height="180" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image36_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; It is noteworthy that WER client never uploads data containing personally identifiable information (like heap dumps) automatically. Explicit user consent it always needed to upload such information. This design decision has been made to respect the privacy of Windows users.&amp;#160; &lt;/p&gt;  &lt;h4&gt;So how does a user configure/change WER settings?&lt;/h4&gt;  &lt;p&gt;The first place where a user chooses to opt into WER is the Windows Out of the Box Experience (aka Windows OOBE). The first time a new Windows 7 machine boots up, an OOBE screen is presented to the user which opts the machine into one of two WER consent levels depending on the user’s selection.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image1.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image1_thumb.png" width="488" height="233" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image1_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If the user does not choose “recommended settings” in OOBE, another “up-sell” dialog is presented to the user in the Windows Troubleshooting Control Panel&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image7.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image7.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image7_thumb.png" width="502" height="140" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image7_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the above dialog, if the user clicks ‘Yes’, his consent is bumped up to level 2. Note however, if the user has already set his consent level to higher than 2, it is not brought down.&lt;/p&gt;  &lt;p&gt;The OOBE and the up-sell dialog are presented to the user only once in the entire lifetime of his Windows 7 installation. If the user wants to change WER settings there after, he can do so by accessing the settings page via the Action Center Control Panel&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image4.png" mce_href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image4_thumb.png" width="493" height="175" mce_src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/AnoverviewofWERconsentsettingsandcorresp_B43D/image4_thumb.png" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This page allows setting the consent only for the specific user interacting with this page. However, if an administrator wants to configure settings for all users on a machine, he can do so by clicking on “Change report settings for all users” and making the same choice in that dialog.&lt;/p&gt;  &lt;p&gt;Hope this information helps you understand the various WER settings, the corresponding Windows UI behavior for each of the settings, and the exactly how to configure/edit these settings.&lt;/p&gt;  &lt;p&gt;Happy Error Reporting!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9470878" width="1" height="1"&gt;</description></item><item><title>Windows 7 Beta Data – Windows 7 Release Candidate Data</title><link>http://blogs.msdn.com/wer/archive/2009/02/13/windows-7-beta-data.aspx</link><pubDate>Fri, 13 Feb 2009 18:27:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9419026</guid><dc:creator>khill</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wer/comments/9419026.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wer/commentrss.aspx?PostID=9419026</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wer/rsscomments.aspx?PostID=9419026</wfw:comment><description>&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_2.png"&gt;   &lt;p&gt;     &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:03239fc9-7cf7-42c6-bf1e-493af83433ca" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+7+Beta" rel="tag"&gt;Windows 7 Beta&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+7+RC" rel="tag"&gt;Windows 7 RC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+7+Release+Candidate" rel="tag"&gt;Windows 7 Release Candidate&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+7" rel="tag"&gt;Windows 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Crash+Data" rel="tag"&gt;Crash Data&lt;/a&gt;&lt;/div&gt;   &lt;/p&gt;    &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_thumb.png" width="240" height="40" /&gt;&lt;/p&gt;  &lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_thumb_2.png" width="240" height="41" /&gt;&lt;/a&gt; &lt;/a&gt;  &lt;p&gt;Today we are releasing a report showing the companies Windows 7 beta crash data, and now the Windows 7 Release Candidate crash data!&amp;#160; This reports’ focus is to help companies see how well their applications are performing on the Windows 7 beta.&amp;#160; The report has two section, one highlights the top user-mode issues and the other highlights the top kernel-mode issues.&amp;#160; The data between the two of these sections are slightly different I will explain what each data point is trying to communicate.&lt;/p&gt;  &lt;p&gt;Navigate to: &lt;strong&gt;Windows Error Reporting &amp;gt; Software &amp;gt; My Reports&lt;/strong&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;And select the Windows7BetaDataFailures Report. (Being retired soon).&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_thumb_1.png" width="230" height="221" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Select the Windows7_RC_Failures report&lt;a href="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_8.png"&gt;           &lt;br /&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/wer/WindowsLiveWriter/Windows7BetaData_68C7/image_thumb_3.png" width="196" height="242" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;Download&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;!analyze&lt;/a&gt; to help in debugging the problems shown in this report.&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;&lt;a href="#usermode"&gt;&lt;a href="#usermode"&gt;User-mode:&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;#160; What is a user-mode failure?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;A failure is chosen based on analysis of the cab by !analyze, a debugger extension that is part of the Debugging Tools For Windows.&amp;#160; A Failure is a unique combination of Symbol, Problem Class and Exception code.&amp;#160; The failure may aggregate multiple Buckets (EventID’s).&amp;#160; The results of the analysis can be dependent on the availability of symbols (PDB files) for the modules related to the failure. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;:&amp;#160; Since we Microsoft does not have private symbols for debugging memory dump files failures are based on the best available analysis of memory dump files.&amp;#160; In order to get the most accurate depiction of what the failure is using private symbols in debugging will quickly show where the precise origin of a failure occurs.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="532"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;Rank&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;Shows the overall rank of this particular failure across all of Windows 7 within the specific Event Type listed below.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;Product Name&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;Shows the name of the product detected in this failure.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;Symbol&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;Shows the symbol (Module/Function) that caused the failure detected via !analyze.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;Problem Class&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;Shows a general description of the nature of the problem.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;Exception Code&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;Shows the OS Exception Code.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;Regression Percentage&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;Shows the percentage of time this failure has occurred on Windows 7 verses previous versions of Windows.&amp;#160; (100% Regression percentage = Detected only on Windows 7) &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;Module Version Range&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;Shows the versions of a file where this failure was detected via !analyze.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;&lt;strong&gt;View Cabs&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="368"&gt;A list of cabs that contain memory dumps related to this specific failure.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;&lt;a href="#kernel_mode"&gt;&lt;a href="#kernel_mode"&gt;Kernel-mode:&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size="4"&gt; What is a kernel-mode &lt;u&gt;bucket&lt;/u&gt;?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In kernel mode, the debugger walks the stack of the crashing thread and determines where to place the blame for the crash. Typically, a crash bucket name is derived from the debugger's choice of bugcheck stopcode + the blamed driver + the function name (if any, symbols are needed for this) + the function offset. All crashes assigned to a given bucket name can usually be considered as failing for the same reason. &lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="532"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;Rank&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Shows where the crash bucket ranks in the general Win7 crash population&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;Product Name&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Shows&amp;#160; Product detected in this hardware bucket, where available&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;Bucket Name&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Combination of bugcheck stopcode, failing driver, failing function, and function offset. For example: 0xD1_tdx!TdxEventReceiveConnection+2d3&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;File Name&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Name of the driver chosen as the cause of the crash via !analyze&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;Version&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Shows the version of the file that was detected via !analyze&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;Hits&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Shows the number of hits the crash bucket has seen in the past 30 days&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;Regression&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Shows if this bucket exists only in Windows 7 or also on Previous versions (True = Detected only on Windows 7)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;Driver Version Range&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Shows the range of versions where this particular bucket has been detected.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="170"&gt;&lt;strong&gt;View Cabs&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="360"&gt;Shows a list of cabs that contain memory dumps related to this specific kernel bucket.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9419026" width="1" height="1"&gt;</description></item></channel></rss>