<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Windows Hardware and Driver Developer Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/feed.xml</link>
    <description>Official blog covering various aspects of Windows Hardware and Driver Development</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:35:54 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Introducing Driver Module Framework</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/introducing-driver-module-framework</link>
      <pubDate>Wed, 15 Aug 2018 17:57:41 GMT</pubDate>
      <dc:creator><![CDATA[Shyamal Varma [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/?p=115</guid>
      <description><![CDATA[The Microsoft Devices team announced the release of an open source framework for Windows driver...]]></description>
      <content:encoded><![CDATA[The Microsoft Devices team announced the release of an open source framework for Windows driver developers known as Driver Module Framework (<strong>DMF</strong>). With DMF, you can develop simple, modular and structured Windows Driver Framework (<strong>WDF</strong>) drivers. You can learn more about it<a href="https://blogs.windows.com/buildingapps/2018/08/15/introducing-driver-module-framework/"> in this blog post</a> and visit their <a href="https://github.com/Microsoft/DMF">GitHub repo here.</a>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Writing a WDF driver for your network adapter just got easier!</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/ndis-wdf-network-adapter-driver</link>
      <pubDate>Fri, 23 Jun 2017 13:00:52 GMT</pubDate>
      <dc:creator><![CDATA[Shyamal Varma [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/?p=105</guid>
      <description><![CDATA[With the release of the Windows 10 Creators Update (1703), we are introducing a new WDF extension...]]></description>
      <content:encoded><![CDATA[With the release of the Windows 10 Creators Update (1703), we are introducing a new WDF extension for writing network adapter drivers. We call this the NetAdapter extension for WDF.

NetAdapter brings together the productivity and simplicity of WDF with the networking performance of NDIS. It introduces a new set of networking specific abstractions that are well integrated into the WDF driver model and will help you write a robust and performant driver. NetAdapter also allows you to use the complete WDF feature set, which as some of you who have written a NDIS miniport driver before may know, couldn't be done.

The team recorded four videos to introduce NetAdapter to you. Here are the videos in the series:
<div class="itemBody holder">
<div class="container">
<div class="ch9tabGroup descriptionEmbedFormat" role="tablist"><section class="ch9tab description">
<div class="ch9tabContent" role="tabpanel" lang="en" dir="ltr">
<ol>
 	<li><a href="https://aka.ms/netadapter/video1">NetAdapter Extensions for WDF: Overview</a></li>
 	<li><a href="https://aka.ms/netadapter/video2">NetAdapter Extensions for WDF: Your first driver</a></li>
 	<li><a href="https://aka.ms/netadapter/video3">NetAdapter Extensions for WDF: The new data path</a></li>
 	<li><a href="https://aka.ms/netadapter/video4">NetAdapter Extensions for WDF: The Roadmap &amp; collaboration</a></li>
</ol>
Please note that this is a preview release of the extension. We look forward to your feedback.

For more information about the NetAdapter go to:

The documentation: <a href="https://aka.ms/netadapter/doc">https://aka.ms/netadapter/doc
</a>Driver samples on GitHub: <a href="https://github.com/Microsoft/NetAdapter-Cx-Driver-Samples">https://github.com/Microsoft/NetAdapter-Cx-Driver-Samples
</a>The source code for NetAdapter itself: <a href="https://github.com/Microsoft/Network-Adapter-Class-Extension">https://github.com/Microsoft/Network-Adapter-Class-Extension
</a>The source code for WDF: <a href="https://github.com/Microsoft/Windows-driver-frameworks">https://github.com/Microsoft/Windows-driver-frameworks</a>

</div>
</section></div>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>New support for source-level debugging of WDF code in Windows 10</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/new-support-for-source-level-debugging-of-wdf-code-in-windows-10</link>
      <pubDate>Thu, 18 Jun 2015 16:41:00 GMT</pubDate>
      <dc:creator><![CDATA[amargarit@outlook.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2015/06/18/new-support-for-source-level-debugging-of-wdf-code-in-windows-10/</guid>
      <description><![CDATA[Last March we published the WDF source code on GitHub for all to read, debug, and learn from. Today...]]></description>
      <content:encoded><![CDATA[Last March we published the WDF source code on <a href="https://github.com/Microsoft/Windows-Driver-Frameworks">GitHub</a> for all to read, debug, and learn from. Today we are happy to announce new support for source-level debugging of WDF code! When debugging a WDF driver, you can now step freely into the surrounding framework code to get a full picture of what's going on internally. And all this without ever needing to manually download the WDF source code, or figure out which build and framework version your target system is running. The debugger automatically downloads the correct code from our GitHub repository.
<h1>Overview</h1>
Suppose you are using WinDbg to debug your WDF driver loaded on a Windows 10 machine, and the debugger is broken-in with framework code in the call stack. You can double-click on the WDF frame in the Call Stack view, and WinDbg will automatically download and open the relevant WDF source file at the matching line, fetched directly from our public Git repo. You can then step through the code, set breakpoints, and see exactly what's happening under the hood.

The following WinDbg screenshot shows the call stack in the lower right corner with a WDF function call circled, and the corresponding source file loaded in the left panel.

<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/53/00/7120.windbg-wdf.png"><img width="575" height="387" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/53/00/7120.windbg-wdf.png" border="0" /></a>

This feature supports target systems running public releases of Windows 10, Technical Preview build 10041 or later. These builds have private source indexed symbol files for KMDF (Wdf01000.sys) and UMDF (Wudfx02000.dll) available on the <a href="https://msdn.microsoft.com/en-us/library/windows/hardware/ff552208(v=vs.85).aspx">Microsoft Public Symbol Server</a>. Note that source-level debugging of WDF code is currently only available in WinDbg, and not in the Visual Studio debugger.
<h1>Quick Start</h1>
It is very simple to get started. You need to have a target machine with Windows 10 build 10041 or newer. Start a WinDbg kernel debug session to the target machine, break in, and follow these steps.

1. Set the default symbol path using .symfix. This sets the symbol path to point to the symbol server at <a href="https://msdl.microsoft.com/download/symbols">https://msdl.microsoft.com/download/symbols</a>.
<pre class="scroll"><code class="cplusplus">kd&gt; .symfix</code></pre>
2. Set the default source path using .srcfix. This sets the source path to srv*, which tells the debugger to retrieve source files from locations specified in the target modules' symbol files.
<pre class="scroll"><code class="cplusplus">kd&gt; .srcfix
Source search path is: SRV*</code></pre>
3. Reload symbols using .reload, and confirm that the Wdf01000.sys symbols (or Wudfx02000.dll for UMDF) are source-indexed. As shown in the output of !lmi below, the Wdf01000.sys PDB is source indexed. If yours is not, see the WinDbg Setup section later in this post.
<pre class="scroll"><code class="cplusplus">kd&gt; .reload
...</code></pre>
kd&gt; !lmi wdf01000.sys
Loaded Module Info: [wdf01000.sys]
...
Load Report: private symbols &amp; lines, source indexed
C:\...\Wdf01000.pdb\...\Wdf01000.pdb
<pre class="scroll"><code class="cplusplus"></code></pre>
4. Now you're all set! An easy way to step through WDF source code is to set a break point on the framework's IRP dispatch routine, and then step through the rest of the code. Since a Windows system has many inbox KMDF drivers, WDF is always loaded and running, so this breakpoint will be hit right away (without needing to load your own driver).
<pre class="scroll"><code class="cplusplus">kd&gt; bp Wdf01000!FxDevice::DispatchWithLock
kd&gt; g
Breakpoint 0 hit
Wdf01000!FxDevice::DispatchWithLock:
87131670 8bff mov edi,edi</code></pre>
If this does not work, check out the WinDbg Setup steps below.
<h1>WinDbg Setup</h1>
If the above example did not work as expected, you may need to perform one or more of the instructions below.
<h3>Enable Source Mode Debugging</h3>
Make sure <a href="https://msdn.microsoft.com/en-us/library/windows/hardware/ff540664%28v=vs.85%29.aspx">debugging in Source Mode</a> is enabled. Open the Debug menu and confirm that Source Mode is checked:

<img width="401" height="400" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/53/00/7127.windbg-source-mode.png" border="0" />
<h3></h3>
<h3>Clear Stale Symbols Cache</h3>
If you previously debugged WDF drivers for the same Windows target, then you may be using the locally cached WDF symbols that were not source indexed. You can check this with the !lmi command:
<pre class="scroll"><code class="cplusplus">kd&gt; !lmi Wdf01000.sys
Loaded Module Info: [wdf01000.sys]
...
Load Report: private symbols &amp; lines, not source indexed
C:\...\Wdf01000.pdb\...\Wdf01000.pdb</code></pre>
According to the Load Report above, Wdf01000.pdb is not source indexed. This means your local WinDbg symbols cache is stale. To fix this, you will need to unload the PDB from WinDbg, clear the local cache (your path may differ based on the !lmi output above), and finally reload the PDB:
<pre class="scroll"><code class="cplusplus">kd&gt; .reload /u Wdf01000.sys</code></pre>
CMD&gt; del
C:\...\Wdf01000.pdb\...\Wdf01000.pdb
<pre class="scroll"><code class="cplusplus"></code></pre>
kd&gt; .reload Wdf01000.sys
<pre class="scroll"><code class="cplusplus"></code></pre>
Now run !lmi to check again: the PDB should appear as source indexed and a source code window should pop up.
<pre class="scroll"><code class="cplusplus">kd&gt; !lmi Wdf01000.sys
Loaded Module Info: [wdf01000.sys]
...
Load Report: private symbols &amp; lines, source indexed
C:\...\Wdf01000.pdb\...\Wdf01000.pdb</code></pre>
&nbsp;

You can use WDF source-level debugging not just for live debugging and analyzing crash dumps, but also for learning more about the framework internals by setting breakpoints on core functions like the IRP dispatcher and exploring the subsequent code paths. We hope you will find this helpful!

A video that demonstrates this <a href="https://channel9.msdn.com/Blogs/WinHEC/Debugging-your-Driver-with-WDF-Source-Code">is available here</a>.

- The WDF Team]]></content:encoded>
    </item>
    <item>
      <title>New Performance Tools for WDF Drivers in Windows 10</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/new-performance-tools-for-wdf-drivers-in-windows-10</link>
      <pubDate>Fri, 01 May 2015 16:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Shyamal Varma [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2015/05/01/new-performance-tools-for-wdf-drivers-in-windows-10/</guid>
      <description><![CDATA[We are excited to announce the availability of an extension to the Windows Performance Toolkit (WPT)...]]></description>
      <content:encoded><![CDATA[<p>We are excited to announce the availability of an extension to the Windows Performance Toolkit (WPT) in Windows 10&nbsp;to obtain&nbsp;new performance insights into your KMDF or UMDF driver. You can use this tool to obtain performance insights or troubleshoot performance issues in your WDF driver. When performance tracing for your driver is enabled, the framework will generate <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa363668(v=vs.85).aspx">ETW events</a> on behalf of your driver in the WDF I/O, PnP and power callback related paths. WPT includes the necessary support to process these events and display graphs and summary tables to interpret the data. For example you&nbsp;can use this to:</p>
<ul>
<li>Examine the driver&rsquo;s WDF I/O request completion rate and&nbsp;examine the corresponding sampled CPU utilization.</li>
<li>Compare a UMDF 2 driver against a similar KMDF driver and determine if UMDF meets your performance requirements.</li>
<li>Determine which instance of a given PnP or power related callback is taking a long time to complete. Then examine sampled CPU usage to understand why.</li>
<li>Check if your device is making power transitions in and out of the D0 power state more frequently or not as frequently as you'd expect.</li>
</ul>
<p>Information about this feature and interpreting the data is available in the <a title="documentation here" href="https://msdn.microsoft.com/en-us/Library/dn974028(v=vs.85).aspx">documentation here.</a> More information about the performance toolkit and the performance analyzer is <a href="https://msdn.microsoft.com/en-us/library/windows/hardware/hh448170.aspx">available here.</a></p>
<p>We'd love to hear your feedback!</p>
<p>- WDF Team.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>New version of Windows 10 Hardware Development Kits now available</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/new-version-of-windows-10-hardware-development-kits-now-available</link>
      <pubDate>Fri, 01 May 2015 08:57:46 GMT</pubDate>
      <dc:creator><![CDATA[Viraf Gandhi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2015/05/01/new-version-of-windows-10-hardware-development-kits-now-available/</guid>
      <description><![CDATA[In conjunction with the release of the latest version of Windows 10 developer tools preview at...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: medium;"><span style="font-family: Calibri;">In conjunction with the release of the latest version of </span><a href="https://dev.windows.com/en-us/downloads/windows-10-developer-tools"><span style="color: #0563c1; font-family: Calibri;">Windows 10 developer tools preview</span></a><span style="font-family: Calibri;"> at //Build yesterday, we are happy to announce the availability of Windows 10 hardware development kits. </span><span style="font-family: Calibri;">Sign up to be a </span><a title="Windows Insider" href="https://go.microsoft.com/fwlink/p/?LinkId=524487" target="_blank"><span style="color: #0563c1; font-family: Calibri;">Windows Insider</span></a><span style="font-family: Calibri;">&nbsp;</span><span style="font-family: Calibri;">to get the latest Windows flight and then </span><a href="https://msdn.microsoft.com/en-us/windows/hardware/dn913721"><span style="font-family: Calibri;">download the WDK, ADK, and HLK</span></a></span></p>
<p><span style="font-size: medium;"><span style="font-family: Calibri;">With this release, the HLK can be used to submit drivers to the Windows Hardware Compatibility Program.&nbsp; Download the </span><a href="https://sysdev.microsoft.com/en-US/Hardware/CompatibilityPlaylists/"><span style="color: #0563c1; font-family: Calibri;">Compatibility Program Playlist</span></a><span style="font-family: Calibri;"> to determine which HLK tests are required to certify your system or device for the program. Read more details on this </span><a href="https://blogs.msdn.com/b/windows_hardware_certification/archive/2015/04/30/windows-10-desktop-compatibility-program-submissions-begin-now.aspx"><span style="color: #0563c1; font-family: Calibri;">blog</span></a><span style="font-family: Calibri;">.</span></span></p>
<p><span style="font-family: Calibri; font-size: medium;">As you use these kits, please let us know your feedback in the section below</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows 10 kits available for download</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/windows-10-kits-available-for-download</link>
      <pubDate>Mon, 23 Mar 2015 13:37:00 GMT</pubDate>
      <dc:creator><![CDATA[J M Rossy [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2015/03/23/windows-10-kits-available-for-download/</guid>
      <description><![CDATA[Last week at our WinHEC conference, we introduced many of the great new features we&rsquo;ve...]]></description>
      <content:encoded><![CDATA[<div>
<p style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: Calibri; font-size: small;">Last week at our </span><a title="WinHEC recordings" href="https://channel9.msdn.com/Events/WinHEC/2015" target="_blank"><span style="color: #0563c1; font-family: Calibri; font-size: small;">WinHEC conference</span></a><span style="font-family: Calibri; font-size: small;">, we introduced many of the great new features we&rsquo;ve enabled with the Windows 10 hardware developer kits. We&rsquo;re excited to announce that those kits are now available.&nbsp;Sign up to be a <a title="Windows Insider" href="https://go.microsoft.com/fwlink/p/?LinkId=524487" target="_blank">Windows Insider</a>&nbsp;for access to </span><span style="font-family: Calibri; font-size: small;">the WDK, ADK, and HLK. These tools will enable you to try out every scenario showcased by Don Box in his </span><a title="Don Box Keynote" href="https://channel9.msdn.com/Events/WinHEC/2015/Developing-for-the-Windows-10-Device-Platform" target="_blank"><span style="color: #0563c1; font-family: Calibri; font-size: small;">keynote</span></a><span style="font-family: Calibri; font-size: small;">.</span></p>
<p style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: Calibri; font-size: small;">As you use these kits, please let us know what you think in the comment section below.</span></p>
<p style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: Calibri; font-size: small;">Cheers,</span></p>
<p style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: Calibri; font-size: small;">J M Rossy on behalf of the hardware kits team.</span></p>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Windows driver frameworks source on GitHub</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/windows-driver-frameworks-source-on-github</link>
      <pubDate>Wed, 18 Mar 2015 11:40:00 GMT</pubDate>
      <dc:creator><![CDATA[J M Rossy [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2015/03/18/windows-driver-frameworks-source-on-github/</guid>
      <description><![CDATA[Yesterday we were thrilled to announce at WinHEC that the source code for the Windows Driver...]]></description>
      <content:encoded><![CDATA[<p>Yesterday we were thrilled to announce at WinHEC that the source code for the Windows Driver Frameworks (WDF) will be published openly on GitHub. The repo is now live and you can find it at <a href="https://github.com/Microsoft/Windows-driver-frameworks">github.com/Microsoft/Windows-Driver-Frameworks</a>.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/53/00/3326.github_logo.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-53-00/3326.github_5F00_logo.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/53/00/3326.github_logo.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/500x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-53-00/3326.github_5F00_logo.png" alt="" border="0" /></a></p>
<h2>Goal</h2>
<p>Our goal with the WDF has always been to make it straightforward to write high-quality drivers. &nbsp;The frameworks abstract away much of the underlying OS internals without sacrificing flexibility when it&rsquo;s needed. Combine that with the world-class development environment we&rsquo;ve enabled with Visual Studio and the Windows Driver Kit (WDK). The end result is a great experience for Windows 10 driver developers.</p>
<p>Still, we understand there&rsquo;s no substitute for having OS source available. That&rsquo;s why we&rsquo;ve published the source behind WDF for anyone to dig through and debug their drivers with. This gives developers transparency into exactly what the framework does as their drivers interact with it. We encourage you to download the source and try stepping through it with the kernel debugger.</p>
<h2>Scope</h2>
<p>With this initial release, we&rsquo;ve published the source behind KMDF and UMDF v2. You&rsquo;ll find that a great deal of the source is shared between the two. Driving the frameworks forward with a unified model is a key priority for WDF the team.</p>
<p>As you experiment with WDF, you may come across undocumented behavior or APIs. We strongly advise against taking dependencies on that behavior as it&rsquo;s subject to change in future releases.&nbsp;</p>
<p>If you think of features you&rsquo;d like to see added or find suspected bugs in the source, we encourage you to file those in the GitHub repo issue tracking. Some of you may be keen on making contributions back to the framework. For the moment, we aren&rsquo;t accepting contributions via GitHub pull requests. We&rsquo;re still evaluating that option and it may change in the future.</p>
<h2>Samples</h2>
<p>We&rsquo;re also pleased to announce that, like WDF, the collection driver sample projects will now live on GitHub. The set of Windows 8.1 samples on MSDN Code Gallery will stay there for now but all new/updated samples for Windows 10 can be found in <a href="https://github.com/Microsoft/Windows-Driver-Samples">github.com/Microsoft/Windows-Driver-Samples</a>.</p>
<p>We believe that making the WDF source available to anyone is a big step forward for Windows hardware enablement. As we continue to roll out new tools, source, and docs, we&rsquo;re really excited to see the amazing new Windows-enabled devices that you bring to market.</p>
<p>Cheers,</p>
<p>J M Rossy on behalf of the WDF team.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Installing and Debugging Drivers with Sharks Cove Hardware development board</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/installing-and-debugging-drivers-with-sharks-cove-hardware-development-board</link>
      <pubDate>Mon, 20 Oct 2014 12:07:00 GMT</pubDate>
      <dc:creator><![CDATA[Viraf Gandhi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2014/10/20/installing-and-debugging-drivers-with-sharks-cove-hardware-development-board/</guid>
      <description><![CDATA[We asked our talented intern, Steven, to work on several hardware projects this summer and he agreed...]]></description>
      <content:encoded><![CDATA[<p class="Publishwithline"><em>We asked our talented intern, Steven, to work on several hardware projects this summer and he agreed to share some of his experiences with Windows hardware development using Sharks Cove hardware development board through a series of blog posts. Below is his first blog detailing his experience installing and debugging a driver using Sharks Cove.</em></p>
<p><em>Sharks Cove is a hardware development board that you can use to develop hardware and drivers for Windows. The Intel Sharks Cove board supports driver development for devices that use a variety of interfaces, including GPIO, I2C, I2S, UART, SDIO, and USB. You can also use the Sharks Cove board to develop drivers for cameras and touch screens.</em></p>
<p><em>For information about the Sharks Cove board, see <a href="https://www.sharkscove.org">www.sharkscove.org</a>.&nbsp; </em></p>
<p><em>For details about Windows compatible hardware development boards, see <a href="https://www.msdn.microsoft.com/hardwaredevboard">www.msdn.microsoft.com/hardwaredevboard</a></em></p>
<p><em>Here&rsquo;s the blog in his own words.</em></p>
<p>&nbsp;</p>
<p>In this post, I wanted to provide more of a walkthrough on the process of setting up a Sharks Cove for installing and debugging a driver. This post is a direct result of my experience working with the board. Currently, there is a step-by-step guide to <a href="https://msdn.microsoft.com/library/windows/hardware/dn745910(v=vs.85).aspx">setting up and using Sharks Cove</a> on MSDN, so I will not cover everything in detail. Instead, I&rsquo;d like to look at each of the steps and provide the details of my experience.</p>
<h3>Sharks Cove setup</h3>
<p>You can absolutely skip this section if you have the board already setup and provisioned or the link above is sufficient. This section is merely to provide clarification from my experience setting up the board. Starting from the top, you will need to gather your hardware. My setup was as follows:</p>
<ul>
<li>A monitor accepting DVI input</li>
<li>An HDMI cable and HDMI-DVI adapter</li>
<li>A powered USB hub</li>
<li>USB Mouse\Keyboard</li>
<li>USB Ethernet adapter for network access</li>
<li>USB to micro USB cable for kernel debugging</li>
</ul>
<p>After initial setup, it is possible to get away without a monitor for the Sharks Cove as you can simply remote into the machine from your host machine. The next step involves setting up your host machine. I think the documentation for this section covers it. You simply need <a href="https://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop">Visual Studio Express</a>, which is free, if you don&rsquo;t already have it. Then, you&rsquo;ll need to download and install the WDK 8.1 Update. This kit installs all of the necessary files to write drivers for Windows 8.1 Update, 8.1, 8, and 7. The kit is integrated into Visual Studio so you can develop and deploy drivers from within Visual Studio. My experience with this integration was positive. In general, the workflow is very fluid when compared to debugging separately through WinDbg or KD.</p>
<p>Now, we have arrived at setting up the Windows Image and installing it onto the dev board. To me, this step looks overwhelming, but I assure you that it is fairly simple and the documentation has you covered. Once you have successfully created an image, keep it around on a USB in case you ever need to reimage the board. The documentation directs users to download Windows Embedded 8.1 Industry Pro Evaluation. This is a trial OS option for available to developers, but in my experience, the board can run any version of Windows client image you want to install.</p>
<p>Next we need to provision the target system. In this scenario, your host machine is the machine you set up earlier with the WDK and Visual Studio. The target machine is the dev board. The documentation has a link for setting up a target, and that should be enough because provisioning for the Sharks Cove is just like any other target. Here&rsquo;s a short version of this process, explicitly stating what is happening on each machine.</p>
<ul>
<li>Get the WDK Test Target Setup msi from the <em>host (development) </em>machine and bring it to the <em>target (Sharks Cove) </em>via USB or network if that is setup.</li>
<li>Run this on the <em>target</em>.</li>
<li>Once that is run, you can finish provisioning in Visual Studio on the <em>host </em>machine. I&rsquo;d recommend reading through both the provisioning steps and setting up kernel debugging links provided in this section before doing either. That&rsquo;s because<br />you&rsquo;ll want to select <strong>Provision computer and choose debugger settings</strong> the first time through so you don&rsquo;t have to do the process twice.</li>
</ul>
<h3>Attaching a component</h3>
<p>The documentation gives an example of the ASL entry for an ADXL345 accelerometer. This is the part that I worked with to test the board, so I&rsquo;ll talk about using that part through the remainder of this post. To attach the part, I used a breadboard,<br />but with the proper cables, you can just connect it directly. The pin mappings can be found in this guide (<a href="https://msdn.microsoft.com/en-US/library/windows/hardware/dn760712(v=vs.85).aspx">SpbAccelerometer driver cookbook</a>). Once connected, just follow the steps detailed in Step 6 from the Sharks Cove guide we&rsquo;ve been following. The ASL entry I used during development looked slightly different: Device(ADXL) instead of Device(SPBA) and Name(_HID, &ldquo;ADXL345&rdquo;) instead of Name(_HID, &ldquo;SpbAccelerometer&rdquo;).&nbsp; Pay attention to these fields in whatever<br />version of the ASL entry you see available at the time of reading this. It will be important when installing your driver.</p>
<h3>Installing and debugging a driver</h3>
<p>Using the sample driver linked at the bottom of the page, you can test your part. After opening the solution, be sure to set the configuration platform in Visual Studio. The instructions are on the sample&rsquo;s documentation page. Be sure to set it to a<br />debug configuration or you may encounter signing issues. The simplest method of building and testing the driver is through Visual Studio itself.&nbsp; Right click the package project and select properties. Under <em>Driver Install &gt; Deployment</em>, enable deployment, set your target machine to Sharks Cove, and select <em>Install</em> <em>and Verify</em>. Click OK, and you can begin debugging by clicking <strong>Debug &gt; Start Debugging</strong>. This should build the driver, connect to Sharks Cove, copy over the driver files, install it, and finally attach to it for debugging. If the build is successful, you should see various cmd windows popping up and closing on the Sharks Cove. After they are finished, if successful, a Debugger Immediate Window will appear in<br />Visual Studio already broken into upon driver load. You can then set break points, continue, break, and step through code like normal with Visual Studio.</p>
<p>The alternative to using Visual Studio to deploy and debug is manual deployment and debugging with WinDbg (included in the WDK). Instructions for manual deployment can be found on the sample&rsquo;s documentation page. Before you install the driver with <strong>devcon</strong>, you will need to do some setup so that you can attached to the driver on load with WinDbg. First, you need to copy <em>wdfverifier.exe </em>from &hellip;\Windows Kits\8.1\Tools\x86\ on the <em>host</em> to your Sharks Cove. This tool will allow you to set <em>WUDFHost.exe</em>, the process that hosts the driver, to break when your driver is loaded. Run it on the Sharks Cove. Go to the Global WDF Settings tab. Where it says, &ldquo;At [driver load\start], Host Process will wait [0] seconds for user-mode debugger,&rdquo; set the dropdown to <em>driver load</em> and the time to <em>10 </em>or more seconds. You should check the kernel debugger checkbox below this if you plan on kernel debugging. When you install your driver, <em>WUDFHost.exe </em>will break upon you driver loading and wait as long as you specified. At this point you need to attach a debugger. For user-mode debugging, you need to run WinDbg as an administrator on the Sharks Cove. Click <strong>File &gt; Attach to process</strong>. Find <em>WUDFHost.exe</em> and attach. If you have multiple<em> WUDFHost.exe </em>processes, use <strong>tasklist /M SpbAccelerometer.dll </strong>from the command line to get the PID of the correct<em> WUDFHost.exe</em>. You can now attach a remote WinDbg session to this one from your <em>host </em>machine if you<br />prefer. To do this simply run <strong>.server npipe:pipe=&lt;pipename&gt; </strong>in the WinDbg session on your Sharkscove<strong> </strong>where <strong>pipename </strong>is whatever you prefer. Next, start a WinDbg session on your host and click <strong>File &gt; Connect to a Remote Session</strong>. You will need to type the output of the <strong>.server </strong>command after &ndash;remote (e.g. <strong>npipe:pipe=examplepipe,server=examplehost</strong>). Lastly, you can kernel debug through USB if it is setup. Simply start WinDbg on your <em>host </em>and click <strong>File &gt; Kernel Debug</strong>. Select the <strong>COM</strong> tab and change the port to <em>comX</em> where <em>X</em> is the number you found for the <em>target</em> when provisioning.<strong> </strong>Once attached in all cases, you will need the symbols for your driver, the pdb file in the binary output of your Visual Studio project. You can either copy it to your Sharks Cove for local debugging or keep it in place and attach remotely to the Sharks Cove. Whichever method you choose, in <em>WinDbg, </em>on the <em>host </em>unless using the first option, select <strong>File &gt; Symbol File Path</strong>. Add the full path to the directory containing the pdb file. If you&rsquo;d like to look at or step through source code, add the full path to the directory containing the source files for the driver in <strong>File &gt; Source File Path</strong>. Paths are separated by a semicolon. Links to debugging with WinDbg can be found in the Sharks Cove documentation.</p>
<h3>Tips and Tricks</h3>
<p>I wanted to close with a few things that I did to make my life easier when working with Sharks Cove. There&rsquo;s nothing fancy here, just stuff that you may or may not find useful or already thought of yourself.</p>
<ul>
<li>Pinning things to the taskbar can save you a bit of time. I pinned cmd as admin to the taskbar. If you don&rsquo;t know how to make it launch as admin by default, pin it, right click the pinned icon, right click the program name, click properties, click Advanced, and then check Run as Administrator. I also pinned WinDbg. I also pinned File Explorer.</li>
<li>Speaking of pinning, I pinned C:\DriverTest to my favorites in File Explorer. This is the folder on the target where your driver is deployed to by the WDK.</li>
<li>I adjusted the power options on the Sharks Cove to keep it from going to sleep.</li>
<li>Two options if you aren&rsquo;t kernel debugging and don&rsquo;t have a second keyboard\mouse setup:
<ul>
<li>Mouse without borders: a program that allows you to use one set of mouse and keyboard over multiple devices</li>
<li>Remote desktop (also doesn&rsquo;t require a second monitor)</li>
<li>In WinDbg, you can create workspaces in the File menu. I used these to save the paths to symbols and source file for my driver, so I didn&rsquo;t have to do it every time.</li>
</ul>
</li>
</ul>
<p>So there it is, pretty much my knowledge and experience on the Sharks Cove. I hope this is helpful to those getting started, because I want to be able to help those who are having similar experiences as me.</p>]]></content:encoded>
    </item>
    <item>
      <title>You are invited!!</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/you-are-invited</link>
      <pubDate>Fri, 15 Aug 2014 16:38:12 GMT</pubDate>
      <dc:creator><![CDATA[Viraf Gandhi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2014/08/15/you-are-invited/</guid>
      <description><![CDATA[We are hosting a live online event on August 25th&nbsp;where we will show you the capabilities of...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">We are hosting a live online event on August 25<sup>th</sup>&nbsp;where we will show you the capabilities of the Sharks Cove development board from Intel, demonstrate how it can be&nbsp;leveraged by developers for driver development and see how our partners have successfully used this platform to further their business. We will also hear about how Microsoft is collaborating with industry partners to make it very easy for developers interfacing with hardware to use Windows as a development platform.</span></p>
<p><span style="font-size: small;">We also have an exciting new hardware development to disclose.</span></p>
<p><span style="font-size: small;"><span style="font-size: medium;"><strong><span style="color: #808080;">Event Information</span></strong></span><br /></span><strong><span style="color: black; font-family: 'Arial','sans-serif'; font-size: 9pt;">Date</span></strong><span style="color: black; font-family: 'Arial','sans-serif'; font-size: 9pt;">: August 25, 2014<br /><strong><span style="font-family: 'Arial','sans-serif';">Time</span></strong>: 2 live-broadcasts; 10am PST, 5pm PST<br /><strong><span style="font-family: 'Arial','sans-serif';">Online Venue</span></strong>: <a href="https://channel9.msdn.com/">https://channel9.msdn.com/</a></span><span style="font-size: small;"><span style="font-size: small;"></span></span></p>
<p><span style="font-size: small;">Sharks Cove is currently available for order globally at <a href="https://www.sharkscove.org/">www.sharkscove.org</a></span></p>
<p><br /><span style="font-size: small;">Go to <a href="https://www.msdn.microsoft.com/hardwaredevboard" target="_blank">https://www.msdn.microsoft.com/hardwaredevboard</a>&nbsp;to learn more about Windows compatible hardware development boards. </span></p>
<p><span style="font-size: small;"></span></p>
<p><span style="font-size: small;">We hope to see you at the event.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>The Sharks Cove is now available for Pre-order!  [Updated]</title>
      <link>https://docs.microsoft.com/archive/blogs/windows_hardware_and_driver_developer_blog/the-sharks-cove-is-now-available-for-pre-order-updated</link>
      <pubDate>Sat, 26 Jul 2014 08:01:00 GMT</pubDate>
      <dc:creator><![CDATA[Michael Fourre (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windows_hardware_and_driver_developer_blog/2014/07/26/the-sharks-cove-is-now-available-for-pre-order-updated/</guid>
      <description><![CDATA[Back in April at the //Build conference, our group sent a couple of guys down to San Francisco to...]]></description>
      <content:encoded><![CDATA[<p>B<span style="font-family: trebuchet ms,geneva; font-size: small;">ack in April at the //Build </span><span style="font-family: trebuchet ms,geneva; font-size: small;">conference, our group sent a couple of guys down to San Francisco to give a </span><span style="font-family: trebuchet ms,geneva; font-size: small;">preview of some of the <a title="Peter and Viraf Sharks Cove Presentation" href="https://channel9.msdn.com/Events/Build/2014/2-536">cool new stuff</a> we&rsquo;ve been working on over the past year.&nbsp; At the end </span><span style="font-family: trebuchet ms,geneva; font-size: small;">of the presentation, Viraf shared that the coolest of that stuff, the Sharks </span><span style="font-family: trebuchet ms,geneva; font-size: small;">Cove, was targeted for release in Summer of 2014.&nbsp; Given that it&rsquo;s nearing </span><span style="font-family: trebuchet ms,geneva; font-size: small;">the end of July, we&rsquo;re still in the year 2014, and the title of this blog post </span><span style="font-family: trebuchet ms,geneva; font-size: small;">provides a pretty strong hint (spoiler alert?), it appears to be pretty easy to </span><span style="font-family: trebuchet ms,geneva; font-size: small;">guess what I&rsquo;ll say next:</span></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/53/00/4571.Sharks-Board-Close-440.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-53-00/4571.Sharks_2D00_Board_2D00_Close_2D00_440.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/53/00/4571.Sharks-Board-Close-440.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-53-00/4571.Sharks_2D00_Board_2D00_Close_2D00_440.jpg" alt="" border="0" /></a></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">The Sharks Cove development board </span><span style="font-family: trebuchet ms,geneva; font-size: small;">is now <a title="Pre-order the Sharks Cove" href="https://www.mouser.com/ProductDetail/CircuitCo/999-0005112/?qs=%2fha2pyFadujHMsjnM70kKGG23vMNVMdDa094WOKuFgB8eIBF6%252bBXww%3d%3d">available for pre-order</a>!</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">This marks a major milestone in </span><span style="font-family: trebuchet ms,geneva; font-size: small;">our work, and we&rsquo;re all pretty excited about it, to say the least.&nbsp;</span><span style="font-family: trebuchet ms,geneva; font-size: small;">&nbsp;This board is the product of a lot of collaborative effort amongst </span><span style="font-family: trebuchet ms,geneva; font-size: small;">various groups from Microsoft and&nbsp;Intel</span><span style="font-family: trebuchet ms,geneva; font-size: small;">.&nbsp;&nbsp;This&nbsp;&ldquo;Windows compatible hardware development </span><span style="font-family: trebuchet ms,geneva; font-size: small;">board&rdquo;&nbsp;is designed to facilitate development of software and </span><span style="font-family: trebuchet ms,geneva; font-size: small;">drivers for mobile devices that run Windows, such as phones, tablets and </span><span style="font-family: trebuchet ms,geneva; font-size: small;">similar System on a Chip (SoC) platforms.</span>&nbsp;</p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">At $299, this is a board that we </span><span style="font-family: trebuchet ms,geneva; font-size: small;">believe will find a home with Independent Hardware Vendors (IHVs) and hardware </span><span style="font-family: trebuchet ms,geneva; font-size: small;">enthusiasts alike.&nbsp; That price not only covers the cost of the hardware, but also includes </span><span style="font-family: trebuchet ms,geneva; font-size: small;">a Windows 8.1 image and the utilities necessary to apply it to the Sharks </span><span style="font-family: trebuchet ms,geneva; font-size: small;">Cove.&nbsp; When you additionally consider </span><span style="font-family: trebuchet ms,geneva; font-size: small;">that the Windows Driver Kit 8.1 can pair with Visual Studio Express and are </span><span style="font-family: trebuchet ms,geneva; font-size: small;">both free with a valid MSDN&nbsp;account, the initial </span><span style="font-family: trebuchet ms,geneva; font-size: small;">outlay for Windows driver developers is a lot less cost prohibitive than it </span><span style="font-family: trebuchet ms,geneva; font-size: small;">once was.</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">We&rsquo;ve also been busy posting </span><span style="font-family: trebuchet ms,geneva; font-size: small;">content related to the Sharks Cove, settling into our new MSDN </span><span style="font-family: trebuchet ms,geneva; font-size: small;">development-board Forum, and the launch of this blog.&nbsp; Our goal is to </span><span style="font-family: trebuchet ms,geneva; font-size: small;">ensure information is easily found and we have multiple ways to interact with</span><br /><span style="font-family: trebuchet ms,geneva; font-size: small;">our community:</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;"><a title="SharksCove.org" href="https://SharksCove.org">SharksCove.org</a>&nbsp;</span><span style="font-family: trebuchet ms,geneva; font-size: small;">is the site we have set up a site dedicated to the&nbsp;</span><span style="font-family: trebuchet ms,geneva; font-size: small;">Sharks Cove board, where you&rsquo;ll find specs and links to other content and our </span><span style="font-family: trebuchet ms,geneva; font-size: small;">MSDN forums, as well as a link for the pre-order.</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;"><a title="Preorder Link" href="https://www.mouser.com/ProductDetail/CircuitCo/999-0005112/?qs=%2fha2pyFadujHMsjnM70kKGG23vMNVMdDa094WOKuFgB8eIBF6%252bBXww%3d%3d">Pre-order the Sharks Cove</a> direct link (via Mouser Electronics).</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">The <a title="Hardware Development Boards for Windows forum" href="https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/home?forum=HardwareBoards">Hardware Development Boards for Windows forum</a> on MSDN is the new forum we have set </span><span style="font-family: trebuchet ms,geneva; font-size: small;">up for discussion and support.</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">The <a title="Windows compatible hardware development boards" href="https://msdn.microsoft.com/en-us/library/windows/hardware/dn613854(v=vs.85).aspx">Windows compatible hardware development boards</a> MSDN page will consistently be </span><span style="font-family: trebuchet ms,geneva; font-size: small;">updated with new information and act as a launch point to the various pages </span><span style="font-family: trebuchet ms,geneva; font-size: small;">related to Windows driver development using these boards.&nbsp;</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">As mentioned above, Peter </span><span style="font-family: trebuchet ms,geneva; font-size: small;">Wieland and Viraf Gandi <a title="Peter and Viraf Sharks Cove Presentation" href="https://channel9.msdn.com/Events/Build/2014/2-536">introduced and demoed the Sharks Cove</a> at the //BUILD conference in San Francisco this past April </span><span style="font-family: trebuchet ms,geneva; font-size: small;">&ndash; definitely worth the viewing!</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">Over the next few weeks and </span><span style="font-family: trebuchet ms,geneva; font-size: small;">months, we&rsquo;re planning to a number of articles related to the Sharks Cove and </span><span style="font-family: trebuchet ms,geneva; font-size: small;">using it for driver development.&nbsp; Among our planned posts, we will have </span><span style="font-family: trebuchet ms,geneva; font-size: small;">series of posts from our summer college intern describing his introduction to </span><span style="font-family: trebuchet ms,geneva; font-size: small;">driver development and using the Sharks Cove and the User Mode Driver Framework </span><span style="font-family: trebuchet ms,geneva; font-size: small;">(UMDF) to develop a sensor driver.&nbsp; We&rsquo;ll also give a behind-the-scenes </span><span style="font-family: trebuchet ms,geneva; font-size: small;">peek at how all of this came together, as well as a variety of other posts that </span><span style="font-family: trebuchet ms,geneva; font-size: small;">feature the Sharks Cove.</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">We&rsquo;re very excited and proud of </span><span style="font-family: trebuchet ms,geneva; font-size: small;">the work done to make the Sharks Cove a reality.&nbsp; We are looking forward </span><span style="font-family: trebuchet ms,geneva; font-size: small;">to seeing the amazing things that can be done with these boards!</span></p>
<p>&nbsp;</p>
<p>&nbsp;-------------------------------------------------------------------------</p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;"><strong>UPDATE:</strong> We&rsquo;ve seen a lot of news along with robust comments since our blog post announcing Sharks Cove pre-order availability and it&rsquo;s exciting to see all the interest!&nbsp; However, we want to provide more clarity as we are seeing a lot of direct comparisons between Sharks Cove and Raspberry Pi. The primary focus for Sharks Cove is to support Windows IHV&rsquo;s and ODM&rsquo;s, who need a Windows compatible system that is appropriate for hardware and driver development.&nbsp; Sharks Cove is a fully functional PC so you can install desktop and Windows Store apps to facilitate your development and testing and even your general enjoyment of the device.&nbsp;</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">Our focus with this board doesn&rsquo;t mean Microsoft isn&rsquo;t also focused on bringing Windows to smaller devices.&nbsp; For example, as part of presentations at the 2014 <a href="https://channel9.msdn.com/Events/Build/2014/2-511">//Build</a> conference and the <a href="https://www.youtube.com/watch?v=hrTeVCvax3g">O&rsquo;Reilly 2014 Solid</a> conference, Steve Teixeira demonstrated Windows running on an Intel Galileo board.&nbsp; Earlier this month on July 11, the &ldquo;<a href="https://blogs.windows.com/windows/b/buildingapps/archive/2014/07/11/rolling-out-the-windows-developer-program-for-iot.aspx">Building Apps for Windows</a>&rdquo; blog introduced the <a href="https://www.windowsondevices.com/">Windows Developer Program for IOT</a> .&nbsp; This is the first of the several programs Microsoft will offer in the maker space. Many of the questions about Windows on Devices are covered in the FAQ found on the MS-IoT <a href="https://ms-iot.github.io/content/WelcomeAndFAQ.htm">GitHub Open Source Home</a> for the project.</span></p>]]></content:encoded>
    </item>
  </channel>
</rss>