<?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>Where in the API is Andrew Richards?</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/andrew_richards/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/andrew_richards/feed.xml</link>
    <description>This blog contains random snippets/thoughts as I wonder around various SDK and WDK APIs...</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:14:22 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>HRESULT Facility - By Value</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/hresult-facility-by-value</link>
      <pubDate>Sun, 22 Apr 2018 14:52:37 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/?p=555</guid>
      <description><![CDATA[HRESULT Facility
A HRESULT Error Code is a 32bit number with bits representing different...]]></description>
      <content:encoded><![CDATA[<h1>HRESULT Facility</h1>
A <a href="https://en.wikipedia.org/wiki/HRESULT">HRESULT</a> Error Code is a 32bit number with bits representing different purposes.

Bits 16-26 are the Facility. The Facility is the originating API.

Refer to <a href="https://blogs.msdn.microsoft.com/andrew_richards/2018/04/22/hresult-facility-by-name/">HRESULT Facility - By Name</a> for a table sorted by <strong>name</strong>.
<h2>Facility by Value</h2>
<table width="395">
<tbody>
<tr>
<td width="267"><strong>FACILITY</strong></td>
<td width="64"><strong>Decimal</strong></td>
<td width="64"><strong>Hex</strong></td>
</tr>
<tr>
<td>FACILITY_NULL</td>
<td>0</td>
<td>0x0</td>
</tr>
<tr>
<td>FACILITY_RPC</td>
<td>1</td>
<td>0x1</td>
</tr>
<tr>
<td>FACILITY_DISPATCH</td>
<td>2</td>
<td>0x2</td>
</tr>
<tr>
<td>FACILITY_STORAGE</td>
<td>3</td>
<td>0x3</td>
</tr>
<tr>
<td>FACILITY_ITF</td>
<td>4</td>
<td>0x4</td>
</tr>
<tr>
<td>FACILITY_WIN32</td>
<td>7</td>
<td>0x7</td>
</tr>
<tr>
<td>FACILITY_WINDOWS</td>
<td>8</td>
<td>0x8</td>
</tr>
<tr>
<td>FACILITY_SECURITY</td>
<td>9</td>
<td>0x9</td>
</tr>
<tr>
<td>FACILITY_SSPI</td>
<td>9</td>
<td>0x9</td>
</tr>
<tr>
<td>FACILITY_CONTROL</td>
<td>10</td>
<td>0xA</td>
</tr>
<tr>
<td>FACILITY_CERT</td>
<td>11</td>
<td>0xB</td>
</tr>
<tr>
<td>FACILITY_INTERNET</td>
<td>12</td>
<td>0xC</td>
</tr>
<tr>
<td>FACILITY_MEDIASERVER</td>
<td>13</td>
<td>0xD</td>
</tr>
<tr>
<td>FACILITY_MSMQ</td>
<td>14</td>
<td>0xE</td>
</tr>
<tr>
<td>FACILITY_SETUPAPI</td>
<td>15</td>
<td>0xF</td>
</tr>
<tr>
<td>FACILITY_SCARD</td>
<td>16</td>
<td>0x10</td>
</tr>
<tr>
<td>FACILITY_COMPLUS</td>
<td>17</td>
<td>0x11</td>
</tr>
<tr>
<td>FACILITY_AAF</td>
<td>18</td>
<td>0x12</td>
</tr>
<tr>
<td>FACILITY_URT</td>
<td>19</td>
<td>0x13</td>
</tr>
<tr>
<td>FACILITY_ACS</td>
<td>20</td>
<td>0x14</td>
</tr>
<tr>
<td>FACILITY_DPLAY</td>
<td>21</td>
<td>0x15</td>
</tr>
<tr>
<td>FACILITY_UMI</td>
<td>22</td>
<td>0x16</td>
</tr>
<tr>
<td>FACILITY_SXS</td>
<td>23</td>
<td>0x17</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_CE</td>
<td>24</td>
<td>0x18</td>
</tr>
<tr>
<td>FACILITY_HTTP</td>
<td>25</td>
<td>0x19</td>
</tr>
<tr>
<td>FACILITY_USERMODE_COMMONLOG</td>
<td>26</td>
<td>0x1A</td>
</tr>
<tr>
<td>FACILITY_WER</td>
<td>27</td>
<td>0x1B</td>
</tr>
<tr>
<td>FACILITY_USERMODE_FILTER_MANAGER</td>
<td>31</td>
<td>0x1F</td>
</tr>
<tr>
<td>FACILITY_BACKGROUNDCOPY</td>
<td>32</td>
<td>0x20</td>
</tr>
<tr>
<td>FACILITY_CONFIGURATION</td>
<td>33</td>
<td>0x21</td>
</tr>
<tr>
<td>FACILITY_WIA</td>
<td>33</td>
<td>0x21</td>
</tr>
<tr>
<td>FACILITY_STATE_MANAGEMENT</td>
<td>34</td>
<td>0x22</td>
</tr>
<tr>
<td>FACILITY_METADIRECTORY</td>
<td>35</td>
<td>0x23</td>
</tr>
<tr>
<td>FACILITY_WINDOWSUPDATE</td>
<td>36</td>
<td>0x24</td>
</tr>
<tr>
<td>FACILITY_DIRECTORYSERVICE</td>
<td>37</td>
<td>0x25</td>
</tr>
<tr>
<td>FACILITY_GRAPHICS</td>
<td>38</td>
<td>0x26</td>
</tr>
<tr>
<td>FACILITY_NAP</td>
<td>39</td>
<td>0x27</td>
</tr>
<tr>
<td>FACILITY_SHELL</td>
<td>39</td>
<td>0x27</td>
</tr>
<tr>
<td>FACILITY_TPM_SERVICES</td>
<td>40</td>
<td>0x28</td>
</tr>
<tr>
<td>FACILITY_TPM_SOFTWARE</td>
<td>41</td>
<td>0x29</td>
</tr>
<tr>
<td>FACILITY_UI</td>
<td>42</td>
<td>0x2A</td>
</tr>
<tr>
<td>FACILITY_XAML</td>
<td>43</td>
<td>0x2B</td>
</tr>
<tr>
<td>FACILITY_ACTION_QUEUE</td>
<td>44</td>
<td>0x2C</td>
</tr>
<tr>
<td>FACILITY_PLA</td>
<td>48</td>
<td>0x30</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_SETUP</td>
<td>48</td>
<td>0x30</td>
</tr>
<tr>
<td>FACILITY_FVE</td>
<td>49</td>
<td>0x31</td>
</tr>
<tr>
<td>FACILITY_FWP</td>
<td>50</td>
<td>0x32</td>
</tr>
<tr>
<td>FACILITY_WINRM</td>
<td>51</td>
<td>0x33</td>
</tr>
<tr>
<td>FACILITY_NDIS</td>
<td>52</td>
<td>0x34</td>
</tr>
<tr>
<td>FACILITY_USERMODE_HYPERVISOR</td>
<td>53</td>
<td>0x35</td>
</tr>
<tr>
<td>FACILITY_CMI</td>
<td>54</td>
<td>0x36</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VIRTUALIZATION</td>
<td>55</td>
<td>0x37</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VOLMGR</td>
<td>56</td>
<td>0x38</td>
</tr>
<tr>
<td>FACILITY_BCD</td>
<td>57</td>
<td>0x39</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VHD</td>
<td>58</td>
<td>0x3A</td>
</tr>
<tr>
<td>FACILITY_SDIAG</td>
<td>60</td>
<td>0x3C</td>
</tr>
<tr>
<td>FACILITY_WEBSERVICES</td>
<td>61</td>
<td>0x3D</td>
</tr>
<tr>
<td>FACILITY_WINPE</td>
<td>61</td>
<td>0x3D</td>
</tr>
<tr>
<td>FACILITY_WPN</td>
<td>62</td>
<td>0x3E</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_STORE</td>
<td>63</td>
<td>0x3F</td>
</tr>
<tr>
<td>FACILITY_INPUT</td>
<td>64</td>
<td>0x40</td>
</tr>
<tr>
<td>FACILITY_EAP</td>
<td>66</td>
<td>0x42</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_DEFENDER</td>
<td>80</td>
<td>0x50</td>
</tr>
<tr>
<td>FACILITY_OPC</td>
<td>81</td>
<td>0x51</td>
</tr>
<tr>
<td>FACILITY_XPS</td>
<td>82</td>
<td>0x52</td>
</tr>
<tr>
<td>FACILITY_RAS</td>
<td>83</td>
<td>0x53</td>
</tr>
<tr>
<td>FACILITY_MBN</td>
<td>84</td>
<td>0x54</td>
</tr>
<tr>
<td>FACILITY_POWERSHELL</td>
<td>84</td>
<td>0x54</td>
</tr>
<tr>
<td>FACILITY_EAS</td>
<td>85</td>
<td>0x55</td>
</tr>
<tr>
<td>FACILITY_P2P_INT</td>
<td>98</td>
<td>0x62</td>
</tr>
<tr>
<td>FACILITY_P2P</td>
<td>99</td>
<td>0x63</td>
</tr>
<tr>
<td>FACILITY_DAF</td>
<td>100</td>
<td>0x64</td>
</tr>
<tr>
<td>FACILITY_BLUETOOTH_ATT</td>
<td>101</td>
<td>0x65</td>
</tr>
<tr>
<td>FACILITY_AUDIO</td>
<td>102</td>
<td>0x66</td>
</tr>
<tr>
<td>FACILITY_VISUALCPP</td>
<td>109</td>
<td>0x6D</td>
</tr>
<tr>
<td>FACILITY_SCRIPT</td>
<td>112</td>
<td>0x70</td>
</tr>
<tr>
<td>FACILITY_PARSE</td>
<td>113</td>
<td>0x71</td>
</tr>
<tr>
<td>FACILITY_BLB</td>
<td>120</td>
<td>0x78</td>
</tr>
<tr>
<td>FACILITY_BLB_CLI</td>
<td>121</td>
<td>0x79</td>
</tr>
<tr>
<td>FACILITY_WSBAPP</td>
<td>122</td>
<td>0x7A</td>
</tr>
<tr>
<td>FACILITY_BLBUI</td>
<td>128</td>
<td>0x80</td>
</tr>
<tr>
<td>FACILITY_USN</td>
<td>129</td>
<td>0x81</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VOLSNAP</td>
<td>130</td>
<td>0x82</td>
</tr>
<tr>
<td>FACILITY_TIERING</td>
<td>131</td>
<td>0x83</td>
</tr>
<tr>
<td>FACILITY_WSB_ONLINE</td>
<td>133</td>
<td>0x85</td>
</tr>
<tr>
<td>FACILITY_ONLINE_ID</td>
<td>134</td>
<td>0x86</td>
</tr>
<tr>
<td>FACILITY_DLS</td>
<td>153</td>
<td>0x99</td>
</tr>
<tr>
<td>FACILITY_SOS</td>
<td>160</td>
<td>0xA0</td>
</tr>
<tr>
<td>FACILITY_DEBUGGERS</td>
<td>176</td>
<td>0xB0</td>
</tr>
<tr>
<td>FACILITY_USERMODE_SPACES</td>
<td>231</td>
<td>0xE7</td>
</tr>
<tr>
<td>FACILITY_DMSERVER</td>
<td>256</td>
<td>0x100</td>
</tr>
<tr>
<td>FACILITY_RESTORE</td>
<td>256</td>
<td>0x100</td>
</tr>
<tr>
<td>FACILITY_SPP</td>
<td>256</td>
<td>0x100</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_SERVER</td>
<td>257</td>
<td>0x101</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_IMAGING</td>
<td>258</td>
<td>0x102</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT</td>
<td>259</td>
<td>0x103</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_UTIL</td>
<td>260</td>
<td>0x104</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_BINLSVC</td>
<td>261</td>
<td>0x105</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_PXE</td>
<td>263</td>
<td>0x107</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_TFTP</td>
<td>264</td>
<td>0x108</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT</td>
<td>272</td>
<td>0x110</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING</td>
<td>278</td>
<td>0x116</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER</td>
<td>289</td>
<td>0x121</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT</td>
<td>290</td>
<td>0x122</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER</td>
<td>293</td>
<td>0x125</td>
</tr>
<tr>
<td>FACILITY_LINGUISTIC_SERVICES</td>
<td>305</td>
<td>0x131</td>
</tr>
<tr>
<td>FACILITY_WEB</td>
<td>885</td>
<td>0x375</td>
</tr>
<tr>
<td>FACILITY_WEB_SOCKET</td>
<td>886</td>
<td>0x376</td>
</tr>
<tr>
<td>FACILITY_AUDIOSTREAMING</td>
<td>1094</td>
<td>0x446</td>
</tr>
<tr>
<td>FACILITY_ACCELERATOR</td>
<td>1536</td>
<td>0x600</td>
</tr>
<tr>
<td>FACILITY_MOBILE</td>
<td>1793</td>
<td>0x701</td>
</tr>
<tr>
<td>FACILITY_WMAAECMA</td>
<td>1996</td>
<td>0x7CC</td>
</tr>
<tr>
<td>FACILITY_WEP</td>
<td>2049</td>
<td>0x801</td>
</tr>
<tr>
<td>FACILITY_SYNCENGINE</td>
<td>2050</td>
<td>0x802</td>
</tr>
<tr>
<td>FACILITY_DIRECTMUSIC</td>
<td>2168</td>
<td>0x878</td>
</tr>
<tr>
<td>FACILITY_DIRECT3D10</td>
<td>2169</td>
<td>0x879</td>
</tr>
<tr>
<td>FACILITY_DXGI</td>
<td>2170</td>
<td>0x87A</td>
</tr>
<tr>
<td>FACILITY_DXGI_DDI</td>
<td>2171</td>
<td>0x87B</td>
</tr>
<tr>
<td>FACILITY_DIRECT3D11</td>
<td>2172</td>
<td>0x87C</td>
</tr>
<tr>
<td>FACILITY_LEAP</td>
<td>2184</td>
<td>0x888</td>
</tr>
<tr>
<td>FACILITY_AUDCLNT</td>
<td>2185</td>
<td>0x889</td>
</tr>
<tr>
<td>FACILITY_WINCODEC_DWRITE_DWM</td>
<td>2200</td>
<td>0x898</td>
</tr>
<tr>
<td>FACILITY_DIRECT2D</td>
<td>2201</td>
<td>0x899</td>
</tr>
<tr>
<td>FACILITY_DEFRAG</td>
<td>2304</td>
<td>0x900</td>
</tr>
<tr>
<td>FACILITY_USERMODE_SDBUS</td>
<td>2305</td>
<td>0x901</td>
</tr>
<tr>
<td>FACILITY_JSCRIPT</td>
<td>2306</td>
<td>0x902</td>
</tr>
<tr>
<td>FACILITY_PIDGENX</td>
<td>2561</td>
<td>0xA01</td>
</tr>
</tbody>
</table>]]></content:encoded>
    </item>
    <item>
      <title>HRESULT Facility - By Name</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/hresult-facility-by-name</link>
      <pubDate>Sun, 22 Apr 2018 14:51:43 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/?p=545</guid>
      <description><![CDATA[HRESULT Facility
A HRESULT Error Code is a 32bit number with bits representing different...]]></description>
      <content:encoded><![CDATA[<h1>HRESULT Facility</h1>
A <a href="https://en.wikipedia.org/wiki/HRESULT">HRESULT</a> Error Code is a 32bit number with bits representing different purposes.

Bits 16-26 are the Facility. The Facility is the originating API.

Refer to <a href="https://blogs.msdn.microsoft.com/andrew_richards/2018/04/22/hresult-facility-by-value/">HRESULT Facility - By Value</a> for a table sorted by <strong>value</strong>.
<h2>Facility by Name</h2>
<table width="395">
<tbody>
<tr>
<td width="267"><strong>FACILITY</strong></td>
<td width="64"><strong>Decimal</strong></td>
<td width="64"><strong>Hex</strong></td>
</tr>
<tr>
<td>FACILITY_AAF</td>
<td>18</td>
<td>0x12</td>
</tr>
<tr>
<td>FACILITY_ACCELERATOR</td>
<td>1536</td>
<td>0x600</td>
</tr>
<tr>
<td>FACILITY_ACS</td>
<td>20</td>
<td>0x14</td>
</tr>
<tr>
<td>FACILITY_ACTION_QUEUE</td>
<td>44</td>
<td>0x2C</td>
</tr>
<tr>
<td>FACILITY_AUDCLNT</td>
<td>2185</td>
<td>0x889</td>
</tr>
<tr>
<td>FACILITY_AUDIO</td>
<td>102</td>
<td>0x66</td>
</tr>
<tr>
<td>FACILITY_AUDIOSTREAMING</td>
<td>1094</td>
<td>0x446</td>
</tr>
<tr>
<td>FACILITY_BACKGROUNDCOPY</td>
<td>32</td>
<td>0x20</td>
</tr>
<tr>
<td>FACILITY_BCD</td>
<td>57</td>
<td>0x39</td>
</tr>
<tr>
<td>FACILITY_BLB</td>
<td>120</td>
<td>0x78</td>
</tr>
<tr>
<td>FACILITY_BLB_CLI</td>
<td>121</td>
<td>0x79</td>
</tr>
<tr>
<td>FACILITY_BLBUI</td>
<td>128</td>
<td>0x80</td>
</tr>
<tr>
<td>FACILITY_BLUETOOTH_ATT</td>
<td>101</td>
<td>0x65</td>
</tr>
<tr>
<td>FACILITY_CERT</td>
<td>11</td>
<td>0xB</td>
</tr>
<tr>
<td>FACILITY_CMI</td>
<td>54</td>
<td>0x36</td>
</tr>
<tr>
<td>FACILITY_COMPLUS</td>
<td>17</td>
<td>0x11</td>
</tr>
<tr>
<td>FACILITY_CONFIGURATION</td>
<td>33</td>
<td>0x21</td>
</tr>
<tr>
<td>FACILITY_CONTROL</td>
<td>10</td>
<td>0xA</td>
</tr>
<tr>
<td>FACILITY_DAF</td>
<td>100</td>
<td>0x64</td>
</tr>
<tr>
<td>FACILITY_DEBUGGERS</td>
<td>176</td>
<td>0xB0</td>
</tr>
<tr>
<td>FACILITY_DEFRAG</td>
<td>2304</td>
<td>0x900</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_BINLSVC</td>
<td>261</td>
<td>0x105</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER</td>
<td>293</td>
<td>0x125</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING</td>
<td>278</td>
<td>0x116</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_IMAGING</td>
<td>258</td>
<td>0x102</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT</td>
<td>259</td>
<td>0x103</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT</td>
<td>290</td>
<td>0x122</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER</td>
<td>289</td>
<td>0x121</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_PXE</td>
<td>263</td>
<td>0x107</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_SERVER</td>
<td>257</td>
<td>0x101</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_TFTP</td>
<td>264</td>
<td>0x108</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT</td>
<td>272</td>
<td>0x110</td>
</tr>
<tr>
<td>FACILITY_DEPLOYMENT_SERVICES_UTIL</td>
<td>260</td>
<td>0x104</td>
</tr>
<tr>
<td>FACILITY_DIRECT2D</td>
<td>2201</td>
<td>0x899</td>
</tr>
<tr>
<td>FACILITY_DIRECT3D10</td>
<td>2169</td>
<td>0x879</td>
</tr>
<tr>
<td>FACILITY_DIRECT3D11</td>
<td>2172</td>
<td>0x87C</td>
</tr>
<tr>
<td>FACILITY_DIRECTMUSIC</td>
<td>2168</td>
<td>0x878</td>
</tr>
<tr>
<td>FACILITY_DIRECTORYSERVICE</td>
<td>37</td>
<td>0x25</td>
</tr>
<tr>
<td>FACILITY_DISPATCH</td>
<td>2</td>
<td>0x2</td>
</tr>
<tr>
<td>FACILITY_DLS</td>
<td>153</td>
<td>0x99</td>
</tr>
<tr>
<td>FACILITY_DMSERVER</td>
<td>256</td>
<td>0x100</td>
</tr>
<tr>
<td>FACILITY_DPLAY</td>
<td>21</td>
<td>0x15</td>
</tr>
<tr>
<td>FACILITY_DXGI</td>
<td>2170</td>
<td>0x87A</td>
</tr>
<tr>
<td>FACILITY_DXGI_DDI</td>
<td>2171</td>
<td>0x87B</td>
</tr>
<tr>
<td>FACILITY_EAP</td>
<td>66</td>
<td>0x42</td>
</tr>
<tr>
<td>FACILITY_EAS</td>
<td>85</td>
<td>0x55</td>
</tr>
<tr>
<td>FACILITY_FVE</td>
<td>49</td>
<td>0x31</td>
</tr>
<tr>
<td>FACILITY_FWP</td>
<td>50</td>
<td>0x32</td>
</tr>
<tr>
<td>FACILITY_GRAPHICS</td>
<td>38</td>
<td>0x26</td>
</tr>
<tr>
<td>FACILITY_HTTP</td>
<td>25</td>
<td>0x19</td>
</tr>
<tr>
<td>FACILITY_INPUT</td>
<td>64</td>
<td>0x40</td>
</tr>
<tr>
<td>FACILITY_INTERNET</td>
<td>12</td>
<td>0xC</td>
</tr>
<tr>
<td>FACILITY_ITF</td>
<td>4</td>
<td>0x4</td>
</tr>
<tr>
<td>FACILITY_JSCRIPT</td>
<td>2306</td>
<td>0x902</td>
</tr>
<tr>
<td>FACILITY_LEAP</td>
<td>2184</td>
<td>0x888</td>
</tr>
<tr>
<td>FACILITY_LINGUISTIC_SERVICES</td>
<td>305</td>
<td>0x131</td>
</tr>
<tr>
<td>FACILITY_MBN</td>
<td>84</td>
<td>0x54</td>
</tr>
<tr>
<td>FACILITY_MEDIASERVER</td>
<td>13</td>
<td>0xD</td>
</tr>
<tr>
<td>FACILITY_METADIRECTORY</td>
<td>35</td>
<td>0x23</td>
</tr>
<tr>
<td>FACILITY_MOBILE</td>
<td>1793</td>
<td>0x701</td>
</tr>
<tr>
<td>FACILITY_MSMQ</td>
<td>14</td>
<td>0xE</td>
</tr>
<tr>
<td>FACILITY_NAP</td>
<td>39</td>
<td>0x27</td>
</tr>
<tr>
<td>FACILITY_NDIS</td>
<td>52</td>
<td>0x34</td>
</tr>
<tr>
<td>FACILITY_NULL</td>
<td>0</td>
<td>0x0</td>
</tr>
<tr>
<td>FACILITY_ONLINE_ID</td>
<td>134</td>
<td>0x86</td>
</tr>
<tr>
<td>FACILITY_OPC</td>
<td>81</td>
<td>0x51</td>
</tr>
<tr>
<td>FACILITY_P2P</td>
<td>99</td>
<td>0x63</td>
</tr>
<tr>
<td>FACILITY_P2P_INT</td>
<td>98</td>
<td>0x62</td>
</tr>
<tr>
<td>FACILITY_PARSE</td>
<td>113</td>
<td>0x71</td>
</tr>
<tr>
<td>FACILITY_PIDGENX</td>
<td>2561</td>
<td>0xA01</td>
</tr>
<tr>
<td>FACILITY_PLA</td>
<td>48</td>
<td>0x30</td>
</tr>
<tr>
<td>FACILITY_POWERSHELL</td>
<td>84</td>
<td>0x54</td>
</tr>
<tr>
<td>FACILITY_RAS</td>
<td>83</td>
<td>0x53</td>
</tr>
<tr>
<td>FACILITY_RESTORE</td>
<td>256</td>
<td>0x100</td>
</tr>
<tr>
<td>FACILITY_RPC</td>
<td>1</td>
<td>0x1</td>
</tr>
<tr>
<td>FACILITY_SCARD</td>
<td>16</td>
<td>0x10</td>
</tr>
<tr>
<td>FACILITY_SCRIPT</td>
<td>112</td>
<td>0x70</td>
</tr>
<tr>
<td>FACILITY_SDIAG</td>
<td>60</td>
<td>0x3C</td>
</tr>
<tr>
<td>FACILITY_SECURITY</td>
<td>9</td>
<td>0x9</td>
</tr>
<tr>
<td>FACILITY_SETUPAPI</td>
<td>15</td>
<td>0xF</td>
</tr>
<tr>
<td>FACILITY_SHELL</td>
<td>39</td>
<td>0x27</td>
</tr>
<tr>
<td>FACILITY_SOS</td>
<td>160</td>
<td>0xA0</td>
</tr>
<tr>
<td>FACILITY_SPP</td>
<td>256</td>
<td>0x100</td>
</tr>
<tr>
<td>FACILITY_SSPI</td>
<td>9</td>
<td>0x9</td>
</tr>
<tr>
<td>FACILITY_STATE_MANAGEMENT</td>
<td>34</td>
<td>0x22</td>
</tr>
<tr>
<td>FACILITY_STORAGE</td>
<td>3</td>
<td>0x3</td>
</tr>
<tr>
<td>FACILITY_SXS</td>
<td>23</td>
<td>0x17</td>
</tr>
<tr>
<td>FACILITY_SYNCENGINE</td>
<td>2050</td>
<td>0x802</td>
</tr>
<tr>
<td>FACILITY_TIERING</td>
<td>131</td>
<td>0x83</td>
</tr>
<tr>
<td>FACILITY_TPM_SERVICES</td>
<td>40</td>
<td>0x28</td>
</tr>
<tr>
<td>FACILITY_TPM_SOFTWARE</td>
<td>41</td>
<td>0x29</td>
</tr>
<tr>
<td>FACILITY_UI</td>
<td>42</td>
<td>0x2A</td>
</tr>
<tr>
<td>FACILITY_UMI</td>
<td>22</td>
<td>0x16</td>
</tr>
<tr>
<td>FACILITY_URT</td>
<td>19</td>
<td>0x13</td>
</tr>
<tr>
<td>FACILITY_USERMODE_COMMONLOG</td>
<td>26</td>
<td>0x1A</td>
</tr>
<tr>
<td>FACILITY_USERMODE_FILTER_MANAGER</td>
<td>31</td>
<td>0x1F</td>
</tr>
<tr>
<td>FACILITY_USERMODE_HYPERVISOR</td>
<td>53</td>
<td>0x35</td>
</tr>
<tr>
<td>FACILITY_USERMODE_SDBUS</td>
<td>2305</td>
<td>0x901</td>
</tr>
<tr>
<td>FACILITY_USERMODE_SPACES</td>
<td>231</td>
<td>0xE7</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VHD</td>
<td>58</td>
<td>0x3A</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VIRTUALIZATION</td>
<td>55</td>
<td>0x37</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VOLMGR</td>
<td>56</td>
<td>0x38</td>
</tr>
<tr>
<td>FACILITY_USERMODE_VOLSNAP</td>
<td>130</td>
<td>0x82</td>
</tr>
<tr>
<td>FACILITY_USN</td>
<td>129</td>
<td>0x81</td>
</tr>
<tr>
<td>FACILITY_VISUALCPP</td>
<td>109</td>
<td>0x6D</td>
</tr>
<tr>
<td>FACILITY_WEB</td>
<td>885</td>
<td>0x375</td>
</tr>
<tr>
<td>FACILITY_WEB_SOCKET</td>
<td>886</td>
<td>0x376</td>
</tr>
<tr>
<td>FACILITY_WEBSERVICES</td>
<td>61</td>
<td>0x3D</td>
</tr>
<tr>
<td>FACILITY_WEP</td>
<td>2049</td>
<td>0x801</td>
</tr>
<tr>
<td>FACILITY_WER</td>
<td>27</td>
<td>0x1B</td>
</tr>
<tr>
<td>FACILITY_WIA</td>
<td>33</td>
<td>0x21</td>
</tr>
<tr>
<td>FACILITY_WIN32</td>
<td>7</td>
<td>0x7</td>
</tr>
<tr>
<td>FACILITY_WINCODEC_DWRITE_DWM</td>
<td>2200</td>
<td>0x898</td>
</tr>
<tr>
<td>FACILITY_WINDOWS</td>
<td>8</td>
<td>0x8</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_CE</td>
<td>24</td>
<td>0x18</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_DEFENDER</td>
<td>80</td>
<td>0x50</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_SETUP</td>
<td>48</td>
<td>0x30</td>
</tr>
<tr>
<td>FACILITY_WINDOWS_STORE</td>
<td>63</td>
<td>0x3F</td>
</tr>
<tr>
<td>FACILITY_WINDOWSUPDATE</td>
<td>36</td>
<td>0x24</td>
</tr>
<tr>
<td>FACILITY_WINPE</td>
<td>61</td>
<td>0x3D</td>
</tr>
<tr>
<td>FACILITY_WINRM</td>
<td>51</td>
<td>0x33</td>
</tr>
<tr>
<td>FACILITY_WMAAECMA</td>
<td>1996</td>
<td>0x7CC</td>
</tr>
<tr>
<td>FACILITY_WPN</td>
<td>62</td>
<td>0x3E</td>
</tr>
<tr>
<td>FACILITY_WSB_ONLINE</td>
<td>133</td>
<td>0x85</td>
</tr>
<tr>
<td>FACILITY_WSBAPP</td>
<td>122</td>
<td>0x7A</td>
</tr>
<tr>
<td>FACILITY_XAML</td>
<td>43</td>
<td>0x2B</td>
</tr>
<tr>
<td>FACILITY_XPS</td>
<td>82</td>
<td>0x52</td>
</tr>
</tbody>
</table>
&nbsp;

&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Enhancing the "Open Command Prompt here" Context Menu experience</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/enhancing-the-open-command-prompt-here-shift-right-click-context-menu-experience</link>
      <pubDate>Wed, 01 Mar 2017 20:23:27 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/?p=495</guid>
      <description><![CDATA[For decades, you've been able to hold down [Shift] and Right-Click on a folder (or the background of...]]></description>
      <content:encoded><![CDATA[For decades, you've been able to hold down [Shift] and Right-Click on a folder (or the background of a folder) to get a "Open Command Prompt here" option. ("Copy as path" is also on this menu)

I recently also discovered, that you can open any program using the folder as the current folder by typing a command (e.g. cmd.exe or powershell.exe) in the Address Bar.

In the Windows 10 Creators Update, the default shell is being changed to PowerShell ("Open PowerShell here") -- in light that PowerShell is a more comprehensive shell than CMD.

Looking into how this works, I discovered and realized two things:
<ul>
 	<li>Sometimes I want more than just a single shell option in the menu
<ul>
 	<li>Command Prompt</li>
 	<li>PowerShell</li>
 	<li>GIT</li>
 	<li>Visual Studio Developer Tools</li>
 	<li>etc.</li>
</ul>
</li>
 	<li>With the introduction of UAC in Windows 7, it's no longer possible to launch one of these shells/applications <strong><em>elevated</em></strong></li>
</ul>
The first issue isn't an issue. Adding additional entries is easy -- it just requires additional "shell\&lt;verb&gt;\command"  registry entries.
<ul>
 	<li>The order in the menu is the alpha order of the &lt;verb&gt;</li>
 	<li>The menu text is the "shell\&lt;verb&gt;\(default)" REG_SZ text
<ul>
 	<li>i.e. the menu doesn't have to be in the alpha order of the <em>menu</em> text</li>
</ul>
</li>
 	<li>Add "&amp;" in the text to specify the keyboard shortcut</li>
</ul>
The second observation - the elevation - is the issue. If the target EXE <em>isn't</em> manifested as requiring elevation, you need to use the special verb "runas" to cause the elevation. That's great if you're just adding one entry, but problematic if you want more than one.

What you have to do is to use the "ExtendedSubCommandsKey" concept. <strong>This creates a sub-menu</strong>. Each sub-menu can have a "runas" key, allowing multiple <em>elevated</em> entries in a context menu tree (one per menu/sub-menu).

The great thing about the "ExtendedSubCommandsKey" concept is that the value is a "reference". Meaning a single configuration can be shared between the folder's node ("Directory\shell\...) and the folder's background ("Directory\background\shell\...) context menu registrations. Both areas point (reference) the "Directory\ContextMenus\shell\..." area -- saving you the need to duplicate the &lt;verb&gt; settings.

Within each sub-menu (each ContextMenu area), you make the ...\shell\&lt;verb&gt;\... keys as normal. The only exception is the menu's name; it is set via a "MUIVerb" REG_SZ, rather than the usual "(Default)" REG_SZ.

In my example below, I have the Command Prompt and PowerShell supported as sub-menus. Within each sub-menu, there is a verb to launch the prompt non-elevated ("open") and elevated ("runas").
<ul>
 	<li><strong>Command Prompt support</strong>
<ul>
 	<li>HKEY_CLASSES_ROOT\Directory\shell\01Menu<strong>Cmd</strong> --&gt; <span style="color: #339966">Directory\ContextMenus\Menu<strong>Cmd</strong></span></li>
 	<li>HKEY_CLASSES_ROOT\Directory\<strong>background</strong>\shell\01Menu<strong>Cmd</strong> --&gt; <span style="color: #339966">Directory\ContextMenus\Menu<strong>Cmd</strong></span></li>
 	<li><span style="color: #339966">HKEY_CLASSES_ROOT\Directory\ContextMenus\Menu<strong>Cmd</strong></span>
<ul>
 	<li>open --&gt; Command Prompt</li>
 	<li>runas --&gt; Command Prompt Elevated</li>
</ul>
</li>
</ul>
</li>
 	<li><strong>PowerShell support</strong>
<ul>
 	<li>HKEY_CLASSES_ROOT\Directory\shell\02Menu<strong>PowerShell</strong> --&gt; <span style="color: #3366ff">Directory\ContextMenus\Menu<strong>PowerShell</strong></span></li>
</ul>
<ul>
 	<li>HKEY_CLASSES_ROOT\Directory\<strong>background</strong>\shell\02Menu<strong>PowerShell</strong> --&gt; <span style="color: #3366ff">Directory\ContextMenus\Menu<strong>PowerShell</strong></span></li>
 	<li><span style="color: #3366ff">HKEY_CLASSES_ROOT\Directory\ContextMenus\Menu<strong>PowerShell</strong></span>
<ul>
 	<li>open --&gt; PowerShell</li>
 	<li>runas --&gt; PowerShell Elevated</li>
</ul>
</li>
</ul>
</li>
</ul>
What you get is something like this (this example is a right-click of a folder's node):

[caption id="attachment_515" align="alignnone" width="585"]<a href="https://msdnshared.blob.core.windows.net/media/2017/03/Command.png"><img width="585" height="181" class="wp-image-515 size-full" alt="Command Prompt menu" src="https://msdnshared.blob.core.windows.net/media/2017/03/Command.png" /></a> <strong>Command Prompt menu</strong>[/caption]

&nbsp;

[caption id="attachment_505" align="alignnone" width="542"]<a href="https://msdnshared.blob.core.windows.net/media/2017/03/PowerShell.png"><img width="542" height="176" class="wp-image-505 size-full" alt="PowerShell menu" src="https://msdnshared.blob.core.windows.net/media/2017/03/PowerShell.png" /></a> <strong>PowerShell menu</strong>[/caption]

You don't have to use it run an application elevated to not. For example, with GIT, it can be use to launch the GIT GUI or GIT BASH.
<ul>
 	<li><strong>GIT Prompts</strong>
<ul>
 	<li>HKEY_CLASSES_ROOT\Directory\shell\03Menu<strong>GIT</strong> --&gt; <span style="color: #3366ff">Directory\ContextMenus\Menu<strong>GIT</strong></span></li>
 	<li>HKEY_CLASSES_ROOT\Directory\<strong>background</strong>\shell\03Menu<strong>GIT </strong>--&gt; <span style="color: #3366ff">Directory\ContextMenus\Menu<strong>GIT</strong></span></li>
 	<li><span style="color: #3366ff">HKEY_CLASSES_ROOT\Directory\ContextMenus\Menu<strong>GIT</strong></span>
<ul>
 	<li>git_gui --&gt; GIT GUI</li>
 	<li>git_shell --&gt; GIT BASH</li>
</ul>
</li>
</ul>
</li>
</ul>
[caption id="attachment_535" align="alignnone" width="407"]<a href="https://msdnshared.blob.core.windows.net/media/2017/03/GIT.png"><img width="407" height="364" class="wp-image-535 size-full" alt="GIT menu" src="https://msdnshared.blob.core.windows.net/media/2017/03/GIT.png" /></a> <strong>GIT menu</strong>[/caption]

&nbsp;

<strong>Icons, UAC and hiding other menus</strong>

To make make things look pretty/orderly, I've set the following to add the appropriate icon, indicate UAC, and to hide (unwanted) menus.
<ul>
 	<li>Set the application's icon via the "Icon" REG_SZ on the parent and child nodes</li>
 	<li>Enable the UAC icon via the "HasLUAShield" REG_SZ on the elevated nodes
<ul>
 	<li>Note, this has no effect on whether elevation is applied or not. It's purely cosmetic.</li>
 	<li>If Icon is also set, it's a tiny icon in the bottom right</li>
 	<li>If Icon isn't set, it's a full sized icon of the shield</li>
</ul>
</li>
 	<li>Add the "Extended" REG_SZ on the (old) settings that you want to hide in the Shift Right-Click menu
<ul>
 	<li>I add these, instead of deleting the entire node because A) TrustedInstaller only has access B) Installers will put them back again</li>
 	<li>You'll get a error/warning when merging the registry file if they are owned by TrustedInstaller (not an issue)</li>
</ul>
</li>
</ul>
&nbsp;

<strong>ENJOY!</strong>

&nbsp;

<strong>Example: Directory_Prompts.reg</strong>
<pre>Windows Registry Editor Version 5.00

; Command Prompt

[HKEY_CLASSES_ROOT\Directory\shell\01MenuCmd]
"MUIVerb"="Command Prompts"
"Icon"="cmd.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuCmd"

[HKEY_CLASSES_ROOT\Directory\background\shell\01MenuCmd]
"MUIVerb"="Command Prompts"
"Icon"="cmd.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuCmd"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuCmd\shell\open]
"MUIVerb"="Command Prompt"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuCmd\shell\open\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuCmd\shell\runas]
"MUIVerb"="Command Prompt Elevated"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuCmd\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""


; PowerShell

[HKEY_CLASSES_ROOT\Directory\shell\02MenuPowerShell]
"MUIVerb"="PowerShell Prompts"
"Icon"="powershell.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuPowerShell"

[HKEY_CLASSES_ROOT\Directory\background\shell\02MenuPowerShell]
"MUIVerb"="PowerShell Prompts"
"Icon"="powershell.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuPowerShell"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuPowerShell\shell\open]
"MUIVerb"="PowerShell"
"Icon"="powershell.exe"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuPowerShell\shell\open\command]
@="powershell.exe -noexit -command Set-Location '%V'"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuPowerShell\shell\runas]
"MUIVerb"="PowerShell Elevated"
"Icon"="powershell.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuPowerShell\shell\runas\command]
@="powershell.exe -noexit -command Set-Location '%V'"


; Ensure OS Entries are on the Extended Menu (Shift-Right Click)

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\background\shell\cmd]
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\shell\Powershell]
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\background\shell\Powershell]
"Extended"=""

