<?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>barrybo</title><link>http://blogs.msdn.com/barrybo/default.aspx</link><description>Infrequent and rambling posts about DeviceEmulator and other things important in my life</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Second edition of Shared Source CLI Essentials is coming!</title><link>http://blogs.msdn.com/barrybo/archive/2008/08/21/second-edition-of-shared-source-cli-essentials-is-coming.aspx</link><pubDate>Thu, 21 Aug 2008 18:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8885686</guid><dc:creator>barrybo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/8885686.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=8885686</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'; mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Great news!&amp;nbsp; Joel Pobar and Ted Neward have been working on a new edition of the Shared Source CLI Essentials &lt;A href="http://www.amazon.com/Shared-Source-Essentials-David-Stutz/dp/059600351X" mce_href="http://www.amazon.com/Shared-Source-Essentials-David-Stutz/dp/059600351X"&gt;&lt;FONT size=2&gt;book&lt;/FONT&gt;&lt;/A&gt;, titled "Shared Source CLI 2.0 Internals".&amp;nbsp; It is based on the Rotor 2.0 source release, so there are lots of new places to explore in the code.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'; mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Check out Joel's blog at &lt;A href="http://callvirt.net/blog/entry.aspx?entryid=b9a94d0c-761a-4d6b-bc2f-d6a5f8c1a4a7" mce_href="http://callvirt.net/blog/entry.aspx?entryid=b9a94d0c-761a-4d6b-bc2f-d6a5f8c1a4a7"&gt;http://callvirt.net/blog/entry.aspx?entryid=b9a94d0c-761a-4d6b-bc2f-d6a5f8c1a4a7&lt;/A&gt;&amp;nbsp;for the details.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'; mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Barry&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'; mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8885686" width="1" height="1"&gt;</description></item><item><title>BarryBo and high-end PC video games?!?!!</title><link>http://blogs.msdn.com/barrybo/archive/2007/11/06/barrybo-and-high-end-pc-video-games.aspx</link><pubDate>Wed, 07 Nov 2007 05:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5951823</guid><dc:creator>barrybo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/5951823.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=5951823</wfw:commentRss><description>&lt;P&gt;My "hush-hush" project is finally opening up a little!&amp;nbsp; &lt;/P&gt;
&lt;P&gt;After delving deep into the world of mobile and embedded applications as part of the DeviceEmulator project, I decided to learn a very different style of software... video games.&amp;nbsp; Instead of squeezing bytes and milliwatts out of code, I now worry about framerates, real-time audio&amp;nbsp;data decompression and of course, piracy.&lt;/P&gt;
&lt;P&gt;As we move close to tech-transfer, we are growing the team.&amp;nbsp; Here is the job description text:&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Join an incubation team in MSR is working on a project aimed at high-end PC video games.&lt;BR&gt;&lt;BR&gt;We are looking for someone with excellent kernel and driver development experience and debugging expertise, ready to take ownership of multiple product features. Areas of responsibility may include: game content protection, 3D graphics acceleration, OS/driver development, hardware prototyping, device firmware development, and compilers. Strong assembly, C, C++, and debugging skills are required along with a proven track record of shipping product. DirectX experience and PC video game development experience are not required, but would be a plus.&lt;BR&gt;&lt;BR&gt;The project is expected to transfer into a high-profile product group and rapidly accelerate to a V1 release. This position would follow the project into the product group.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To apply, visit &lt;A href="http://members.microsoft.com/careers/search/details.aspx?JobID=A1E89CF7-20D7-464F-91E5-692D9EAF7B1B&amp;amp;start=1&amp;amp;interval=10&amp;amp;SortCol=DatePosted"&gt;http://members.microsoft.com/careers/search/details.aspx?JobID=A1E89CF7-20D7-464F-91E5-692D9EAF7B1B&amp;amp;start=1&amp;amp;interval=10&amp;amp;SortCol=DatePosted&lt;/A&gt;, or search for job code # 204427 at &lt;A href="http://www.microsoft.com/career"&gt;http://www.microsoft.com/career&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5951823" width="1" height="1"&gt;</description></item><item><title>Notification LED in the DeviceEmulator V2.0 - How to customize the LED with a skin</title><link>http://blogs.msdn.com/barrybo/archive/2007/07/31/notification-led-in-the-deviceemulator-v2-0-how-to-customize-the-led-with-a-skin.aspx</link><pubDate>Tue, 31 Jul 2007 13:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4148328</guid><dc:creator>barrybo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/4148328.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=4148328</wfw:commentRss><description>&lt;P&gt;DeviceEmulator 2.0 adds several new peripheral devices, including notification LED and vibrate.&lt;/P&gt;
&lt;P&gt;If the emulator is running without a skin, or with a skin that predates the LED feature, then the emulator displays the LED as a blinking box in its title bar.&amp;nbsp; However, you can integrate it into the skin and make it look like a real LED.&amp;nbsp; The .zip file attached to this post contains a sample skin I put together - it is a PocketPC 2003 skin, updated so the power button blinks.&lt;/P&gt;
&lt;P&gt;Behind the scenes, the LED is represented in the skin XML as a button, just like the buttons used to send keystrokes into the emulator.&amp;nbsp; The difference is that the LED contains an extra XML attribute:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;isNotificationLED="true"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The "up" skin bitmap is used to display the LED in the&amp;nbsp;ON setting.&amp;nbsp; The "down" skin bitmap is used to display the LED in the ON setting.&amp;nbsp; Note that skin buttons with isNotificationLED="true" are no longer buttons that can send keystrokes, so the onPressAndHold and onClick attributes are ignored.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4148328" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/barrybo/attachment/4148328.ashx" length="46942" type="application/x-zip-compressed" /></item><item><title>Come work with BarryBo on whatever-it-is-that-I-work-on</title><link>http://blogs.msdn.com/barrybo/archive/2007/07/27/come-work-with-barrybo-on-whatever-it-is-that-i-work-on.aspx</link><pubDate>Fri, 27 Jul 2007 20:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4085908</guid><dc:creator>barrybo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/4085908.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=4085908</wfw:commentRss><description>&lt;P&gt;Back in October, I left the DeviceEmulator team for a new position in Microsoft Research.&amp;nbsp; The project's details are hush-hush, even inside Microsoft, so I've been keeping a low profile in the blogsphere.&lt;/P&gt;
&lt;P&gt;It isn't time to announce the project yet, but it is time to hire another developer.&amp;nbsp; The job description is up on microsoft.com at &lt;A href="http://members.microsoft.com/careers/search/details.aspx?JobID=A1E89CF7-20D7-464F-91E5-692D9EAF7B1B&amp;amp;start=1&amp;amp;interval=10&amp;amp;SortCol=DatePosted"&gt;http://members.microsoft.com/careers/search/details.aspx?JobID=A1E89CF7-20D7-464F-91E5-692D9EAF7B1B&amp;amp;start=1&amp;amp;interval=10&amp;amp;SortCol=DatePosted&lt;/A&gt;.&amp;nbsp; If that link doesn't work, visit &lt;A href="http://www.microsoft.com/careers/"&gt;http://www.microsoft.com/careers/&lt;/A&gt;&amp;nbsp;and enter 204427 as the job code value.&lt;/P&gt;
&lt;P&gt;So if you're qualified, and are itching to know just what it is I'm up to, here's a chance to come join the team!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4085908" width="1" height="1"&gt;</description></item><item><title>Experimenting with the Shared Source DeviceEmulator's JIT compiler - tracing and debugging</title><link>http://blogs.msdn.com/barrybo/archive/2007/07/09/experimenting-with-the-shared-source-deviceemulator-s-jit-compiler-tracing-and-debugging.aspx</link><pubDate>Mon, 09 Jul 2007 17:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3784126</guid><dc:creator>barrybo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/3784126.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=3784126</wfw:commentRss><description>&lt;P&gt;There are some mechanisms built into the DeviceEmulator's JIT which can make debugging and tracing both the JIT and guest code fairly straightfoward.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;1)&amp;nbsp; Define LOGGING_ENABLED to 1 in include\emulator.h, to compile in debug logging in the JIT.&amp;nbsp; Several variables control logging:&lt;/P&gt;
&lt;P&gt;- LogInstructionStart - begin logging once 'n' guest instructions have been executed&lt;/P&gt;
&lt;P&gt;- the LogIf() macro specifies the conditions under which logging happens.&amp;nbsp; The expression "(Cpu.CPSR.Bits.Mode == UserModeValue &amp;amp;&amp;amp; InstructionCount &amp;gt;= LogInstructionStart)" logs only instructions executed in usermode, and only after LogInstructionStart instructions have executed.&amp;nbsp; This is a handy trigger, as it filters out interrupt handlers.&amp;nbsp; JIT logging will dump the disassembled ARM opcodes and register state, showing you a single-step trace of your code as it runs.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2)&amp;nbsp; In cpus\arm\armcpu.cpp, edit g_fOptimizeCode to be 0/false instead of 1/true.&amp;nbsp; This disables cross-instruction optimizations such as the code that recognizes ARMFlushICacheLines and converts it to a no-op.&amp;nbsp; It also inserts a call to SingleStepHelper() between guest instructions, to poll for single-step requests from the hardware debugger interface.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3)&amp;nbsp; Write your own low-level debugger - create an instance of IDeviceEmulatorDebugger from another process, and you can read/write memory, read/write registers, break in, single-step, set breakpoints, etc.&amp;nbsp; This is the interface that the Platform Builder eXDI hardware debugger connects to.&amp;nbsp; See cpus\arm\debugger.cpp for the implementation of this interface - it's quite straightforward.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4)&amp;nbsp; If you are changing the JIT for some reason, and it stops working, open cpus\arm\armcpu.cpp and check out the comment block above "//#define GOOD_EMULATOR 1" - this feature allows you to run a known-good DeviceEmulator.exe and a known-bad DeviceEmulator.exe in lock-step with each other.&amp;nbsp; Each one steps forward by one guest instruction, then they compare results and if there is a difference, assert.&amp;nbsp; Please note that the two emulators quickly diverge if you enable guest hardware interrupts, as interrupt delivery is not slaved between the two emulators - timer interrupts will arrive at different times.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Barry&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3784126" width="1" height="1"&gt;</description></item><item><title>eXDI hardware debugging support in DeviceEmulator</title><link>http://blogs.msdn.com/barrybo/archive/2007/05/03/exdi-hardware-debugging-support-in-deviceemulator.aspx</link><pubDate>Thu, 03 May 2007 15:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2395405</guid><dc:creator>barrybo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/2395405.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=2395405</wfw:commentRss><description>&lt;P&gt;Windows Embedded CE 6.0 Platform Builder 6.0 SP1 is now available at &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=BF0DC0E3-8575-4860-A8E3-290ADF242678&amp;amp;displaylang=en"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT color=#0000ff size=3&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=BF0DC0E3-8575-4860-A8E3-290ADF242678&amp;amp;displaylang=en&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;The service pack adds eXDI hardware-level debugging into the Platform Builder 6.0 debugger, which is great news!&amp;nbsp; Even better, is that the eXDI driver for the DeviceEmulator shipped as sample source code.&amp;nbsp; Check out %ProgramFiles%\Microsoft Platform Builder\6.00\cepb\EXDI2\SAMPLEDRIVER\KdStubDe.&amp;nbsp; This is an updated version of the eXDI driver I demoed at PDC last year using PB 5.0.&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;o:p&gt;The DEComInterfaces.idl declares the COM interface to the DeviceEmulator, and lurking inside it is IDeviceEmulatorDebugger.&amp;nbsp; The KdStubDe translates eXDI method calls into IDeviceEmulatorDebugger calls, giving you the ability to debug&amp;nbsp;OS images even if no KITL/KdStub is present, and to debug all of the code in the image, including interrupt handlers and boot code.&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;o:p&gt;Please do take time to read the README.TXT to get familiar with the limitations of DeviceEmulatorEXDI... there are a few gotchas where the emulator's implementation makes hardware-level debugging a bit challenging.&amp;nbsp; ;-)&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2395405" width="1" height="1"&gt;</description></item><item><title>Accelerator project - compiling data-parallel programs to graphics processor units (GPUs) and multiprocessors</title><link>http://blogs.msdn.com/barrybo/archive/2007/04/02/accelerator-project-compiling-data-parallel-programs-to-graphics-processor-units-gpus-and-multiprocessors.aspx</link><pubDate>Tue, 03 Apr 2007 02:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2015592</guid><dc:creator>barrybo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/2015592.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=2015592</wfw:commentRss><description>&lt;P&gt;Back in October, I said &lt;A class="" title="Farewell to the DeviceEmulator" href="http://blogs.msdn.com/barrybo/archive/2006/10/09/BarryBo-Says-Farewell-to-the-DeviceEmulator.aspx" mce_href="http://blogs.msdn.com/barrybo/archive/2006/10/09/BarryBo-Says-Farewell-to-the-DeviceEmulator.aspx"&gt;farewell to the DeviceEmulator&lt;/A&gt;, and joined a new project in Microsoft Research.&amp;nbsp; That project is still secret - I joke that at next &lt;A class="" title=Techfest href="http://research.microsoft.com/aboutmsr/techfest/default.aspx" mce_href="http://research.microsoft.com/aboutmsr/techfest/default.aspx"&gt;TechFest&lt;/A&gt;, we'll have a booth, but it'll just be 4 black-curtained walls, with no computers and no people.&amp;nbsp; But if you've seen me around the campus, you'll know by my smile that it is that great combination of a very tough problem and a strong team to solve it.&amp;nbsp; I'm having a ridiculous amount of fun!&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Along the way, I have been learning about GPUs and 3D graphics programming.&amp;nbsp; This is a new area for me - I have worked in the VB runtime, WOW64 (which was focused on server scenarios) and DeviceEmulator (mobile scenarios), and none of those had much need for DirectX and D3D.&lt;/P&gt;
&lt;P&gt;The Accelerator team have been very helpful in my crash course in GPU programming.&amp;nbsp; If you haven't heard of Accelerator, please do check it out - it is a set of libraries for .NET that makes it straightfoward to write data-parallel code that downloads and runs on the GPU hardware.&amp;nbsp; You need to know nothing about GPUs, only managed arrays.&amp;nbsp; Their original paper is:&amp;nbsp; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;David Tarditi, Sidd Puri, Jose Oglesby. &lt;A href="ftp://ftp.research.microsoft.com/pub/tr/TR-2005-184.pdf"&gt;"Accelerator: simplified programming of graphics-processing units for general-purpose uses via data-parallelism"&lt;/A&gt;,&amp;nbsp; Technical Report MSR-TR-2004-184, Microsoft Corporation, December, 2005. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You can download&amp;nbsp;Accelerator &lt;A class="" title="Accelerator download" href="http://research.microsoft.com/research/downloads/Details/25e1bea3-142e-4694-bde5-f0d44f9d8709/Details.aspx?CategoryID" mce_href="http://research.microsoft.com/research/downloads/Details/25e1bea3-142e-4694-bde5-f0d44f9d8709/Details.aspx?CategoryID"&gt;here&lt;/A&gt;.&amp;nbsp; They're &lt;A class="" title="Accelerator job posting" href="http://members.microsoft.com/careers/search/details.aspx?JobID=6A1FCE93-EEB4-41A9-BF63-DD96B08A41B5&amp;amp;start=1&amp;amp;interval=10&amp;amp;SortCol=DatePosted" mce_href="http://members.microsoft.com/careers/search/details.aspx?JobID=6A1FCE93-EEB4-41A9-BF63-DD96B08A41B5&amp;amp;start=1&amp;amp;interval=10&amp;amp;SortCol=DatePosted"&gt;hiring&lt;/A&gt;, by the way, if you have a passion for concurrent programming and experience in this field.&amp;nbsp; I'm looking forward to multi-core CPU version - Accelerator gives you a new/different way of efficiently spreading computation across your available computing resources.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2015592" width="1" height="1"&gt;</description></item><item><title>Localized DeviceEmulator 2.0 executables</title><link>http://blogs.msdn.com/barrybo/archive/2007/03/20/localized-deviceemulator-2-0-executables.aspx</link><pubDate>Tue, 20 Mar 2007 20:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1921213</guid><dc:creator>barrybo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/1921213.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=1921213</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;The&amp;nbsp;DeviceEmulator team&amp;nbsp;has just&amp;nbsp;released DeviceEmulator 2.0 in all languages that Visual Studio 2005&amp;nbsp;&amp;nbsp;supports.&amp;nbsp; Here are the URLs:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;ENU: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;FONT face=Calibri&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri&gt;CHS: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;FONT face=Calibri color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri&gt;CHT: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;FONT face=Calibri color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;DEU: &lt;/FONT&gt;&lt;/SPAN&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=de&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=de&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;ESN: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=es&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;FONT face=Calibri color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=es&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;FRA: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=fr&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;FONT face=Calibri color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=fr&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;ITA: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=it&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;FONT face=Calibri color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=it&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;FONT face=Calibri&gt;JPN: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;FONT face=Calibri color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri&gt;KOR: &lt;SPAN lang=ES-TRAD style="mso-ansi-language: ES-TRAD"&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=ko&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303"&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT color=#0000ff&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=ko&amp;amp;FamilyID=dd567053-f231-4a64-a648-fea5e7061303&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Congrats to the DeviceEmulator team!&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1921213" width="1" height="1"&gt;</description></item><item><title>Device Emulator V2 standalone</title><link>http://blogs.msdn.com/barrybo/archive/2007/03/12/device-emulator-v2-standalone.aspx</link><pubDate>Tue, 13 Mar 2007 03:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1869547</guid><dc:creator>barrybo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/1869547.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=1869547</wfw:commentRss><description>&lt;P&gt;Anand just posted that Device Emulator V2 is now available as a standalone download (&lt;A href="http://blogs.msdn.com/anandba/archive/2007/03/13/device-emulator-v2-is-live.aspx"&gt;http://blogs.msdn.com/anandba/archive/2007/03/13/device-emulator-v2-is-live.aspx&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Congrats to&amp;nbsp;the emulator team!&lt;/P&gt;
&lt;P&gt;Two things made V2 particularly interesting to work on.&amp;nbsp; First,&amp;nbsp;is the number of code contributions from across Microsoft.&amp;nbsp; I've lost track of all of the names, but Windows Mobile, Windows CE, and even&amp;nbsp;Customer Support Services (CSS, formerly PSS) all made emulator and BSP changes.&amp;nbsp; Second, we started coding before&amp;nbsp;V1 was even out the door (in VS2005), and ran a double-speed product cycle, to align with Windows Embedded CE 6.0.&amp;nbsp;&amp;nbsp; While V1 targetted the Visual Studio user, V2 targetted both the CE 6.0 Platform Builder user (with KITL-over-DMA and the in-the-box BSP) and Windows Mobile 6.0 (with battery, backlight, contrast, expanded NOR flash, headset/carkit/speakerphone).&amp;nbsp; We also took time to work on things that everyone cares about:&amp;nbsp; raw performance in the JIT, with a wide range of performance features (&lt;A href="http://blogs.msdn.com/barrybo/archive/2006/05/23/605314.aspx"&gt;http://blogs.msdn.com/barrybo/archive/2006/05/23/605314.aspx&lt;/A&gt;), Windows Vista support, and a bit more user-friendly config dialog.&amp;nbsp; Of course, we fixed plenty of bugs from customer reports and from Dr. Watson logs you so kindly uploaded.&lt;/P&gt;
&lt;P&gt;Please do opt into the Customer Experience Improvement Program when the emulator launches for the first time.&amp;nbsp; The data collected directly feeds into the planning process for future emulator versions.&amp;nbsp; It helps us understand simple things like how frequently configuration options like the COM ports are used, how often the config dialog fails to reconfigure, CPU speed, etc.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P&gt;Barry&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1869547" width="1" height="1"&gt;</description></item><item><title>Office OneNote - one of the best code development tools around</title><link>http://blogs.msdn.com/barrybo/archive/2006/12/06/office-onenote-one-of-the-best-code-development-tools-around.aspx</link><pubDate>Wed, 06 Dec 2006 12:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1222867</guid><dc:creator>barrybo</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/1222867.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=1222867</wfw:commentRss><description>&lt;P&gt;I use a pretty extensive suite of tools as a developer - two IDEs, debuggers, code analysis tools, profilers, etc.&amp;nbsp; But one tool stands out as the glue between all of my tools - OneNote 2007.&lt;/P&gt;
&lt;P&gt;Here's a rundown of a few of the tasks where Outlook is invaluable to me:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;As my short-term memory.&amp;nbsp; I paste output from my debuggers and other tools, to keep track of them.&amp;nbsp; Many tools I use are GUI and don't have a built-in "scrollback" mechanism where I can see previous state.&amp;nbsp; For example, when I debug, I often want to see the contents of the memory window from some point in the past, not the current contents of that memory.&amp;nbsp; OneNote is a quick and easy place to group together this "short term" content in a single page.&lt;/LI&gt;
&lt;LI&gt;As long-term memory.&amp;nbsp; It seems I'm always doing code-reviews of unfamiliar code, looking for bugs, or to understand how a subsystem works.&amp;nbsp; OneNote's free-form note-taking and&amp;nbsp;rich copy/paste let me quickly jot down what I learn about the codebase, and keep the notes with me at all times.&lt;/LI&gt;
&lt;LI&gt;As a research tool.&amp;nbsp; If I copy/paste content from my web browser into OneNote, the new content is automatically tagged with the page URL.&amp;nbsp; So it's easy to return to the content later, and revisit the URL.&lt;/LI&gt;
&lt;LI&gt;New in 2007:&amp;nbsp; Content syncs between my many machines.&amp;nbsp; My Windows Vista laptop and Windows XP 64-bit desktop sync their OneNote content automatically and transparently.&amp;nbsp; So notes I make on my desktop are available when I bring my laptop home at night.&amp;nbsp; OneNote Mobile on my PocketPC device also syncs a subset of my OneNote content.&lt;/LI&gt;
&lt;LI&gt;As a bug reporting tool.&amp;nbsp; It's easy to log repro steps for a bug as I create them, then I can use OneNote's screen capture to record precisely what I saw on my screen.&lt;/LI&gt;
&lt;LI&gt;As a note taker during meetings.&amp;nbsp; Notes are automatically data and time stamped.&amp;nbsp; Outlook and OneNote have some great interactions, where OneNote can create new Tasks, and Outlook can associate OneNote content with contacts and calendar items.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;OneNote's UI seems to work exactly the way I work - I&amp;nbsp;almost never use the menus or toolbars, as it's in the right state already.&amp;nbsp; Just right-click on&amp;nbsp;the right part of my notebook, pick "New Page" or "New&amp;nbsp;Subpage" and start typing.&amp;nbsp; It doesn't interrupt my train of thought with modal dialogs or any other up-front decision-making.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's also very easy to reorganize content -&amp;nbsp;since it all sits&amp;nbsp;in OneNote, it's easy to drag pages and subpages around, shuffle portions of pages around, etc.&amp;nbsp; When I kept notes with notepad, I had content scattered across many files in many directories and bookkeeping had gotten out of control.&lt;/P&gt;
&lt;P&gt;I'm still exploring OneNote.&amp;nbsp; I haven't had a chance yet to look at:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Live sharing - several people can work simultaneously on a shared page&lt;/LI&gt;
&lt;LI&gt;Hyperlinks to OneNote notebooks, sections, pages or paragraphs, to link content together&lt;/LI&gt;
&lt;LI&gt;Annotate PowerPoint slides - use "Insert slides as printouts" then annotate overtop of the slides in OneNote&lt;/LI&gt;
&lt;LI&gt;Audio and video recording (you can even search the audio recording!)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If you're interested in experimenting with OneNote 2007, a trial edition is free to download, from &lt;A href="http://us1.trymicrosoftoffice.com/product.aspx?family=onenote&amp;amp;culture=en-US"&gt;http://us1.trymicrosoftoffice.com/product.aspx?family=onenote&amp;amp;culture=en-US&lt;/A&gt;.&amp;nbsp; There is also an online test drive at &lt;A href="http://www.microsoft.com/testdrive"&gt;&lt;U&gt;&lt;FONT color=#0000ff size=2&gt;http://www.microsoft.com/testdrive&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt; if your browser supports the Citrix Web Client control and you have a Passport account.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1222867" width="1" height="1"&gt;</description></item><item><title>BarryBo Says Farewell to the DeviceEmulator</title><link>http://blogs.msdn.com/barrybo/archive/2006/10/09/BarryBo-Says-Farewell-to-the-DeviceEmulator.aspx</link><pubDate>Mon, 09 Oct 2006 22:26:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:810376</guid><dc:creator>barrybo</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/810376.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=810376</wfw:commentRss><description>&lt;p&gt;Device Emulator V2.0 is finished, and RTMs along with Windows CE 6.0.&amp;nbsp; It's going to be a great release, building on the V2.0 CTP, with improved features and performance (and quite a few bug fixes).&amp;nbsp; The V3.0 emulator is already under development, and I can't give away details, but I'm sure that the Device Emulator Manager will be leaps and bounds more user-friendly and useful in V3.&amp;nbsp;&lt;/p&gt; &lt;p&gt;So I decided this is a good time for me to switch gears, leaving the DeviceEmulator in the capable hands of &lt;a href="http://forums.microsoft.com/MSDN/User/Profile.aspx?UserID=50874&amp;amp;SiteID=1"&gt;Anand&lt;/a&gt;, Vijay, &lt;a href="http://forums.microsoft.com/MSDN/User/Profile.aspx?UserID=18531&amp;amp;SiteID=1"&gt;Mohit&lt;/a&gt; and the rest of the crew.&amp;nbsp; I'll continue to lurk on the embedded newsgroups and &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=76&amp;amp;SiteID=1" target="_blank"&gt;Device Emulator General&lt;/a&gt;&amp;nbsp;forum on MSDN.&lt;/p&gt; &lt;p&gt;Beginning Monday October 2nd, I started my new job in MSR.&amp;nbsp; The project hasn't been made public, but it was one of those once-in-a-lifetime opportunities that I just couldn't pass up.&amp;nbsp; I believe some of the work we do can be applied to future DeviceEmulator releases, so I'll be keeping in close contact with the DeviceEmulator team.&amp;nbsp; :-)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=810376" width="1" height="1"&gt;</description></item><item><title>BarryBo on Channel9</title><link>http://blogs.msdn.com/barrybo/archive/2006/08/28/728943.aspx</link><pubDate>Mon, 28 Aug 2006 21:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:728943</guid><dc:creator>barrybo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/728943.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=728943</wfw:commentRss><description>&lt;P&gt;My Channel9 video is up!&amp;nbsp; &lt;A href="http://channel9.msdn.com/Showpost.aspx?postid=224510"&gt;http://channel9.msdn.com/Showpost.aspx?postid=224510&lt;/A&gt;.&amp;nbsp; It's a talk about the DeviceEmulator in general, with some highlights of the Shared Source DeviceEmulator.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=728943" width="1" height="1"&gt;</description></item><item><title>What's the smallest Windows CE 5.0 configuration that you can target from Visual Studio 2005?</title><link>http://blogs.msdn.com/barrybo/archive/2006/08/21/710908.aspx</link><pubDate>Mon, 21 Aug 2006 16:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:710908</guid><dc:creator>barrybo</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/710908.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=710908</wfw:commentRss><description>&lt;P&gt;Very small!&amp;nbsp; The DeviceEmulator nk.bin can be as small as 1.3mb!&amp;nbsp; With that 1.3mb OS image, you can deploy and debug native applications using Visual Studio for Devices.&amp;nbsp; Here's how...&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;In Platform Builder&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Install the Device Emulator BSP from &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=474b03a6-e87d-455d-bc16-b8cf18ef39b4&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=474b03a6-e87d-455d-bc16-b8cf18ef39b4&amp;amp;displaylang=en&lt;/A&gt;.&amp;nbsp; Pay special attention to the non-skin configuration options in the SDK XML file.&lt;/P&gt;
&lt;P&gt;Create a new platform using the wizard...&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Step 4 - choose custom device&lt;/LI&gt;
&lt;LI&gt;Step 5 (Applications and Services Development) - check "C Libraries and Runtimes" (which checks everything underneath it)&lt;/LI&gt;
&lt;LI&gt;Step 6 (Applications - End User) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Step 7 (Core OS) - check "Power Management (Minimal)", "Device Manager", and "Debugging Tools \ Toolhelp API"&lt;/LI&gt;
&lt;LI&gt;Step 8 (Networking Features) - check "Networking Features \ Winsock Support"&lt;/LI&gt;
&lt;LI&gt;Step 9 (Device Management) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Step 10 (File Systems and Data Store) - check "File System - Internal (Choose 1) \ RAM and ROM File System" and "Registry Storage (Choose 1) \ Hive-based Registry"&lt;/LI&gt;
&lt;LI&gt;Step 11 (Fonts) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Step&amp;nbsp;12 (International) - check "Locale Services (Choose 1) \ National Language Support (NLS)"&lt;/LI&gt;
&lt;LI&gt;Step&amp;nbsp;13 (Internet Client Services) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Step 14 (Grahics and Multimedia Technologies) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Step 15 (Security) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Step 16 (Shell and User Interface) - check "Graphics, Windowing and Events \ Minimal Input Configuration"&lt;/LI&gt;
&lt;LI&gt;Step 17 (Windows CE Error Reporting) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Step 18 (Voice over IP Phone Services) - leave everything unchecked&lt;/LI&gt;
&lt;LI&gt;Finish!&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Now, go to the Platform\Settings menu, and for the release configuration, switch to the Build Options tab and uncheck "Enable CE Target Control Support (SYSGEN_SHELL=1)" and&amp;nbsp;"Enable KITL (no IMGKITL=1)".&lt;/P&gt;
&lt;P&gt;Then switch to the Environment tab and add "BSP_NOTOUCH" with value "1"&lt;/P&gt;
&lt;P&gt;Now build it using the Platform Builder "Build OS \ Sysgen" menu.&amp;nbsp; The retail nk.bin image will be about 1.3mb in size.&lt;/P&gt;
&lt;P&gt;Next, create an SDK for it.&amp;nbsp; Go to Platform Builder's "Platform \ SDK \ New SDK..." menu, fill in the details on&amp;nbsp;the first page, then leave the defaults for the rest.&lt;/P&gt;
&lt;P&gt;Finally, build the SDK using&amp;nbsp;the Platform Builder "Platform \ SDK \ Build SDK" menu.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;Install the SDK&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Install the new SDK on your Visual Studio 2005 machine.&lt;/P&gt;
&lt;P&gt;Now comes the hacky part of the process you need to hack your datastore a little.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Navigate to C:\Documents and Settings\All Users\Application Data\Microsoft\corecon\1.0\addons and look for the newest .xsl file whose name is a GUID.&amp;nbsp; Open that file in notepad or your favorite XML editor&lt;/LI&gt;
&lt;LI&gt;Edit the RemoteCcClientFile, RemoteCcShutdownFile, RemoteCcTransportLoaderFile and&amp;nbsp;RemoteCcCMAcceptFile properties, removing the "%CSIDL_WINDOWS%" text and just deploying to the root directory.&amp;nbsp; There are two instances of each property, one for emulator targets and one for hardware device targets.&amp;nbsp; Edit both instances of each property.&lt;/LI&gt;
&lt;LI&gt;Edit the RemoteTransportFile property, again, removing the %CSIDL_% constant, so that the dmatrans.dll&amp;nbsp;deploys to the root directory.&lt;BR&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;ie. &lt;/P&gt;
&lt;P&gt;&amp;lt;PROPERTY ID="RemoteCcCMAcceptFile" Protected="true"&amp;gt;%CSIDL_WINDOWS%\CoreCon%CcVersion%\CMAccept.exe&amp;lt;/PROPERTY&amp;gt;&lt;/P&gt;
&lt;P&gt;becomes&lt;BR&gt;&amp;lt;PROPERTY ID="RemoteCcCMAcceptFile" Protected="true"&amp;gt;\CoreCon%CcVersion%\CMAccept.exe&amp;lt;/PROPERTY&amp;gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;If something goes wrong, delete the XML file, uninstall and reinstall your SDK, and it will be recreated.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Use the SDK from Visual Studio 2005&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Launch Visual Studio, and do a File/New Project, to create&amp;nbsp;a new C++ SmartDevice project.&amp;nbsp; Pick your SDK from the list of targets, and select "Console" as the application type, with no ATL or MFC support.&lt;/P&gt;
&lt;P&gt;Once the wizard has finished, there are a few work items left:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Remove the #include of commdlg.h from the top of the wizard-generated .cpp file&lt;/LI&gt;
&lt;LI&gt;Remove the #include of atlcecrt.h from the bottom of stdafx.h&lt;/LI&gt;
&lt;LI&gt;In the project properties, make the following edits in the "All Configurations" configuration:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Under Configuration Properties \ Linker, click on Additional Dependencies then type in this text:&amp;nbsp; coredll.lib corelibc.lib $(NOINHERIT)&lt;/LI&gt;
&lt;LI&gt;Under Configuration Properties \ Deployment, edit the "Remote Directory" entry, removing the "%CSIDL_PROGRAM_FILES%" text.&amp;nbsp; Deploy your app into a subdirectory under the root directory.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Make the following edit to your project properties under both the Debug and Retail configurations:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Under Configuration Properties \ Debugging, remove the "%CSIDL_PRGORAM_FILES%" text.&amp;nbsp; The remote executable is in a subdirectory under the root directory.&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;Now, F5 should build your app, launch the emulator, deploy and debug.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Diagnosing Problems&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If the emulator launches but deployment isn't happening, you might have left a %CSIDL_*% constant in a path somewhere.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Go to VS's Tools/Options dialog and navigate to "Device Tools \ Devices", click on your emulator entry and click Properties.&amp;nbsp; In the emulator properties dialog, click "Emulator Options" then on the Peripherals tab, check the "Create text console for serial port 1" checkbox.&amp;nbsp; This will cause the emulator to open a console window as it launches, that will show you diagnostics output from the Windows CE kernel.&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;What's with the CSIDLs?&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Visual Studio for Devices must resolve %CSIDL_% symbols in pathnames by executing code on the device/emulator, that calls SHGetSpecialFolderPath().&amp;nbsp; The OS image size grows substantially if we pull that API in, as it only comes in as part of the GUI shell.&lt;/P&gt;
&lt;P&gt;We must painstaking remove all %CSIDL_% symbols from the datastore and project properties.&amp;nbsp; Otherwise, VSD's device-side code will go into a long polling loop waiting for the shell APIs to come online, and when the timeout eventually expires, the VSD operation will fail.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=710908" width="1" height="1"&gt;</description></item><item><title>DeviceEmulator and Virtual Switch inside VirtualPC/VirtualServer</title><link>http://blogs.msdn.com/barrybo/archive/2006/08/09/693457.aspx</link><pubDate>Wed, 09 Aug 2006 17:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:693457</guid><dc:creator>barrybo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/693457.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=693457</wfw:commentRss><description>&lt;P&gt;One of the great things about the DeviceEmulator is that it runs inside VirtualPC and VirtualServer.&lt;/P&gt;
&lt;P&gt;However, there is one gotcha about using the Virtual Switch driver (download from &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&amp;amp;displaylang=en&lt;/A&gt;) inside a VirtualPC.&lt;/P&gt;
&lt;P&gt;For security reasons, VirtualPC/VirtualServer blocks the Virtual Switch running inside the VM from receiving broadcast network packets.&amp;nbsp; This in turn means that the DeviceEmulator running inside a VirtualPC cannot acquire an IP address from your LAN's DHCP server... the DHCP negotiation is done via broadcast packets.&lt;/P&gt;
&lt;P&gt;If you are running the emulator inside a VirtualPC and want to communicate with other server apps inside the VirtualPC, such as IIS and Exchange, then the best solution is to do the following:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Install the microsoft Loopback Adapter into the version of Windows running inside the VPC.&amp;nbsp; Use "Start/Help And Support" and search for "install loopback adapter' and pick the first hit in the Microsoft Knowledge Base.&lt;/LI&gt;
&lt;LI&gt;Configure the DeviceEmulator's NE2000 to bind to the "Microsoft Loopback Adapter"&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Now both the Device Emulator and Windows inside the VirtualPC will use auto-ip addresses over the private LAN created by the loopback adapter.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=693457" width="1" height="1"&gt;</description></item><item><title>Shared Source Device Emulator 1.0 has been released</title><link>http://blogs.msdn.com/barrybo/archive/2006/07/17/668492.aspx</link><pubDate>Mon, 17 Jul 2006 16:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:668492</guid><dc:creator>barrybo</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/barrybo/comments/668492.aspx</comments><wfw:commentRss>http://blogs.msdn.com/barrybo/commentrss.aspx?PostID=668492</wfw:commentRss><description>&lt;P&gt;Get it here:&amp;nbsp; &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=faa8c81d-7316-4461-a0ed-6c95b261ddcd&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=faa8c81d-7316-4461-a0ed-6c95b261ddcd&amp;amp;DisplayLang=en&lt;/A&gt;.&amp;nbsp; The license text is available here:&amp;nbsp; &lt;A href="http://msdn.microsoft.com/vstudio/license/de_academic.aspx"&gt;http://msdn.microsoft.com/vstudio/license/de_academic.aspx&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;This release is the full source to V1 DeviceEmulator.exe, which you can compile yourself using Visual Studio 2005.&lt;/P&gt;
&lt;P&gt;We created this release to enable experimentation with the emulator:&lt;/P&gt;
&lt;P&gt;- create extensibility points to "plug in" new kinds of hardware&lt;/P&gt;
&lt;P&gt;- extend or modify the ARM-to-x86 JIT (hint:&amp;nbsp; my blog on V2 performance at &lt;A href="http://blogs.msdn.com/barrybo/archive/2006/05/23/605314.aspx"&gt;http://blogs.msdn.com/barrybo/archive/2006/05/23/605314.aspx&lt;/A&gt;&amp;nbsp;has some "homework assignment" tasks).&lt;/P&gt;
&lt;P&gt;- create emulators for whole new CPUs and motherboards&lt;/P&gt;
&lt;P&gt;- instrument the emulator to collect performance data on your application or OS image&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Question:&amp;nbsp; would you like to see this posted up to CodePlex (&lt;A href="http://www.codeplex.com"&gt;http://www.codeplex.com&lt;/A&gt;) so the sources reside in a source control system with bug-tracking etc.&amp;nbsp; This would enable collaboration on projects.&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P&gt;Barry&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=668492" width="1" height="1"&gt;</description></item></channel></rss>