<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Microsoft APGC Hardware Developer Support Team</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:23:09 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Some Windows 10 versions Network Setup Service will keep the network adapter name when a user updates the network driver.</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/some-windows-10-versions-network-setup-service-will-keep-the-network-adapter-name-when-a-user-updates-the-network-driver</link>
      <pubDate>Fri, 22 Dec 2017 07:36:55 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/?p=376</guid>
      <description><![CDATA[Symptom:

&nbsp;

When a user installs the network adapter driver, the network adapter will be...]]></description>
      <content:encoded><![CDATA[<strong>Symptom:</strong>

&nbsp;

When a user installs the network adapter driver, the network adapter will be assigned a name based on the device driver INF file. For example, following INF fragment will install the network adapter with a name: “<strong>Virtual Ethernet Adapter (NDIS 6.30) Version - 1</strong>”

&nbsp;
<table>
<tbody>
<tr>
<td width="1115">[Standard.NTamd64]

……

%NetVMini.DeviceDesc%    = NetVMini.ndi, {b85b7c50-6a01-11d2-b841-00c04fad5171}\NetVMini630 ; Toaster Bus enumerated

&nbsp;

[Strings]

……

NetVMini.DeviceDesc          = "<strong>Virtual Ethernet Adapter (NDIS 6.30) Version - 1</strong>"

……</td>
</tr>
</tbody>
</table>
&nbsp;

This network adapter name will be displayed in the Device Manager and will be remembered by the system in the private data.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/NIC.png"><img width="300" height="46" class="alignnone size-medium wp-image-386" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/12/NIC-300x46.png" /></a>

&nbsp;

&nbsp;

&nbsp;

When a user uses the Device Manager to update the network adapter driver, for example, we have a new version driver:

&nbsp;
<table>
<tbody>
<tr>
<td width="1115">[Standard.NTamd64]

……

%NetVMini.DeviceDesc%    = NetVMini.ndi, {b85b7c50-6a01-11d2-b841-00c04fad5171}\NetVMini630 ; Toaster Bus enumerated

&nbsp;

[Strings]

……

NetVMini.DeviceDesc          = "<strong>Virtual Ethernet Adapter (NDIS 6.30) Version - 2</strong>"

……</td>
</tr>
</tbody>
</table>
&nbsp;

&nbsp;

&nbsp;

In this scenario, the system will keep on using the original network adapter name (<strong><em>Virtual Ethernet Adapter (NDIS 6.30) Version - 1</em></strong>) instead of using the definition in the new version INF file.

&nbsp;

&nbsp;

&nbsp;

<strong>Cause:</strong>

&nbsp;

There is a new component -- Network Setup Service which will try to keep the original network adapter name during the driver update progress.

&nbsp;

<strong> </strong>

<strong>Resolution or Workaround:</strong>

&nbsp;

This issue will not happen if the previous version network adapter driver is “uninstalled” before install the new version driver.

&nbsp;

KB available for Windows 10 1607 version:

&nbsp;

<a href="https://support.microsoft.com/en-us/help/4022715">https://support.microsoft.com/en-us/help/4022715</a>

&nbsp;

&nbsp;
<table>
<tbody>
<tr>
<td width="623"><em>Addressed an issue where the network interface description name of a network adapter is not updated in Hyper-V after a device driver update. Management of a NIC Team or vSwitch within Hyper-V Administrator or System Center Virtual Machine Manager may be affected. </em></td>
</tr>
</tbody>
</table>
&nbsp;

Windows 10 1703 version had fixed this issue.]]></content:encoded>
    </item>
    <item>
      <title>Troubleshoot PnP device issue through Debug Trace from PnP Manager</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/troubleshoot-pnp-device-issue-through-debug-trace-from-pnp-manager</link>
      <pubDate>Mon, 29 Jun 2015 07:39:19 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2015/06/29/troubleshoot-pnp-device-issue-through-debug-trace-from-pnp-manager/</guid>
      <description><![CDATA[The PnP Manager is a key component of the Windows Kernel.There had been lots of PnP device related...]]></description>
      <content:encoded><![CDATA[<p>The PnP Manager is a key component of the Windows Kernel.<br />There had been lots of PnP device related issues in the real world. Here we<br />introduce some basic Debug Traces from the PnP Manager to help narrow down a<br />PnP device issue. These traces required to be enabled before the PnP issue is<br />reproduced, then we can capture the trace when the PnP issue happens. Finally,<br />we will stop the trace and check the trace file.</p>
<p>&nbsp;</p>
<h1>1.&nbsp; The ETW trace from PnP<br />Manager&nbsp;</h1>
<p>The ETW trace is the easiest method to capture because it<br />had been available in the released build of OS.</p>
<p>For example, I enabled the ETW trace by following command<br />(this command requires the cmd.exe to be launched by Run as administrator):</p>
<p><strong>logman create trace<br />"kernel_pnp_trace" -ow -o c:\kernel_pnp_trace.etl -p<br />"Microsoft-Windows-Kernel-PnP" 0xffffffffffffffff 0xff -nb 16 16 -bs<br />1024 -mode Circular -f bincirc -max 4096 -ets</strong></p>
<p>This command will create a new ETW trace session and enable<br />the provider: Microsoft-Windows-Kernel-PnP which is provided by the Windows<br />kernel.</p>
<p>Then I attach a USB mouse. And then I stop the trace<br />session:</p>
<p><strong>logman stop<br />"kernel_pnp_trace" -ets</strong></p>
<p>Finally, I got an etl file which had recorded the activities<br />in Windows kernel PnP manger. The etl file is a binary file which need to be<br />converted to a human readable file. For example, we can covert the etl file to<br />an XML file:</p>
<p><strong>tracerpt<br />c:\kernel_pnp_trace.etl -o kernel_pnp_trace.xml -of xml</strong></p>
<p>&nbsp;</p>
<p>You can format the display of the xml file by any tools. For<br />example, following is the original record of the enumeration of a mouse device:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="623">
<p>&lt;Event<br />&nbsp; xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;System&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Provider<br />&nbsp; Name="Microsoft-Windows-Kernel-PnP" Guid="{9c205a39-1250-487d-abd7-e831c6290539}"<br />&nbsp; /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;EventID&gt;801&lt;/EventID&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Version&gt;0&lt;/Version&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Level&gt;4&lt;/Level&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Task&gt;800&lt;/Task&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;0&lt;/Opcode&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;0x1000000000800000&lt;/Keywords&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TimeCreated<br />&nbsp; SystemTime="2015-06-29T21:35:07.829150300Z" /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Correlation<br />&nbsp; ActivityID="{00000000-0000-0000-0000-000000000000}" /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Execution<br />&nbsp; ProcessID="4" ThreadID="8000" ProcessorID="2"<br />&nbsp; KernelTime="2970" UserTime="0" /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Channel&gt;Microsoft-Windows-Kernel-PnP/Analytic&lt;/Channel&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Computer<br />&nbsp; /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/System&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;EventData&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Data<br />&nbsp; Name="DeviceNode"&gt;0xFFFFE00082117230&lt;/Data&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Data<br />&nbsp; Name="DeviceInstancePath"&gt;USB\VID_045E&amp;amp;PID_0745\6&amp;amp;5ea12e&amp;amp;0&amp;amp;2&lt;/Data&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/EventData&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;RenderingInfo<br />&nbsp; Culture="en-US"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Level&gt;Information<br />&nbsp; &lt;/Level&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;Info<br />&nbsp; &lt;/Opcode&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Keyword&gt;Enumeration&lt;/Keyword&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Keywords&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Task&gt;ProcessNewDevice&lt;/Task&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Channel&gt;Pnp<br />&nbsp; Analytic Channel &lt;/Channel&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Provider&gt;Microsoft-Windows-Kernel-PnP<br />&nbsp; &lt;/Provider&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/RenderingInfo&gt;</p>
<p>&lt;/Event&gt;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>There are lots of Events recorded in the trace file. Based<br />on the trace file, we may find out what had happened in the PnP Manager.</p>
<p>&nbsp;</p>
<h1>2.&nbsp; The Debug Message from the<br />checked build of PnP Manager</h1>
<p>The checked build of PnP<br />Manager has detailed trace which can be enabled if we can reproduce a PnP issue<br />with the checked build or checked kernel. Basically, we get the checked (debug)<br />build of the OS kernel from:</p>
<p>u&nbsp; WDK<br />Installation: C:\Program Files (x86)\Windows Kits\8.1\Debug\winv6.3</p>
<p>u&nbsp; A<br />checked build of OS from MSDN Subscription</p>
<p>&nbsp;Then we can copy the<br />checked kernel to a release build of OS. We need to know which kernel and hal<br />files currently are used so that the correct files from the checked build are<br />used. See the <a href="https://msdn.microsoft.com/EN-US/library/windows/hardware/ff547188(v=vs.85).aspx">https://msdn.microsoft.com/EN-US/library/windows/hardware/ff547188(v=vs.85).aspx</a><br />for details.</p>
<p>Then we can Create a new Boot Entry with the checked kernel<br />files</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bcdedit<br />/copy {current} /d "Windows 8.1 Checked Build kernel"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bcdedit<br />/set <em>GUID</em> kernel ntkrnlmp.chk</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bcdedit<br />/set <em>GUID</em> hal halmacpi.chk</p>
<p>Note that the ntkrnlmp.chk and halmacpi.chk are from the<br />checked build or WDK. Please rename these checked build files so that no<br />existing files in the %SystemRoot%\system32 are overwritten.</p>
<p>&nbsp;</p>
<p>After the checked build of PnP Manager is available, we can<br />enable the output from PnP Manager by:</p>
<p>&nbsp;</p>
<p>u&nbsp; Enable<br />NTOSPNP flag in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session<br />Manager\Debug Print Filter</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NTOSPNP<br />(REG_DWORD) = 0xFFFFFFFF</p>
<p>&nbsp;</p>
<p>After above change, you should be able to see the debug<br />messages from a kernel debugger or dbgview.</p>
<p>For example:<br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/62/27/2605.Untitled.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-62-27/2605.Untitled.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/62/27/2605.Untitled.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-62-27/2605.Untitled.png" alt="" border="0" /></a>&nbsp;</p>
<p>&nbsp;</p>
<p>The information from the checked build has lots of detailed<br />information which will be helpful for the driver developer.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Thanks,</p>
<p>Jungang Bai</p>]]></content:encoded>
    </item>
    <item>
      <title>The Errata in Windows HLK/HCK and WLK</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/the-errata-in-windows-hlkhck-and-wlk</link>
      <pubDate>Mon, 29 Jun 2015 07:35:36 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2015/06/29/the-errata-in-windows-hlkhck-and-wlk/</guid>
      <description><![CDATA[It had been many years when the Windows HardwareCompatibility Program and Windows Hardware...]]></description>
      <content:encoded><![CDATA[<p>It had been many years when the Windows Hardware<br />Compatibility Program and Windows Hardware Certification Program were<br />introduced. Basically, partners will run a set of pre-defined test cases from<br />the kit like:</p>
<p>Windows HLK RC<br />for Windows 10 -- <a href="http://go.microsoft.com/fwlink/p/?LinkID=404112">http://go.microsoft.com/fwlink/p/?LinkID=404112</a></p>
<p>HCK for Windows<br />8.1 -- <a href="http://go.microsoft.com/fwlink/p/?LinkID=317577&amp;clcid=0x409">http://go.microsoft.com/fwlink/p/?LinkID=317577&amp;clcid=0x409</a></p>
<p>Windows Logo Kit<br />1.6 -- <a href="https://www.microsoft.com/en-us/download/details.aspx?id=39359">https://www.microsoft.com/en-us/download/details.aspx?id=39359</a></p>
<p>However, the<br />partners who use the kit may find there are many test cases failed for many<br />reasons. Especially for those users who run the test kit for the first time.<br />Beside the normal troubleshooting steps which may be involved to fix the<br />failure. There are a list of failures which came from the test tool kit itself<br />or the hardware spec limitation or even the operation system. To unblock<br />partners from this type of issues, the Windows HLK/HCK and WLK had<br />published a set of Errata to cover this situation. You may want to know the<br />details of these Errata so that you can save lots of time to troubleshoot a<br />test failure.</p>
<p>The Errata of Windows HLK/HCK and WLK includes following<br />type:</p>
<p><strong>Automatic Errata/Filter</strong><br />&ndash; It is a set of script which can be installed to the DTM Controller and be<br />applied after the test had been done. The automatic Errata/Filter is able to<br />change the final test result to PASS if it can be applied. Note that the error<br />message or failure message are still in the log file, it only changes the final<br />result. You need to install the latest Errata/Filter package to apply them and<br />confirm that the final result of a test case is PASS.</p>
<p><strong>Manual Errata</strong> &ndash;<br />It is a type of Errata which can&rsquo;t be applied automatically. The steps to<br />decide if an error or failure can be covered or not may be very long or complicated.<br />Or the information in the test result is not enough to decide the application<br />of the Errata. This is a situation in which you may ask Microsoft Support team<br />to help verify if there is a manual Errata for the specific error. There are<br />lots of the manual Errata have an <strong>auto-triage<br />filter</strong> which will be installed with the latest Errata/Filter package. The<br />auto-triage filter will not change the test case to PASS. However, it may<br />indicate that this is an error which somebody else had encountered before. You<br />can follow the information or instruction from the auto-triage filter to<br />troubleshoot a test failure.</p>
<p><strong>Contingenc</strong><strong>y</strong> &ndash; It is a type of temp Errata which<br />is approved by Windows Logo team based on the business impact of the issue. The<br />partners often has a tight schedule and it is impossible to apply a solution in<br />a very short time. To request a contingency send email to the <a href="mailto:sysdev@microsoft.com">sysdev@microsoft.com</a><br />alias or other contacts you are provided to request the appropriate forms and<br />instructions.</p>
<p>&nbsp;</p>
<p>Thanks,</p>
<p>Jungang Bai&nbsp;&nbsp;&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Decode ETL file generated by Manifest-based ETW Provider from different machine</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/decode-etl-file-generated-by-manifest-based-etw-provider-from-different-machine</link>
      <pubDate>Fri, 29 May 2015 01:44:05 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2015/05/29/decode-etl-file-generated-by-manifest-based-etw-provider-from-different-machine/</guid>
      <description><![CDATA[ETW is a powerful trace method in Windows platform. See following articles about the ETW:

Improve...]]></description>
      <content:encoded><![CDATA[<p>ETW is a powerful trace method in Windows platform. See following articles about the ETW:</p>
<ul>
<li><br />Improve Debugging And Performance Tuning With ETW</li>
</ul>
<p><a href="https://msdn.microsoft.com/en-us/magazine/cc163437.aspx">https://msdn.microsoft.com/en-us/magazine/cc163437.aspx</a></p>
<ul>
<li><br />ETW (Event Tracing For Windows) &ndash; what it is and useful tools</li>
</ul>
<p><a href="http://blogs.msdn.com/b/oanapl/archive/2009/08/05/etw-event-tracing-for-windows-what-it-is-and-useful-tools.aspx">http://blogs.msdn.com/b/oanapl/archive/2009/08/05/etw-event-tracing-for-windows-what-it-is-and-useful-tools.aspx</a></p>
<p>There are hundreds of inbox ETW providers installed. It became a popular method to troubleshoot Windows issues because collecting ETW trace doesn&rsquo;t need to install any tools (using logman.exe) or to restart machine. There are lots of document about how to collect and analyze ETW trace file for scenario based problem. There are also many applications and drivers which generates Manifest-based events.</p>
<p>&nbsp;</p>
<p>However, to decode the trace file generated from these ETW providers correctly, we have to run Events Consumers (any tools to convert the ETL file to a human readable text file) in the same machine where the ETL file are captured because the Manifest of the ETW providers had been installed to the machine. If an ETL file is<br />copied from a test machine to another machine, you may encounter situation in which your machine misses the Event Schema or the Manifest of ETW Provider which are only installed in the test machine.</p>
<p>For example, this <strong>Microsoft-Windows-wmbclass</strong> provider is not installed by default on a Windows 8.1 system until you install a Mobile Broadband device. To decode the ETL file from <strong>Microsoft-Windows-wmbclass</strong> provider, you must install this provider on your machine or the trace file will not be decoded successfully. The easiest<br />way is to plug a Mobile Broadband device on your machine and the driver installation will also install this ETW provider properly.</p>
<p>There are scenarios in which we can&rsquo;t install the ETW provider easily to our working machine. In this case, we have to capture the Schema at the same time when capturing the ETL file. There are tools for this purpose. Tracerpt.exe is an inbox tool to capture the schema which is used to decode Manifest-based events.</p>
<p>For example: we are capturing the trace from an ETW provider which is only installed on a test machine:</p>
<p><strong>Logman.exe start test_trace -o .\test.etl -p "Sample Driver" 0xffffffffffffffff 0xff -nb 16 16 -bs 1024 -mode Circular -f bincirc -max 4096 -ets</strong></p>
<p><strong>Logman.exe stop test_trace -ets</strong></p>
<p>After stopping the trace, we can export the schema which is used to decode those Manifest-based events in the ETL file to a schema file (run this command in the test machine)</p>
<p><strong>Tracerpt.exe .\test.etl -export schema.man</strong></p>
<p>&nbsp;</p>
<p>We copied the ETL file and schema.man file to another machine. Then we are able to decode those Manifest-based events successfully by referencing the schema copied from test machine:</p>
<p><strong>Tracerpt.exe .\test.etl -o test.xml -of xml -import schema.man</strong></p>
<p>&nbsp;</p>
<p>The current Message Analyzer is able to accept the etl file and man file as the input to show correct messages. see <a href="https://technet.microsoft.com/en-us/library/jj674809.aspx">https://technet.microsoft.com/en-us/library/jj674809.aspx</a>&nbsp;for details.</p>]]></content:encoded>
    </item>
    <item>
      <title>No Guarded Mutex in Win8?</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/no-guarded-mutex-in-win8</link>
      <pubDate>Sat, 09 Nov 2013 17:37:36 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2013/11/09/no-guarded-mutex-in-win8/</guid>
      <description><![CDATA[As the MSDN article&nbsp;&ldquo;Fast Mutexes and Guarded Mutexes&rdquo; says,




Starting with...]]></description>
      <content:encoded><![CDATA[<p>As the MSDN <a href="http://msdn.microsoft.com/en-us/library/windows/hardware/ff545716(v=vs.85).aspx">article</a>&nbsp;&ldquo;Fast Mutexes and Guarded Mutexes&rdquo; says,</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="575">
<p>Starting with Windows&nbsp;8, guarded mutexes and fast mutexes&nbsp;are implemented identically.</p>
</td>
</tr>
</tbody>
</table>
<p>If you check WDK8 header file wdm.h, KGUARDED_MUTEX equals to FAST_MUTEX:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="575">
<p>typedef struct _FAST_MUTEX {<br /><br />&nbsp; volatile LONG Count;<br /><br />&nbsp; PVOID Owner;<br /><br />&nbsp; ULONG Contention;<br /><br />&nbsp; KEVENT Event;<br /><br />&nbsp; ULONG OldIrql;<br /><br />&nbsp; } FAST_MUTEX, *PFAST_MUTEX, KGUARDED_MUTEX, *PKGUARDED_MUTEX;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>In WDK7.1 wdm.h, KGUARDED_MUTEX is defined as below:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="590">
<p>typedef struct _KGUARDED_MUTEX {<br /><br />&nbsp; volatile LONG Count;<br /><br />&nbsp; PKTHREAD Owner;<br /><br />&nbsp; ULONG Contention;<br /><br />&nbsp; KGATE Gate;<br /><br />&nbsp; union {<br /><br />&nbsp; struct {<br /><br />&nbsp; SHORT KernelApcDisable;<br /><br />&nbsp; SHORT SpecialApcDisable;<br /><br />&nbsp; };<br /><br />&nbsp; ULONG CombinedApcDisable;<br /><br />&nbsp; };<br /><br />&nbsp; } KGUARDED_MUTEX, *PKGUARDED_MUTEX;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Before Win8, People use guarded mutex, because comparing to fast mutex, guarded mutex is faster, more importantly, it will not raise IRQL to APC_LEVEL, which means the protected code can stay at PASSIVE_LEVEL in synchronization. A code path that is protected by fast mutex runs at IRQL = APC_LEVEL.</p>
<p>The problem is &lsquo;OLD&lsquo; Win7 KGUARDED_MUTEX was implemented based on guarded region, which disables all APCs (Normal Kernel APC and Special Kernel APC). This identical to raise current IRQL to APC_LEVEL.&nbsp; As such, any APIs that are illegal at APC_LEVEL are also illegal in protection of guarded mutex. Win8 made the conscious choice to unify the code implementation for fast mutex and guarded mutex. They are identical.</p>
<p>Here&rsquo;s a blog calling out the fact that calling passive level APIs in guarded regions is bad:</p>
<p><a href="http://blogs.technet.com/b/fbsblogs/archive/2008/12/26/failing-io_2700_s-issued-at-apc-level-or-with-special-kernel-apcs-disabled-_2800_except-in-the-case-of-paging-io_2900_.aspx">http://blogs.technet.com/b/fbsblogs/archive/2008/12/26/failing-io_2700_s-issued-at-apc-level-or-with-special-kernel-apcs-disabled-_2800_except-in-the-case-of-paging-io_2900_.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Driver signature consideration for XP and Vista+</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/driver-signature-consideration-for-xp-and-vista</link>
      <pubDate>Sat, 09 Nov 2013 17:36:31 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2013/11/09/driver-signature-consideration-for-xp-and-vista/</guid>
      <description><![CDATA[HCK8.0 will retire on Nov. 30. But HCK8.1 doesn't support Vista and XP test, what should I do for XP...]]></description>
      <content:encoded><![CDATA[<p>HCK8.0 will retire on Nov. 30. But HCK8.1 doesn't support Vista and XP test, what should I do for XP and Vista driver signature？</p>
<p>1. If the driver package is uniform,&nbsp;refer to the following HCK newsletter:</p>
<p><a href="http://msdn.microsoft.com/en-us/windows/hardware/dn320463">http://msdn.microsoft.com/en-us/windows/hardware/dn320463</a></p>
<p><strong>Digital signatures available for legacy operating systems in the new Windows HCK for<br />Windows 8.1</strong></p>
<p>When you successfully complete testing for a client certification of Windows 7, Windows 8, or Windows 8.1, use the Dashboard to create a submission package for uploading - the same process that you&rsquo;ve used in the past. And, <span style="background-color: #ffff00;">if you&rsquo;re using a uniform driver that&rsquo;s properly decorated to include Windows Vista and Windows XP, the dashboard has check boxes for free digital signatures.</span></p>
<p>2. If the driver package is not uniform. You can run xp and vista test with WLK1.6, and send the submission to sysdev with a special method. Contact <a href="mailto:sysdev@microsoft.com">sysdev@microsoft.com</a> for the special method details</p>]]></content:encoded>
    </item>
    <item>
      <title>Useful links for WDK</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/useful-links-for-wdk</link>
      <pubDate>Sat, 09 Nov 2013 17:35:47 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2013/11/09/useful-links-for-wdk/</guid>
      <description><![CDATA[A Hole In My HeadDoron Holan's musings on drivers and other nibbles and...]]></description>
      <content:encoded><![CDATA[<ul>
<li>A Hole In My Head<br />Doron Holan's musings on drivers and other nibbles and bits<br /><a href="http://blogs.msdn.com/b/doronh/">http://blogs.msdn.com/b/doronh/</a></li>
</ul>
<ul>
<li>Microsoft Windows USB Core Team Blog<br /><a href="http://blogs.msdn.com/b/usbcoreblog/">http://blogs.msdn.com/b/usbcoreblog/</a></li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Useful links for HCK</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/useful-links-for-hck</link>
      <pubDate>Sat, 09 Nov 2013 17:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2013/11/09/useful-links-for-hck/</guid>
      <description><![CDATA[Windows Hardware Certification Kit QFE...]]></description>
      <content:encoded><![CDATA[<ul>
<li>Windows Hardware Certification Kit QFE Updates<br /><a href="http://msdn.microsoft.com/en-us/library/windows/hardware/dn284526.aspx">http://msdn.microsoft.com/en-us/library/windows/hardware/dn284526.aspx</a></li>
<li>Windows Hardware Certification Kit (HCK) FAQ<br /><a href="http://msdn.microsoft.com/en-us/library/windows/hardware/dn251523.aspx">http://msdn.microsoft.com/en-us/library/windows/hardware/dn251523.aspx</a></li>
<li>Windows Hardware Certification Requirements<br /><a href="http://msdn.microsoft.com/en-us/library/windows/hardware/dn423132">http://msdn.microsoft.com/en-us/library/windows/hardware/dn423132</a></li>
<li><a href="http://download.microsoft.com/download/2/3/6/23662F33-71E8-43C1-8547-5DE49B0374AB/windows-hck-product-type-matrix.zip">HCK Product Type Test Matrix</a><br /><a href="http://download.microsoft.com/download/2/3/6/23662F33-71E8-43C1-8547-5DE49B0374AB/windows-hck-product-type-matrix.zip">http://download.microsoft.com/download/2/3/6/23662F33-71E8-43C1-8547-5DE49B0374AB/windows-hck-product-type-matrix.zip</a></li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>How to setup to collect Memory Dump?</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/how-to-setup-to-collect-memory-dump</link>
      <pubDate>Sat, 09 Nov 2013 17:32:03 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2013/11/09/how-to-setup-to-collect-memory-dump/</guid>
      <description><![CDATA[A kernel dump gets created every time a machine has a kernel fault. This dump gets stored in the...]]></description>
      <content:encoded><![CDATA[<p>A kernel dump gets created every time a machine has a kernel fault. This dump gets stored in the <strong>%systemroot%</strong> folder as a memory.dmp file.<br />(Control Panel &gt; System and Security &gt; System &gt; Advanced system settings &gt; Advanced tab &gt; Startup and Recovery Settings.)</p>
<ol>
<li>
<p><span style="font-family: comic sans ms,sans-serif;">No Full Memory Dumps option? </span></p>
<p><span style="font-family: comic sans ms,sans-serif;"> The I/O Manager originally limited the size of a complete memory dump to 2GB, now the fact is Windows support crash dumps larger than 2GB. To workaround this,&nbsp;set \HKLM\System\CCS\Control\CrashControl\CrashDumpEnabled DWORD value to 1</span></p>
</li>
<li>
<p style="text-align: left;"><span style="font-family: comic sans ms,sans-serif;">No memory.dmp generated after crash?</span><br /><span style="font-family: comic sans ms,sans-serif;"> Algorithm to decide whether to store/delete memory.dmp file generated after a system crash:</span><br /><span style="font-family: comic sans ms,sans-serif;"> First report the kernel fault to the Online Crash Analysis Service. </span><br /><span style="font-family: comic sans ms,sans-serif;"> Then, if machine has a registry setting AlwaysKeepMemoryDump set to 1, store the dump file on disk. </span><br /><span style="font-family: comic sans ms,sans-serif;"> Else, if machine is a Windows Server SKU, store the dump file on disk. </span><br /><span style="font-family: comic sans ms,sans-serif;"> Else, if the machine is joined to a domain (i.e. this is a corporate machine), store the dump file on disk. </span><br /><span style="font-family: comic sans ms,sans-serif;"> Else, if machine is not on a domain (i.e. this is a home user&rsquo;s machine), </span><br /><span style="font-family: comic sans ms,sans-serif; font-size: x-small;">If free disk space is &gt;= <strong><span style="background-color: yellow;">25GB</span></strong>, store the dump file on disk. </span><br /><span style="font-family: comic sans ms,sans-serif; font-size: x-small;">Else (free disk space is &lt; 25 GB), delete the dump file. </span><br /><span style="font-family: comic sans ms,sans-serif;"> The exact location of the AlwaysKeepMemoryDump setting in the registry is:</span><br /><span style="font-family: comic sans ms,sans-serif;"> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl ! AlwaysKeepMemoryDump Type: REG_DWORD.</span></p>
</li>
</ol>
<div style="text-align: left;">Reference:<br /><a href="http://blogs.msdn.com/b/wer/archive/2009/02/09/kernel-dump-storage-and-clean-up-behavior-in-windows-7.aspx">http://blogs.msdn.com/b/wer/archive/2009/02/09/kernel-dump-storage-and-clean-up-behavior-in-windows-7.aspx</a></div>]]></content:encoded>
    </item>
    <item>
      <title>How to make a partition on a RAW USB flash disk by programming?</title>
      <link>https://docs.microsoft.com/archive/blogs/microsoft_apgc_hardware_developer_support_team/how-to-make-a-partition-on-a-raw-usb-flash-disk-by-programming</link>
      <pubDate>Sat, 09 Nov 2013 17:30:37 GMT</pubDate>
      <dc:creator><![CDATA[Microsoft APGC Hardware Developer Support Team]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/microsoft_apgc_hardware_developer_support_team/2013/11/09/how-to-make-a-partition-on-a-raw-usb-flash-disk-by-programming/</guid>
      <description><![CDATA[Briefly, here are the steps:1. Use CreateFile to open PhysicalDriveX, that is the USB Flash disk2....]]></description>
      <content:encoded><![CDATA[<p>Briefly, here are the steps:<br />1. Use CreateFile to open PhysicalDriveX, that is the USB Flash disk<br />2. IOCTL_DISK_GET_DRIVE_GEOMETRY_EX to get the physical disk's geometry ( we need some information in it to fill partition data)<br />3. IOCTL_DISK_CREATE_DISK to creates an empty partition.<br />4. IOCTL_DISK_SET_DRIVE_LAYOUT_EX to repartition a disk as specified.<br />Note: use IOCTL_DISK_UPDATE_PROPERTIES to synchronize system view after IOCTL_DISK_CREATE_DISK and IOCTL_DISK_SET_DRIVE_LAYOUT_EX.<br />e.g. a 1GB size flash disk,<br />pBuf-&gt;PartitionEntry[0].PartitionStyle = PARTITION_STYLE_MBR;<br />pBuf-&gt;PartitionEntry[0].StartingOffset.QuadPart = 0x10000;//64KB<br />pBuf-&gt;PartitionEntry[0].PartitionLength.QuadPart = 0x1e200000; //Donot exceed DiskGeo.DiskSize<br />pBuf-&gt;PartitionEntry[0].PartitionNumber = 1;<br />pBuf-&gt;PartitionEntry[0].RewritePartition = TRUE;<br />pBuf-&gt;PartitionEntry[0].Mbr.PartitionType = PARTITION_FAT32;<br />pBuf-&gt;PartitionEntry[0].Mbr.BootIndicator = TRUE;<br />pBuf-&gt;PartitionEntry[0].Mbr.RecognizedPartition = TRUE;<br />pBuf-&gt;PartitionEntry[0].Mbr.HiddenSectors = 0x80; //StartingOffset/(DiskGeo.BytesPerSector) = 0x10000/0x200</p>]]></content:encoded>
    </item>
  </channel>
</rss>