Posts Tagged ‘crash’

Upgrade to the latest Microsoft Advertising SDK for Windows Phone 7 to avoid application crashes

Thursday, February 10th, 2011

Microsoft provides an ad control to integrate in Windows Phone applications.

The first version of the SDK, namely 2.1.9130.1 released on Sept.29 2010, has a critical bug that crashes your whole application when the ads are set to auto rotation.

You know you’re affected if your application unexpectedly crashes with an “Element is already the child of another element.” error message:

System.InvalidOperationException was unhandled
  Message=Element is already the child of another element.
       at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
       at MS.Internal.XcpImports.Collection_AddValue[T](PresentationFrameworkCollection`1 collection, CValue value)
       at MS.Internal.XcpImports.Collection_AddDependencyObject[T](PresentationFrameworkCollection`1 collection, DependencyObject value)
       at System.Windows.PresentationFrameworkCollection`1.AddDependencyObject(DependencyObject value)
       at System.Windows.Controls.UIElementCollection.AddInternal(UIElement value)
       at System.Windows.PresentationFrameworkCollection`1.Add(UIElement value)
       at Microsoft.Advertising.Mobile.UI.AdFrameManager.CreateNewFrame(FrameworkElement[] controls)
       at Microsoft.Advertising.Mobile.UI.AdFrameManager.DisplayNextFrame(Boolean newAd)
       at Microsoft.Advertising.Mobile.UI.AdFrameManager.ResumeFrameRotation()
       at Microsoft.Advertising.Mobile.UI.AdControl.ActivateAdControl()
       at Microsoft.Advertising.Mobile.UI.AdControl.OnParentSelectionChanged(Object sender, SelectionChangedEventArgs e)

The workaround so far was to disable auto rotation:


<ad:AdControl AdModel="Contextual" AdUnitId="123" ApplicationId="123456" RotationEnabled="False" />

On December 8th 2010, Microsoft released an update to the SDK, version 2.1.11120.1

This update seems to have fixed the problem and can be downloaded here.

If you’re running ads in your apps on WP7, please do upgrade to the latest version as you may not even be aware of this bug.

Microsoft showed a lack of communication about this update:

1/ The blog post announcing the update doesn’t describe what the update consists of, and which bugs it fixes

2/ The download page does not have any changelog of overview describing what bug fixes and features are included in the update

In contrast, the Windows Phone Developer Tools January 2011 Update download page does have an Overview section summarizing the important changes.

3/ No email or communication was sent to the PubCenter users.

As a PubCenter member I receive updates on how great PubCenter is, that it represents 33.8% of U.S search queries with the partnership with Yahoo! and other communications explaining how to use PubCenter.

4/ No message in the “What’s New” section of the PubCenter advertises the update.

The last message I have from this section dates back to September.

How come, with at least 4 different communication channels listed above, I’m not alerted when something really important happens, like an update to a buggy SDK?

Did I completely miss it?
Or was it an intentional silent update to avoid admitting an embarrassing bug?

A search on “Element is already the child of another element” in the PubCenter forums yields nothing.

The same search on the Windows Phone 7 developer forums returns 2 main threads:

One with a user (Momenta aka Matt Dotson) posting a workaround on December 18th, 10 days after the release of the SDK update, so obviously he was not aware of the update either.

Another thread started on November 16th with user as far as Jan. 23rd posting they encounter the problem before a Microsoft employee (Mark Chamberlain) suggests using the latest Advertising SDK:

Are you folks using the latest Advertising SDK?

I found an internal email thread suggesting that it is the cure for the issue (Element is already the child of another element)

Hope this helps,

Obviously I was not the only one not knowing about the update.

To the Microsoft Advertising SDK team, could you please be more communicative about your updates and bug fixes?

Developers would greatly appreciate.


Update 02/11/2011:
MSFT responded favorably to our request for more communication.
Thanks guys for being proactive and listening to your developer community.
MSFT is doing a great job following and supporting their dev community for Windows Phone 7, we’re impressed.

Update 03/24/2011:
Well we’re not impressed anymore: on 02/11 Douglas Robb from Microsoft acknowledged the problem this way:

Thanks for the suggestion. We hear you. Those above me also hear you. When I say ‘those above me’ that means pretty much everybody, so have no fear, the word is out.

And we falsely assumed the next release would be… advertised (pun intended).
It was not: a new version was released on 03/04.
Thanks again to Mark Chamberlain to let the WP7 devs know about it.