</pre>
<strong>Example: Directory_Prompts_GIT.reg</strong>
<pre>Windows Registry Editor Version 5.00

; GIT

[HKEY_CLASSES_ROOT\Directory\shell\03MenuGit]
"MUIVerb"="GIT Prompts"
"Icon"="C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuGit"

[HKEY_CLASSES_ROOT\Directory\background\shell\03MenuGit]
"MUIVerb"="GIT Prompts"
"Icon"="C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuGit"


[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuGit\shell\git_gui]
"MUIVerb"="GIT GUI"
"Icon"="C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuGit\shell\git_gui\command]
@="\"C:\\Program Files\\Git\\cmd\\git-gui.exe\" \"--working-dir\" \"%v.\""


[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuGit\shell\git_shell]
"MUIVerb"="GIT BASH"
"Icon"="C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuGit\shell\git_shell\command]
@="\"C:\\Program Files\\Git\\git-bash.exe\" \"--cd=%v.\""


; Move Official GIT Entries to the Extended Menu (Shift-Right Click)

[HKEY_CLASSES_ROOT\Directory\shell\git_gui]
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\background\shell\git_gui]
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\shell\git_shell]
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\background\shell\git_shell]
"Extended"=""</pre>]]></content:encoded>
    </item>
    <item>
      <title>File Version / Product Version</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/file-version-product-version</link>
      <pubDate>Wed, 27 Jan 2016 13:57:41 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/2016/01/27/file-version-product-version/</guid>
      <description><![CDATA[Some sample code to get the File / Product Version of a file.
#include &lt;stdio.h&gt;#include...]]></description>
      <content:encoded><![CDATA[<p>Some sample code to get the File / Product Version of a file.</p>
<p><span style="font-family: courier new,courier;">#include &lt;stdio.h&gt;</span><br /><span style="font-family: courier new,courier;">#include &lt;windows.h&gt;</span></p>
<p><span style="font-family: courier new,courier;">#ifndef nullptr</span><br /><span style="font-family: courier new,courier;">&nbsp;#define nullptr NULL</span><br /><span style="font-family: courier new,courier;">#endif</span></p>
<p><span style="font-family: courier new,courier;">int _tmain(int argc, _TCHAR* argv[])</span><br /><span style="font-family: courier new,courier;">{</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp; if (argc &gt; 1)</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp; {</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DWORD dwSize = GetFileVersionInfoSize(argv[1], nullptr);</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dwSize &gt; 0)</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BYTE* pBlock = (BYTE*)malloc(dwSize);</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (pBlock != nullptr)</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (GetFileVersionInfo(argv[1], 0, dwSize, pBlock))</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VS_FIXEDFILEINFO* pFixedFileInfo = nullptr;</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UINT uSize = 0;</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (VerQueryValue(pBlock, _T("\\"), (void**)&amp;pFixedFileInfo, &amp;uSize) &amp;&amp;</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (uSize == sizeof(VS_FIXEDFILEINFO)))</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("File Version: %d.%d.%d.%d\n",</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwFileVersionMS &gt;&gt; 16,</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwFileVersionMS &amp; 0xFFFF,</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwFileVersionLS &gt;&gt; 16,</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwFileVersionLS &amp; 0xFFFF);</span></p>
<p><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Product Version: %d.%d.%d.%d\n",</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwProductVersionMS &gt;&gt; 16,</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwProductVersionMS &amp; 0xFFFF,</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwProductVersionLS &gt;&gt; 16,</span><br /><span style="font-family: courier new,courier;">&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; pFixedFileInfo-&gt;dwProductVersionLS &amp; 0xFFFF);</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free(pBlock);</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBlock = 0;</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp; return 0;</span><br /><span style="font-family: courier new,courier;">}</span></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Media Center - Reset PlayReady after Hardware change</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/windows-media-center-reset-playready-after-hardware-change</link>
      <pubDate>Thu, 21 Jan 2016 09:51:46 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/2016/01/21/windows-media-center-reset-playready-after-hardware-change/</guid>
      <description><![CDATA[After a hardware change, Windows Media Center (WMC) will probably start to display "Video playback...]]></description>
      <content:encoded><![CDATA[<p>After a hardware change, Windows Media Center (WMC) will probably start to display "Video playback device does not support playback of protected content" when watching protected content (e.g. CableCARD). This isn't a HDCP issue, it's your PlayReady DRM keys.</p>
<p>As an Administrator:</p>
<ol>
<li>Close Windows Media Center (and turn off any Windows Media Center Extenders)</li>
<li>File Explorer | Options -&nbsp;Select "Show hidden file, folders, and drives"</li>
<li>File Explorer | Options - Uncheck "Hide protected operating system files"</li>
<li>File Explorer - rename these (e.g. Cache --&gt; Cache.old)</li>
<ol>
<li>%ProgramData%\Microsoft\PlayReady\mspr.hds</li>
<li>%ProgramData%\Microsoft\PlayReady\cache</li>
<li>%ProgramData%\Microsoft\eHome\mcendindiv.hds</li>
<li>%ProgramData%\Microsoft\eHome\cache</li>
</ol>
<li>Download ResetDRM.exe from the Microsoft Download Center (<a href="https://go.microsoft.com/fwlink?LinkId=105000">https://go.microsoft.com/fwlink?LinkId=105000</a>)</li>
<li>Extract the EXE using WinRAR (etc)&nbsp;</li>
<ol>
<li>You need to use WinRAR to do the extraction because the EXE's self-extraction only supports Windows XP</li>
</ol>
<li>Open an Administrator Command Prompt (Win+X, A)</li>
<li>Run "CleanDRM.exe -v"</li>
<li>Open Windows Media Center</li>
<li>Update PlayReady via "Settings |&nbsp;TV |&nbsp;TV Signal |&nbsp;Update PlayReady"</li>
<li>(Revert) File Explorer | Options -&nbsp;Select "Show hidden file, folders, and drives"</li>
<li>(Revert) File Explorer | Options - Uncheck "Hide protected operating system files"</li>
</ol>
<p>&nbsp;</p>
<p>Note, this isn't an <em>official</em> Microsoft solution. It's what I cobbled together from multiple posts on this issue.</p>]]></content:encoded>
    </item>
    <item>
      <title>How to fix a Phone that is stuck in a (quick) reboot loop</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/how-to-fix-a-phone-that-is-stuck-in-a-quick-reboot-loop</link>
      <pubDate>Mon, 14 Dec 2015 11:56:00 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/2015/12/14/how-to-fix-a-phone-that-is-stuck-in-a-quick-reboot-loop/</guid>
      <description><![CDATA[Remove the battery from device (if you can't turn it off, just continue on to the next...]]></description>
      <content:encoded><![CDATA[<ol>
<li>Remove the battery from device (if you can't turn it off, just continue on to the next steps)</li>
<li>Don't connect the device to a PC yet</li>
<li>Launch <strong>Windows Device Recovery Tool</strong> (<a href="https://www.microsoft.com/en-us/mobile/support/faq/?action=singleTopic&amp;topic=FA142987">https://www.microsoft.com/en-us/mobile/support/faq/?action=singleTopic&amp;topic=FA142987</a>)</li>
<li>Select that "Your Device cannot be Discovered"</li>
<li>Select the device type (e.g. Lumia Device for Microsoft built phones); it should be searching for your device...</li>
<li>Install the battery and plug your phone in to the PC</li>
<li>While pressing the Volume Down Button, turn on the phone (if it is already turned on, let it reboot while your holding the button)</li>
<li>The device should be found; you can release the Volume Down button</li>
<li>Download and then Install the image</li>
<li>Note, I've seen the UI freeze during the download -- it's working, just give it 5-10min.</li>
<li>Go though Setup again...</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>Hardcore Debugging @ TechEd USA 2013</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/hardcore-debugging-teched-usa-2013</link>
      <pubDate>Fri, 14 Jun 2013 16:13:00 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/2013/06/14/hardcore-debugging-teched-usa-2013/</guid>
      <description><![CDATA[https://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/WCA-B401
&nbsp;]]></description>
      <content:encoded><![CDATA[<p><a href="https://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/WCA-B401">https://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/WCA-B401</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Defrag Tools Live @ TechEd USA 2013</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/defrag-tools-live-teched-usa-2013</link>
      <pubDate>Fri, 14 Jun 2013 16:12:18 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/2013/06/14/defrag-tools-live-teched-usa-2013/</guid>
      <description><![CDATA[https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-Live-TechEd-USA-2013]]></description>
      <content:encoded><![CDATA[<p><a href="https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-Live-TechEd-USA-2013">https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-Live-TechEd-USA-2013</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Defrag Tools Live @ //build/ 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/defrag-tools-live-build-2012</link>
      <pubDate>Fri, 02 Nov 2012 14:25:43 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/2012/11/02/defrag-tools-live-build-2012/</guid>
      <description><![CDATA[https://channel9.msdn.com/Events/Ch9Live/Channel-9-Live-at-BUILD-2012/Defrag-Tools-Live-14]]></description>
      <content:encoded><![CDATA[<p><a href="https://channel9.msdn.com/Events/Ch9Live/Channel-9-Live-at-BUILD-2012/Defrag-Tools-Live-14">https://channel9.msdn.com/Events/Ch9Live/Channel-9-Live-at-BUILD-2012/Defrag-Tools-Live-14</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Announcing the "Defrag Tools" show on Channel 9</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew_richards/announcing-the-defrag-tools-show-on-channel-9</link>
      <pubDate>Mon, 06 Aug 2012 10:53:00 GMT</pubDate>
      <dc:creator><![CDATA[AndrewRichards]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/andrew_richards/2012/08/06/announcing-the-defrag-tools-show-on-channel-9/</guid>
      <description><![CDATA[Andrew Richards and Larry Larsen host this deep dive into the tools used on the tech support show...]]></description>
      <content:encoded><![CDATA[<p></p>
<p>Andrew Richards and Larry Larsen host this deep dive into the tools used on the tech support show Defrag and walk you through how to use many Windows diagnostic tools found on SysInternals.</p>
<p><a href="https://channel9.msdn.com/Shows/Defrag-Tools">https://channel9.msdn.com/Shows/Defrag-Tools</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>