Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

October, 2004

  • Aaron Stebner's WebLog

    DUAScriptGen - feature requests and bug reports?


    I got the opportunity to present a few slides about Device Update Agent (DUA) for some training my team presented yesterday, and during that presentation I gave a demo of DUAScriptGen, and several people who hadn't seen it before were interested in trying it out.  I wanted to consolidate links from some of Mike Hall's old blog posts and some of my old blog posts in one location for your convenience:

    I also wanted to request any bug reports or feature suggestions you might have for a future release of the tool.  Here is a list of what I have heard so far that I've got on my list to implement/investigate:

    • Bug in how the execute command syntax is being generated - http://blogs.msdn.com/mikehall/archive/2004/05/18/134251.aspx#188652
    • Ability to parse and convert INF files for updates in addition to the Additional Notes that are packaged with Embedded database updates
    • Ability to specify ErrorMode values in the DUAScriptGen UI
    • Bug when importing .reg files that have DWORD values that are greater than 10 - DUAScriptGen needs to convert them from hex to decimal

    If you have any additional items that I haven't listed above, please post a comment on this thread or send me a direct email at aaronste (at) microsoft (dot) com and I will add it to the list.  Stay tuned for updates soon....


  • Aaron Stebner's WebLog

    Updated features and known issues with C# Express Edition October community tech preview


    I wanted to highlight some of the updated features and known issues in the C# Express Edition community tech preview that was released earlier this week.  All of this information is in the online readme (along with some additional information about all of the other express edition October 2004 tech preview versions), but that kind of information tends to get buried so I wanted to bring it to everyone's attention as an FYI.

    Updated and new features:

    Project Templates

    Project Templates for Visual C# Express Edition Community Tech Preview October 2004 are now available at http://download.microsoft.com/download/6/e/9/6e9a1e2e-417b-494e-89d3-2bc03b751bd1/OctCTPTemplates.msi for download.

    "Edit and Continue" is now available in C#

    However, there are currently the following known issues:

    • Making an edit that results in no change (i.e. inside a #ifdef'd out region) can cause the IDE to crash
    • The Instruction Pointer (yellow arrow) can in some cases be placed incorrectly after stepping when an exception has been thrown.

    If you are working with code built from the Windows Forms Template (and a few others), you may not be able to do EnC at all.  To work around this, remove the "= null" initializer of the components field in the .designer.cs file as follows:

    private System.ComponentModel.IContainer components = null;

    should become

    private System.ComponentModel.IContainer components;

    New Start Page

    There is a new Start Page, but it is not enabled by default in this tech preview release.  To see the new start page choose Tools -> Options, then "Show All Settings", then Environment -> Startup.  From there, set "At startup: " to "Show Start Page".

    Other Changes:

    • New Community Menu: A few new features around community interaction.
    • New Local Data Wizards: Try connecting to your SQL Server Express database files using the new wizard.
    • Fewer Refactorings: To simplify the C# Express user experience, a few of the refactorings have been removed.

    Known issues:

    • ClickOnce is added to the Express SKUs, but it does not work in this tech preview release
    • ScreenSaver Starter Kit will not load


  • Aaron Stebner's WebLog

    Post-beta1 community tech previews of Visual Studio 2005 express editions now available!


    Hey all,

    The Visual Studio team has released a set of web-downloadable community tech previews for the VS 2005 express editions.  If you go to the individual express edition pages and click the big Download link, it will still download the beta1 versions.  However, if you scroll down to the Express Headlines section, there is a link to download the October 2004 community tech preview.  For your convenience, here are the direct links:

    One important note here - if you have any Visual Studio 2005 beta1 products installed, you will need to uninstall them before you install this community tech preview.  Setup will not block you, but it will fail if you don't uninstall VS 2005 beta1 first (including all pieces of VS - the .NET Framework, MSDN, SQL Express, etc).

    I know that a lot of you tried out the beta1 version using the automatic downloader and there has been a lot of frustration and failed installs resulting from that.  The VS setup team has done a lot of work to make the downloader more bulletproof and provide better progress indications, etc.  I encourage you all to give it a try and send any feedback you have back to Microsoft.  If you send it to me I'll be happy to route it on to the setup team (my former team).  You can also log bugs and suggestions on the MSDN feedback site at http://lab.msdn.microsoft.com/productfeedback/default.aspx.

    Also, since this is a community tech preview and not a full-fledged beta, there are some known issues that were not fixed in time for this release.  You can find that list at http://lab.msdn.microsoft.com/express/readme/cptreadme1004/default.aspx



  • Aaron Stebner's WebLog

    Deciphering Windows safe boot and last-known good configurations


    Yesterday I was working with one of our developers on an issue related to the Enhanced Write Filter in XP Embedded (also known as EWF).  I installed the EWF driver on one of my test machines - it is an upper filter driver that has to be loaded at boot time and is flagged to cause a blue screen of death with error code 0x7B if it fails to initialize correctly.  I had gotten my machine into a state where I got a BSOD 0x7B every time I tried to boot to my XP Embedded OS, so I wanted to boot into my XP Professional partition and try to fix it.  I learned a couple interesting tricks that made this much easier, and I think some of you probably know this but I wanted to share it for those who don't.

    There are a set of registry keys that describe the drivers and services installed on a Windows NT-based OS (such as Windows NT4, Windows 2000, Windows XP, Windows Server 2003, etc).  If you are booted into an OS, the keys under HKLM\System\CurrentControlSet describe the currently running OS.  This hive is a mirrored copy of one of the hives under HKLM\System\ControlSet### (where # is a numerical value, normally something like 001, 002).

    So the next question is - what if I see multiple ControlSet### registry hives on my machine?  How do I figure out what each one of those is?  If you look at HKLM\System\Select, you will see some DWORD values there:

    1. Current - this is the control set number of the drivers/services for the currently booted OS if you are booted into the image.  This means that the hives CurrentControlSet and ControlSet# where # equals this Current value in the registry are mirrored copies of the same data - and changes to one will be reflected in both places
    2. Default - this is the control set number of the drivers/services for the OS that will boot by default if you do not change the selection in the OS boot menu.  If you are booted into an OS currently, this value should be the same as the Current value
    3. Failed - if you have received a BSOD during boot at some previous time, this is the control set number of the drivers/services for the OS that has failed to boot, and there will be a ControlSet# hive that is cached under HKLM\System to allow debugging and troubleshooting
    4. LastKnownGood - this is the control set number of the drivers/services for the OS that will boot if you press F8 when the OS boot menu appears and then choose the last known good configuration

    Until I talked to our dev, I didn't know what the difference was between any of the ControlSet### hives, so I booted to my XP Pro OS, loaded the system registry hive from my broken XP Embedded OS using the strategy I described here (except I loaded system instead of system.sav since my image had already gone through first-boot agent), went to ControlSet001 and removed all of the information about the EWF driver that was somehow causing the BSOD 0x7B.  Then I found that when I booted back to the XP Embedded partition I still got the same BSOD.

    Once I figured out how to map ControlSet### to the currently active hive, I was able to remove the driver information from the correct hive and then my XP Embedded image booted normally again.

    Note that my example above involved troubleshooting an XP Embedded OS image, but the principles about keeping track of the drivers and services using HKLM\System\CurrentControlSet and ControlSet### applies the same way to all NT-based OS's and not just embedded.


  • Aaron Stebner's WebLog

    How to clear XPE SP2 tech preview downloads from the pending download queue


    Hey all,

    I received some feedback from a couple of customer who are using the XPEFFI tool to download the XP Embedded SP2 tech preview and are using dial-up connections.  They indicated that they discovered the size of the download and cancelled it because of the large size, but that the items remained in the queue and continued to be downloaded by the Background Intelligent Transfer Service (BITS) and killing their connection throughput.  This is an issue that I have fixed for the RTM version of XPEFFI, but I wanted to provide a set of steps that you can use to remove these download jobs from the queue on your machine in the meantime:

    1. First, download the bitsadmin.exe tool that is part of the Platform SDK.  I put a copy at http://astebner.sts.winisp.net/Tools/bitsadmin.exe.txt so that you do not need to download the entire PSDK.  Note that you will need to rename the file from bitsadmin.exe.txt to bitsadmin.exe when you download it to your machine
    2. Follow the instructions at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bits/bits/bitsadmin_tool.asp to run bitsadmin.exe from a cmd prompt to clear your BITS cache.  The easiest option is to run the /Reset switch to clear all jobs from the cache.  However, if you have jobs from other locations that you want to keep, you can use the /List switch to get a list of all pending jobs, and then use the /Cancel switch to cancel only the jobs created by XPEFFI.  They will all be named with the prefix "XPEFFI-SP2-RC" so they should be easy to find

    I apologize for the inconvenience that this has caused.  Please contact me if you have any issues getting this to work for you.



  • Aaron Stebner's WebLog

    XP Embedded SP2 tech preview is now available for download!!


    Hey all, the XP Embedded SP2 technology preview is now live and ready to download.  You can get the downloader tool and more information about XPE SP2 by clicking on the image below....

    Download XPE SP2 Tech Preview Now!

    I'm really excited to hear what everyone thinks about the new and updated features (I'll be posting more about some of the interesting new features in the near future).  Please send me an email at aaronste (at) microsoft (dot) com with any comments, questions, bug reports, positive or negative feedback.  Also, I worked with Mike Hall to write the downloader tool so I'd also be interested in any comments you have about that.


  • Aaron Stebner's WebLog

    Takeaways from Windows Embedded Japan trip


    Hey all, I made it back from my trip to Tokyo for Embedded DevCon Japan 2004 and some customer visits.  I fully intended to write blog entries after each day of the trip but underestimated the exhaustion I was going to feel - between the jet lag, a little bit of culture shock (this was my first trip to a country where I didn't understand the lanugage or at least be able to sort of read the text), and the fatigue from the conference and volume of customer visits themselves I wasn't able to come up with the energy before I went to bed each night to post something.

    The talks at DevCon went better than I was expecting.  I knew the technologies, but the talks were inherited from content presented earlier this summer so that made me a little nervous.  I created an updated demo to show how to use the SDI file format to boot from RAM (because the original presenter was out of the office in training the week before my trip), and that really helped me learn how things work as well as where some of our documentation and examples are a little lacking (I'm hoping to do some kind of write up of an end-to-end example for a future white paper or something like that).  The night before the conference I met with 2 interpreters for about an hour to go over the content, and it was then that I realized that nearly all of the attendees for my talks would be using headsets to listen to the Japanese translations of what I would be saying rather than focusing on my words.  That helped to relax me a little bit also.  Then I got to the conference center the next day and found out that my 2 talks would be nearly full - I'm estimating there were somewhere between 100-150 people at each of them (as opposed to about 20 people at each of my talks at DevCon USA in San Diego).  So I started out a little shaky but once I settled in things went well.  My first talk about EWF lasted 50 of the 60 minutes, and I talked with the interpreters afterwards about ideas for slowing things down and taking better pauses.  For the 2nd talk about SDI and RAM boot, I focused on taking breaks after every sentence or so, and I started realizing that I could hear the interpreters speaking in those pauses - so this helped me pace things better, and I used about 59 of the 60 minutes.

    The next 2 days, myself and the other 4 team members that came with me from Redmond, along with a few members of our Japanese subsidiary team visited 5 different companies that are using XP Embedded or evaluating it for future use.  The team is meeting back in Redmond on Monday to discuss takeaways, and I'm not sure how much of the specific content I am able talk about due to non-disclosure and things like that so I'm going to give a high-level summary of the biggest issues I heard that were common across all of the customers we met, along with the highlight of the trip for me.

    Three big common themes I heard (in no particular order) are the following:

    1. Security - customers want to know how they can ensure security for their devices against existing and future attacks.  Some of the customers were not aware of the white paper that we released late in the spring with strategies for configuring Internet Connection Firewall (ICF) for XP Embedded SP1 - it can be found at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/icf_advACI.asp
    2. Servicing - customers want to know what options they have for applying patches and updates to devices already deployed in the field.  For nearly all of them, rebuilding and redeploying an entirely new image is not an option they are willing to endure
    3. Fast boot time - all of the customers we met want to boot the machine into a shell as fast as possible and wanted to talk about how to speed things up even more than they are now.  This is something I want to talk about as a separate blog item in the near future - it is not something I have a lot of experience with and I want to do some more research so I can accurately talk about the current strategies and any additional options that may be useful for customers

    Aside from the above, the highlight from the customer visits for me me personally was hearing one of the customers tell us that they were having a problem with Enhanced Write Filter (EWF) and needed an urgent resolution in the next couple of weeks for a project they were working on, but they attended my talk about EWF at DevCon and were able to solve their problem.  Unfortunately, due to the meeting running long and the customers speaking only Japanese, I wasn't able to dig in deeper to figure out what the problem was and what in the talk helped them solve it, but nonetheless it was very rewarding to hear that something I said made a difference to their work, however small it might have been.

    That's about all I've got for now, I'm still a little jet lagged so it is time for a nap for me.  If anyone out there has any comments about their experiences, especially with the 3 areas of concern listed above, please drop me a comment on the blog or send me an email.  As always, thanks for reading!

Page 1 of 1 (7 items)