We urged them again to correct this situation and hopefully next time have the new release properly advertised.
In the meantime, the only way to tell a new release is out is too… refresh the download page everyday.
Oh so lame in 2011 when they could have used one of those (modern?) communication channels:
- a special email sent just for the release
- the “weekly blog recap” email blast
- “Messages” section of the dashboard
- the pubCenter blog

Even more confusing: Only the XNA version of the SDK was updated, not the Silverlight:

Before installing the latest version (and using the Dec. 08 2010 version):
Microsoft.Advertising.Mobile.UI.dll is at version 2.1.11120.1, filesize 89,912 bytes
Microsoft.Advertising.Mobile.Xna.dll is at version, filesize 214,400 bytes

After installing
Microsoft.Advertising.Mobile.UI.dll is at version 2.1.11120.1, filesize 89,912 bytes (NO CHANGE)
Microsoft.Advertising.Mobile.Xna.dll is at version, filesize 216,472 bytes

It can be extremely confusing because the download page is now using the version of the XNA DLL and shows as the version number, which is correct for the XNA library only.
Previously this same download page was using the version of the Silverlight DLL (2.1.11120.1) to show the version.

Dear PubCenter, obviously you cannot switch between using the Silverlight version of the DLL and the XNA version.
Either provide 2 different downloads links with their respective version tied to the DLL version and separate the DLLs, or come up with a compounded version number.
Next time you update the Silverlight SDK, your download link will have a version starting in 2.X, don’t you think that will confuse everyone using the latest

Update 03/30/2011:
Microsoft now advertising updates and the changelog.
These are for the Silverlight update of December 8th 2010 and the XNA update of March 4th 2011 (about time to get the changelogs…).
Hopefully next release will be advertised the proper way through different communication channels (blog, emails, newsletter, twitter) along with a much needed changelog.

Update 04/05/2011:
Troy Wood, Portfolio Manager for Windows Phone 7 App Publishers writes:
“Starting with 5.2, both, Silverlight and XNA will use same 5.2.xxxx.y version number.”
Seems the revision problem is fixed for next release.

Windows 7 Ultimate Blue Screen of Death

Wednesday, February 2nd, 2011

This happens almost every time I install updates and reboot.
It gets stuck for a while at shut down, then burps a blue screen and restarts right away.

Once booted you have a nice welcome popup titled “Windows has recovered from an unexpected shutdown”:

Windows can check online for a solution to the problem.

Problem signature:
Problem Event Name: BlueScreen
OS Version: 6.1.7600.
Locale ID: 1033

Additional information about the problem:
BCCode: 9f
BCP1: 0000000000000003
BCP2: FFFFFA800926B440
BCP3: FFFFF80004117518
OS Version: 6_1_7600
Service Pack: 0_0
Product: 256_1

Files that help describe the problem:

Read our privacy statement online:×0409

If the online privacy statement is not available, please read our privacy statement offline:

If you hit the “Check for solution” button it closes the popup and that’s all.
Whatever happened to the result?
Were those two diagnostic files (the .dmp and .cml) sent to MSFT?
And how come the .xml file gets deleted after being sent?
Maybe I want to keep a trace of it.

Here’s the a copy of the “Offline Privacy Statement” located in C:\Windows\system32\en-US\erofflps.txt for future reference.

Windows 7 Offline Privacy Statement for the Microsoft Error Reporting Service

For the most up-to-date privacy information, see the online Windows 7 Privacy Statement at:


The Microsoft Error Reporting Service helps Microsoft and Microsoft partners diagnose problems in the software you use and provide solutions. Not all problems have solutions, but when solutions are available, they are offered as steps to solve a problem you’ve reported or as updates to install. To help prevent problems and make software more reliable, some solutions are also included in service packs and future versions of the software.

The Microsoft Error Reporting Service also provides Setup Repair, an error reporting service that may run during Windows setup if a problem occurs.


Many Microsoft software programs, including Windows 7, are designed to work with the reporting service. If a problem occurs in one of these software programs, you might be asked if you want to report it. If you host virtual machines using a Windows operating system, reports generated by the Windows operating system for the Microsoft Error Reporting Service might include information about virtual machines.

The reporting service collects information that is useful for diagnosing and solving the problem that has occurred, such as:

* Where the problem happened in the software or hardware
* The type or severity of the problem
* Files that help describe the problem
* Basic software and hardware information
* Possible software performance and compatibility problems

These reports might unintentionally contain personal information. For example, a report that contains a snapshot of computer memory might include your name, part of a document you were working on, or data that you recently submitted to a website. If a report is likely to contain this type of information, Windows will ask if you want to send this information, even if you have enabled automatic reporting through the “Recommended settings” option in setup, or Control Panel. This gives you the opportunity to review the report before sending it to Microsoft. Reports including files and data might be stored on your computer until you have an opportunity to review and send them, or after they have been sent.

If an error report contains personal information, Microsoft does not use the information to identify you or contact you. In addition, if you enable automatic reporting through the “Recommended settings” option in setup, or in Control Panel, the reporting service will send basic information about where problems occur automatically, but these reports will not have the detail described above.

After you send a report, the reporting service might ask you for more information about the error you experienced. If you choose to provide your phone number or e-mail address in this information, your error report will be personally identifiable. Microsoft might contact you to request additional information to help solve the problem you reported.

The Microsoft Error Reporting Service generates a globally unique identifier (GUID) that is stored on your computer and sent with error reports to uniquely identify your computer. The GUID is a randomly generated number; it does not contain any personal information and is not used to identify you. We use the GUID to distinguish how widespread the feedback we receive is and how to prioritize it. For example, the GUID allows Microsoft to distinguish between one customer experiencing a problem one hundred times and one hundred customers experiencing the same problem once.


Microsoft uses information about errors and problems to improve Microsoft products and services as well as third-party software and hardware designed for use with these products and services. Microsoft employees, contractors, vendors, and partners might be provided access to information collected by the reporting services. However, they will use the information only to repair or improve Microsoft products and services and third-party software and hardware designed for use with Microsoft products and services.

Microsoft might share aggregate information about errors and problems. Microsoft uses aggregate information for statistical analysis. Aggregate information does not contain specific information from individual reports, nor does it include any personal or confidential information that might have been collected from a report.

Except as described in this statement, personal information you provide will not be transferred to third parties without your consent. We occasionally hire other companies to provide limited services on our behalf, such as performing statistical analysis. We will only provide those companies the personal information they need to deliver the service, and they are prohibited from using that information for any other purpose.

Microsoft may access or disclose information about you, including the content of your communications, in order to: (a) comply with the law or respond to lawful requests or legal process; (b) protect the rights or property of Microsoft or our customers, including the enforcement of our agreements or policies governing your use of the software; or (c) act on a good faith belief that such access or disclosure is necessary to protect the personal safety of Microsoft employees, customers, or the public.

Information collected by or sent to Microsoft by Windows 7 may be stored and processed in the United States or any other country in which Microsoft or its affiliates, subsidiaries, or service providers maintain facilities. Microsoft abides by the safe harbor framework as set forth by the U.S. Department of Commerce regarding the collection, use, and retention of data from the European Union.


If you choose the recommended settings during Windows 7 setup, basic information about errors will be sent automatically to Microsoft. If a more detailed error report is required, you will be prompted to review it before it is sent. You can change this setting at any time by going to Action Center in Control Panel.


Microsoft is committed to helping protect the security of your information. We use a variety of security technologies and procedures to help protect your information from unauthorized access, use, or disclosure. For example, we store the information you provide on computer systems with limited access, which are located in controlled facilities.


If you have questions about this privacy statement, please contact us by submitting your questions online to Privacy Feedback at:

Windows 7 Offline Privacy Statement for the Microsoft Error Reporting Service
c/o Microsoft Privacy Response Center
Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052 USA

Back in December 6th, here is another BSOD I had (hum, probably the machine was not rebooted for 2 months, which is not a biggie in the Linux world)

Problem signature:
Problem Event Name: BlueScreen
OS Version: 6.1.7600.
Locale ID: 1033

Additional information about the problem:
BCCode: 1000009f
BCP1: 0000000000000004
BCP2: 0000000000000258
BCP3: FFFFFA8009147B60
BCP4: FFFFF80004111510
OS Version: 6_1_7600
Service Pack: 0_0
Product: 256_1

Files that help describe the problem:

Read our privacy statement online:×0409

If the online privacy statement is not available, please read our privacy statement offline:

Digging further I unearthed another record of BSOD on a Vista machine back in September 9th 2010:

Problem signature:
Problem Event Name: BlueScreen
OS Version: 6.0.6001.
Locale ID: 1033

Additional information about the problem:
BCCode: a
BCP1: 0000000000000008
BCP2: 0000000000000002
BCP3: 0000000000000000
OS Version: 6_0_6001
Service Pack: 1_0
Product: 768_1

Files that help describe the problem:

Read our privacy statement:×0409

BSODs are still alive and kicking in 2011.

I wondered if that’s the problem HAL had back in 2001 on its way to Jupiter.