From 43f66a15ef654c7e541a74ea054d44f516907ac2 Mon Sep 17 00:00:00 2001
From: Mark Mentovai <mark@chromium.org>
Date: Mon, 19 Oct 2015 17:18:13 -0400
Subject: [PATCH] Update documentation to master 53ccd8fc5e8a

---
 doc/generated/doc/developing.html             |   4 +-
 .../dir_04861af0646e74845232399e73d584d9.html |   6 +
 doc/generated/doxygen/files.html              |   2 +
 doc/generated/doxygen/get__function_8h.html   | 227 ++++++++++++++++++
 doc/generated/doxygen/globals.html            |  11 +
 doc/generated/doxygen/globals_defs.html       |   6 +
 doc/generated/doxygen/namespacecrashpad.html  |   3 -
 .../namespacecrashpad_1_1internal.html        |  99 ++++++++
 .../doxygen/namespacemembers_func.html        |   6 +
 doc/generated/doxygen/namespacemembers_g.html |   6 +
 doc/generated/doxygen/search/all_7.js         |   5 +
 doc/generated/doxygen/search/defines_3.js     |   5 +-
 doc/generated/doxygen/search/defines_4.js     |  13 +-
 doc/generated/doxygen/search/defines_5.js     |  11 +-
 doc/generated/doxygen/search/defines_6.js     |   3 +-
 doc/generated/doxygen/search/defines_7.html   |  26 ++
 doc/generated/doxygen/search/defines_7.js     |   5 +
 doc/generated/doxygen/search/files_2.js       |   1 +
 doc/generated/doxygen/search/functions_7.js   |   2 +
 doc/generated/doxygen/search/searchdata.js    |   2 +-
 20 files changed, 421 insertions(+), 22 deletions(-)
 create mode 100644 doc/generated/doxygen/get__function_8h.html
 create mode 100644 doc/generated/doxygen/search/defines_7.html
 create mode 100644 doc/generated/doxygen/search/defines_7.js

diff --git a/doc/generated/doc/developing.html b/doc/generated/doc/developing.html
index 6ab46897..844a92a8 100644
--- a/doc/generated/doc/developing.html
+++ b/doc/generated/doc/developing.html
@@ -825,8 +825,8 @@ need to install them separately.</p></div>
 <h3 id="_initial_checkout">Initial Checkout</h3>
 <div class="listingblock">
 <div class="content monospaced">
-<pre>$ <strong>mkdir <sub>/crashpad</strong>
-$ <strong>cd </sub>/crashpad</strong>
+<pre>$ <strong>mkdir ~/crashpad</strong>
+$ <strong>cd ~/crashpad</strong>
 $ <strong>fetch crashpad</strong></pre>
 </div></div>
 <div class="paragraph"><p><span class="monospaced">fetch crashpad</span> performs the initial <span class="monospaced">gclient sync</span>, establishing a
diff --git a/doc/generated/doxygen/dir_04861af0646e74845232399e73d584d9.html b/doc/generated/doxygen/dir_04861af0646e74845232399e73d584d9.html
index cafd6fe0..aa9b7573 100644
--- a/doc/generated/doxygen/dir_04861af0646e74845232399e73d584d9.html
+++ b/doc/generated/doxygen/dir_04861af0646e74845232399e73d584d9.html
@@ -107,6 +107,12 @@ Files</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:exception__handler__server__test_8cc"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>exception_handler_server_test.cc</b></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:get__function_8cc"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>get_function.cc</b></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:get__function_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="get__function_8h.html">get_function.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:get__function__test_8cc"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>get_function_test.cc</b></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:module__version_8cc"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>module_version.cc</b></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:module__version_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>module_version.h</b></td></tr>
diff --git a/doc/generated/doxygen/files.html b/doc/generated/doxygen/files.html
index 303b7b7c..f95ba83e 100644
--- a/doc/generated/doxygen/files.html
+++ b/doc/generated/doxygen/files.html
@@ -105,6 +105,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_3_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_3_1_" class="arrow" onclick="toggleFolder('3_1_')">&#9660;</span><span id="img_3_1_" class="iconfopen" onclick="toggleFolder('3_1_')">&#160;</span><a class="el" href="dir_83573ff3a96d199825b0a6f960a8a5e3.html" target="_self">misc</a></td><td class="desc"></td></tr>
 <tr id="row_3_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="initialization__state__dcheck_8h.html" target="_self">initialization_state_dcheck.h</a></td><td class="desc"></td></tr>
 <tr id="row_3_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="symbolic__constants__common_8h.html" target="_self">symbolic_constants_common.h</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_3_2_" class="arrow" onclick="toggleFolder('3_2_')">&#9660;</span><span id="img_3_2_" class="iconfopen" onclick="toggleFolder('3_2_')">&#160;</span><a class="el" href="dir_04861af0646e74845232399e73d584d9.html" target="_self">win</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="get__function_8h.html" target="_self">get_function.h</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/doc/generated/doxygen/get__function_8h.html b/doc/generated/doxygen/get__function_8h.html
new file mode 100644
index 00000000..b2e2b46b
--- /dev/null
+++ b/doc/generated/doxygen/get__function_8h.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.9.1"/>
+<title>Crashpad: util/win/get_function.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Crashpad
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_23ec12649285f9fabf3a6b7380226c28.html">util</a></li><li class="navelem"><a class="el" href="dir_04861af0646e74845232399e73d584d9.html">win</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">get_function.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;windows.h&gt;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacecrashpad"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html">crashpad</a></td></tr>
+<tr class="memdesc:namespacecrashpad"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main namespace. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespacecrashpad_1_1internal"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1internal.html">crashpad::internal</a></td></tr>
+<tr class="memdesc:namespacecrashpad_1_1internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">The internal namespace, not for public use. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a0997574e7522725516242d78632ed686"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="get__function_8h.html#a0997574e7522725516242d78632ed686">GET_FUNCTION</a>(library,  function)</td></tr>
+<tr class="memdesc:a0997574e7522725516242d78632ed686"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a function pointer to a named function in a library without requiring that it be found.  <a href="#a0997574e7522725516242d78632ed686">More...</a><br /></td></tr>
+<tr class="separator:a0997574e7522725516242d78632ed686"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae87bc4c8800c7e6f35c06bf48cb636f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3">GET_FUNCTION_REQUIRED</a>(library,  function)</td></tr>
+<tr class="memdesc:ae87bc4c8800c7e6f35c06bf48cb636f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a function pointer to a named function in a library, requiring that it be found.  <a href="#ae87bc4c8800c7e6f35c06bf48cb636f3">More...</a><br /></td></tr>
+<tr class="separator:ae87bc4c8800c7e6f35c06bf48cb636f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa982a8cad0e72cddf1989d135db3c338"><td class="memItemLeft" align="right" valign="top">FARPROC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1internal.html#aa982a8cad0e72cddf1989d135db3c338">crashpad::internal::GetFunctionInternal</a> (const wchar_t *library, const char *function, bool required)</td></tr>
+<tr class="memdesc:aa982a8cad0e72cddf1989d135db3c338"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a function pointer to a named function in a library.  <a href="#aa982a8cad0e72cddf1989d135db3c338">More...</a><br /></td></tr>
+<tr class="separator:aa982a8cad0e72cddf1989d135db3c338"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a334a660002ce6e6f06432ccf7d3cc50f"><td class="memTemplParams" colspan="2">template&lt;typename FunctionType &gt; </td></tr>
+<tr class="memitem:a334a660002ce6e6f06432ccf7d3cc50f"><td class="memTemplItemLeft" align="right" valign="top">FunctionType *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1internal.html#a334a660002ce6e6f06432ccf7d3cc50f">crashpad::internal::GetFunction</a> (const wchar_t *library, const char *function, bool required)</td></tr>
+<tr class="memdesc:a334a660002ce6e6f06432ccf7d3cc50f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a function pointer to a named function in a library.  <a href="#a334a660002ce6e6f06432ccf7d3cc50f">More...</a><br /></td></tr>
+<tr class="separator:a334a660002ce6e6f06432ccf7d3cc50f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a0997574e7522725516242d78632ed686"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_FUNCTION</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">library, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">function&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line">crashpad::internal::GetFunction&lt;decltype(function)&gt;( \</div>
+<div class="line">        library, #<span class="keyword">function</span>, <span class="keyword">false</span>)</div>
+</div><!-- fragment -->
+<p>Returns a function pointer to a named function in a library without requiring that it be found. </p>
+<p>If the library or function cannot be found, this will return <code>nullptr</code>. This macro is intended to be used to access functions that may not be available at runtime.</p>
+<p>This macro returns a properly-typed function pointer. It is expected to be used in this way: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;static const auto get_named_pipe_client_process_id =</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;    GET_FUNCTION(L&quot;kernel32.dll&quot;, ::GetNamedPipeClientProcessId);</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;if (get_named_pipe_client_process_id) {</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;  BOOL rv = get_named_pipe_client_process_id(pipe, &amp;client_process_id);</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;}</div>
+</div><!-- fragment --><p>This accesses <em>library</em> by calling <code>LoadLibrary()</code> and is subject to the same restrictions as that function. Notably, it can’t be used from a <code>DllMain()</code> entry point.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">library</td><td>The library to search in. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>The function to search for. A leading <code>::</code> is recommended when a wrapper function of the same name is present.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the requested function on success, or <code>nullptr</code> on failure.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3" title="Returns a function pointer to a named function in a library, requiring that it be found...">GET_FUNCTION_REQUIRED</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae87bc4c8800c7e6f35c06bf48cb636f3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_FUNCTION_REQUIRED</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">library, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">function&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line">crashpad::internal::GetFunction&lt;decltype(function)&gt;( \</div>
+<div class="line">        library, #<span class="keyword">function</span>, <span class="keyword">true</span>)</div>
+</div><!-- fragment -->
+<p>Returns a function pointer to a named function in a library, requiring that it be found. </p>
+<p>If the library or function cannot be found, this will trigger a <code>DCHECK</code> assertion. This macro is intended to be used to access functions that are always expected to be available at runtime but which are not present in any import library.</p>
+<p>This macro returns a properly-typed function pointer. It is expected to be used in this way: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;static const auto nt_query_object =</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;    GET_FUNCTION_REQUIRED(L&quot;ntdll.dll&quot;, ::NtQueryObject);</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;NTSTATUS status =</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;    nt_query_object(handle, type, &amp;info, info_length, &amp;return_length);</div>
+</div><!-- fragment --><p>This accesses <em>library</em> by calling <code>LoadLibrary()</code> and is subject to the same restrictions as that function. Notably, it can’t be used from a <code>DllMain()</code> entry point.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">library</td><td>The library to search in. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>The function to search for. A leading <code>::</code> is recommended when a wrapper function of the same name is present.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the requested function.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="get__function_8h.html#a0997574e7522725516242d78632ed686" title="Returns a function pointer to a named function in a library without requiring that it be found...">GET_FUNCTION</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/doc/generated/doxygen/globals.html b/doc/generated/doxygen/globals.html
index e5ee4fec..66c200bb 100644
--- a/doc/generated/doxygen/globals.html
+++ b/doc/generated/doxygen/globals.html
@@ -82,6 +82,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
       <li><a href="#index_a"><span>a</span></a></li>
       <li><a href="#index_c"><span>c</span></a></li>
       <li><a href="#index_e"><span>e</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
       <li><a href="#index_i"><span>i</span></a></li>
       <li><a href="#index_m"><span>m</span></a></li>
       <li><a href="#index_r"><span>r</span></a></li>
@@ -139,6 +140,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </ul>
 
 
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GET_FUNCTION
+: <a class="el" href="get__function_8h.html#a0997574e7522725516242d78632ed686">get_function.h</a>
+</li>
+<li>GET_FUNCTION_REQUIRED
+: <a class="el" href="get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3">get_function.h</a>
+</li>
+</ul>
+
+
 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
 <li>INITIALIZATION_STATE_DCHECK_VALID
 : <a class="el" href="initialization__state__dcheck_8h.html#ad0cdf9da2bf4bb9c2318e100136782ee">initialization_state_dcheck.h</a>
diff --git a/doc/generated/doxygen/globals_defs.html b/doc/generated/doxygen/globals_defs.html
index 7e1db4f3..f2572c20 100644
--- a/doc/generated/doxygen/globals_defs.html
+++ b/doc/generated/doxygen/globals_defs.html
@@ -102,6 +102,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>EXPECT_DEATH_CHECK
 : <a class="el" href="gtest__death__check_8h.html#aa4bd7e1dbfc8862448a4b0fb66790e50">gtest_death_check.h</a>
 </li>
+<li>GET_FUNCTION
+: <a class="el" href="get__function_8h.html#a0997574e7522725516242d78632ed686">get_function.h</a>
+</li>
+<li>GET_FUNCTION_REQUIRED
+: <a class="el" href="get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3">get_function.h</a>
+</li>
 <li>INITIALIZATION_STATE_DCHECK_VALID
 : <a class="el" href="initialization__state__dcheck_8h.html#ad0cdf9da2bf4bb9c2318e100136782ee">initialization_state_dcheck.h</a>
 </li>
diff --git a/doc/generated/doxygen/namespacecrashpad.html b/doc/generated/doxygen/namespacecrashpad.html
index 1380d14a..2bb08239 100644
--- a/doc/generated/doxygen/namespacecrashpad.html
+++ b/doc/generated/doxygen/namespacecrashpad.html
@@ -512,9 +512,6 @@ using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nam
 <tr class="memitem:ad171ce8db60c84b2d875f7acd3b90f1e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad171ce8db60c84b2d875f7acd3b90f1e">CheckedWinAddressRange</a> = <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt; <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> &gt;</td></tr>
 <tr class="memdesc:ad171ce8db60c84b2d875f7acd3b90f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in.  <a href="#ad171ce8db60c84b2d875f7acd3b90f1e">More...</a><br /></td></tr>
 <tr class="separator:ad171ce8db60c84b2d875f7acd3b90f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a840aa3d8d322cbd737bc629accc4e67d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a840aa3d8d322cbd737bc629accc4e67d"></a>
-typedef NTSTATUS(WINAPI *&#160;</td><td class="memItemRight" valign="bottom"><b>NtOpenThreadFunction</b>) (PHANDLE ThreadHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, const void *ClientId)</td></tr>
-<tr class="separator:a840aa3d8d322cbd737bc629accc4e67d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1cbecef0a25523acb23bd161b99bc4ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1cbecef0a25523acb23bd161b99bc4ac"></a>
 using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedFileHANDLE</b> = base::ScopedGeneric&lt; HANDLE, <a class="el" href="structcrashpad_1_1internal_1_1ScopedFileHANDLECloseTraits.html">internal::ScopedFileHANDLECloseTraits</a> &gt;</td></tr>
 <tr class="separator:a1cbecef0a25523acb23bd161b99bc4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/doc/generated/doxygen/namespacecrashpad_1_1internal.html b/doc/generated/doxygen/namespacecrashpad_1_1internal.html
index fc9fca7d..ab599731 100644
--- a/doc/generated/doxygen/namespacecrashpad_1_1internal.html
+++ b/doc/generated/doxygen/namespacecrashpad_1_1internal.html
@@ -203,10 +203,109 @@ Functions</h2></td></tr>
 <tr class="memitem:a769d4791b91e4fffea817ad2e9dda54b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1internal.html#a769d4791b91e4fffea817ad2e9dda54b">ReadMinidumpUTF8String</a> (<a class="el" href="classcrashpad_1_1FileReaderInterface.html">FileReaderInterface</a> *file_reader, <a class="el" href="dbghelp_8h.html#acf465a1a77ecf067a9d946583bc6a3f8">RVA</a> rva, std::string *string)</td></tr>
 <tr class="memdesc:a769d4791b91e4fffea817ad2e9dda54b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a <a class="el" href="structcrashpad_1_1MinidumpUTF8String.html" title="A variable-length UTF-8-encoded string carried within a minidump file. ">MinidumpUTF8String</a> from a minidump file at offset <em>rva</em> in <em>file_reader</em>, and returns it in <em>string</em>.  <a href="#a769d4791b91e4fffea817ad2e9dda54b">More...</a><br /></td></tr>
 <tr class="separator:a769d4791b91e4fffea817ad2e9dda54b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa982a8cad0e72cddf1989d135db3c338"><td class="memItemLeft" align="right" valign="top">FARPROC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1internal.html#aa982a8cad0e72cddf1989d135db3c338">GetFunctionInternal</a> (const wchar_t *library, const char *function, bool required)</td></tr>
+<tr class="memdesc:aa982a8cad0e72cddf1989d135db3c338"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a function pointer to a named function in a library.  <a href="#aa982a8cad0e72cddf1989d135db3c338">More...</a><br /></td></tr>
+<tr class="separator:aa982a8cad0e72cddf1989d135db3c338"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a334a660002ce6e6f06432ccf7d3cc50f"><td class="memTemplParams" colspan="2">template&lt;typename FunctionType &gt; </td></tr>
+<tr class="memitem:a334a660002ce6e6f06432ccf7d3cc50f"><td class="memTemplItemLeft" align="right" valign="top">FunctionType *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1internal.html#a334a660002ce6e6f06432ccf7d3cc50f">GetFunction</a> (const wchar_t *library, const char *function, bool required)</td></tr>
+<tr class="memdesc:a334a660002ce6e6f06432ccf7d3cc50f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a function pointer to a named function in a library.  <a href="#a334a660002ce6e6f06432ccf7d3cc50f">More...</a><br /></td></tr>
+<tr class="separator:a334a660002ce6e6f06432ccf7d3cc50f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>The internal namespace, not for public use. </p>
 </div><h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a334a660002ce6e6f06432ccf7d3cc50f"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename FunctionType &gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">FunctionType* crashpad::internal::GetFunction </td>
+          <td>(</td>
+          <td class="paramtype">const wchar_t *&#160;</td>
+          <td class="paramname"><em>library</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>function</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>required</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a function pointer to a named function in a library. </p>
+<p>Do not call this directly, use the <a class="el" href="get__function_8h.html#a0997574e7522725516242d78632ed686" title="Returns a function pointer to a named function in a library without requiring that it be found...">GET_FUNCTION()</a> or <a class="el" href="get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3" title="Returns a function pointer to a named function in a library, requiring that it be found...">GET_FUNCTION_REQUIRED()</a> macros instead.</p>
+<p>This accesses <em>library</em> by calling <code>LoadLibrary()</code> and is subject to the same restrictions as that function. Notably, it can’t be used from a <code>DllMain()</code> entry point.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">library</td><td>The library to search in. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>The function to search for. If a leading <code>::</code> is present, it will be stripped. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>If <code>true</code>, require the function to resolve by <code>DCHECK</code>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the requested function on success. If <em>required</em> is <code>true</code>, triggers a <code>DCHECK</code> assertion on failure, otherwise, <code>nullptr</code> on failure. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa982a8cad0e72cddf1989d135db3c338"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">FARPROC crashpad::internal::GetFunctionInternal </td>
+          <td>(</td>
+          <td class="paramtype">const wchar_t *&#160;</td>
+          <td class="paramname"><em>library</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>function</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>required</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a function pointer to a named function in a library. </p>
+<p>Do not call this directly, use the <a class="el" href="get__function_8h.html#a0997574e7522725516242d78632ed686" title="Returns a function pointer to a named function in a library without requiring that it be found...">GET_FUNCTION()</a> or <a class="el" href="get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3" title="Returns a function pointer to a named function in a library, requiring that it be found...">GET_FUNCTION_REQUIRED()</a> macros instead.</p>
+<p>This accesses <em>library</em> by calling <code>LoadLibrary()</code> and is subject to the same restrictions as that function. Notably, it can’t be used from a <code>DllMain()</code> entry point.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">library</td><td>The library to search in. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>The function to search for. If a leading <code>::</code> is present, it will be stripped. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>If <code>true</code>, require the function to resolve by <code>DCHECK</code>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the requested function on success. If <em>required</em> is <code>true</code>, triggers a <code>DCHECK</code> assertion on failure, otherwise, <code>nullptr</code> on failure. </dd></dl>
+
+</div>
+</div>
 <a class="anchor" id="ad5bd580ef499998bcd94b4d28f252177"></a>
 <div class="memitem">
 <div class="memproto">
diff --git a/doc/generated/doxygen/namespacemembers_func.html b/doc/generated/doxygen/namespacemembers_func.html
index 4235d190..0053d79b 100644
--- a/doc/generated/doxygen/namespacemembers_func.html
+++ b/doc/generated/doxygen/namespacemembers_func.html
@@ -262,6 +262,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 
 <h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GetFunction()
+: <a class="el" href="namespacecrashpad_1_1internal.html#a334a660002ce6e6f06432ccf7d3cc50f">crashpad::internal</a>
+</li>
+<li>GetFunctionInternal()
+: <a class="el" href="namespacecrashpad_1_1internal.html#aa982a8cad0e72cddf1989d135db3c338">crashpad::internal</a>
+</li>
 <li>GetModuleVersionAndType()
 : <a class="el" href="namespacecrashpad.html#af5f4414be804bdcd71f57053d7147eff">crashpad</a>
 </li>
diff --git a/doc/generated/doxygen/namespacemembers_g.html b/doc/generated/doxygen/namespacemembers_g.html
index 1b8ccb3f..644c46cb 100644
--- a/doc/generated/doxygen/namespacemembers_g.html
+++ b/doc/generated/doxygen/namespacemembers_g.html
@@ -121,6 +121,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="textblock">Here is a list of all documented namespace members with links to the namespaces they belong to:</div>
 
 <h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GetFunction()
+: <a class="el" href="namespacecrashpad_1_1internal.html#a334a660002ce6e6f06432ccf7d3cc50f">crashpad::internal</a>
+</li>
+<li>GetFunctionInternal()
+: <a class="el" href="namespacecrashpad_1_1internal.html#aa982a8cad0e72cddf1989d135db3c338">crashpad::internal</a>
+</li>
 <li>GetModuleVersionAndType()
 : <a class="el" href="namespacecrashpad.html#af5f4414be804bdcd71f57053d7147eff">crashpad</a>
 </li>
diff --git a/doc/generated/doxygen/search/all_7.js b/doc/generated/doxygen/search/all_7.js
index 7df3d2cb..735631a5 100644
--- a/doc/generated/doxygen/search/all_7.js
+++ b/doc/generated/doxygen/search/all_7.js
@@ -3,6 +3,9 @@ var searchData=
   ['gdihandlebuffercountforbitness',['GdiHandleBufferCountForBitness',['../structcrashpad_1_1process__types_1_1GdiHandleBufferCountForBitness.html',1,'crashpad::process_types']]],
   ['gdihandlebuffercountforbitness_3c_20internal_3a_3atraits32_20_3e',['GdiHandleBufferCountForBitness&lt; internal::Traits32 &gt;',['../structcrashpad_1_1process__types_1_1GdiHandleBufferCountForBitness_3_01internal_1_1Traits32_01_4.html',1,'crashpad::process_types']]],
   ['gdihandlebuffercountforbitness_3c_20internal_3a_3atraits64_20_3e',['GdiHandleBufferCountForBitness&lt; internal::Traits64 &gt;',['../structcrashpad_1_1process__types_1_1GdiHandleBufferCountForBitness_3_01internal_1_1Traits64_01_4.html',1,'crashpad::process_types']]],
+  ['get_5ffunction',['GET_FUNCTION',['../get__function_8h.html#a0997574e7522725516242d78632ed686',1,'get_function.h']]],
+  ['get_5ffunction_2eh',['get_function.h',['../get__function_8h.html',1,'']]],
+  ['get_5ffunction_5frequired',['GET_FUNCTION_REQUIRED',['../get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3',1,'get_function.h']]],
   ['getbodystream',['GetBodyStream',['../classcrashpad_1_1HTTPMultipartBuilder.html#a44bee6ddacb6b526b1a170e893d6b2b4',1,'crashpad::HTTPMultipartBuilder']]],
   ['getbytesbuffer',['GetBytesBuffer',['../classcrashpad_1_1HTTPBodyStream.html#a1bb6a644866c3e01f15818be23bde9ef',1,'crashpad::HTTPBodyStream::GetBytesBuffer()'],['../classcrashpad_1_1StringHTTPBodyStream.html#aef52b9001e6111900c7836d601dee2b3',1,'crashpad::StringHTTPBodyStream::GetBytesBuffer()'],['../classcrashpad_1_1FileHTTPBodyStream.html#af6774ed1f81fe667da00cd071b32a9c6',1,'crashpad::FileHTTPBodyStream::GetBytesBuffer()'],['../classcrashpad_1_1CompositeHTTPBodyStream.html#a8ed6efc6155915b464f0b8a02d67605b',1,'crashpad::CompositeHTTPBodyStream::GetBytesBuffer()']]],
   ['getclientid',['GetClientID',['../classcrashpad_1_1Settings.html#a5daa0f1799126f64ad515b9da08ef622',1,'crashpad::Settings']]],
@@ -14,6 +17,8 @@ var searchData=
   ['getcrashpadoptions',['GetCrashpadOptions',['../classcrashpad_1_1internal_1_1ModuleSnapshotMac.html#a6ab9e645e32395c104448fe083597509',1,'crashpad::internal::ModuleSnapshotMac::GetCrashpadOptions()'],['../classcrashpad_1_1ProcessSnapshotMac.html#a184d098c74cbc4b476a33005848b5f2e',1,'crashpad::ProcessSnapshotMac::GetCrashpadOptions()'],['../classcrashpad_1_1internal_1_1ModuleSnapshotWin.html#a6b30e66dbd5646a0183daa0cb2865249',1,'crashpad::internal::ModuleSnapshotWin::GetCrashpadOptions()'],['../classcrashpad_1_1ProcessSnapshotWin.html#a58ac5f42e407f23a0c8931ed546d6bcb',1,'crashpad::ProcessSnapshotWin::GetCrashpadOptions()']]],
   ['getdefault',['GetDefault',['../classcrashpad_1_1PruneCondition.html#af3303669297ed08eb5cb87f34f7175e3',1,'crashpad::PruneCondition']]],
   ['getexceptionports',['GetExceptionPorts',['../classcrashpad_1_1ExceptionPorts.html#ae0f91d583bda2fa46ff278b13a35ac08',1,'crashpad::ExceptionPorts']]],
+  ['getfunction',['GetFunction',['../namespacecrashpad_1_1internal.html#a334a660002ce6e6f06432ccf7d3cc50f',1,'crashpad::internal']]],
+  ['getfunctioninternal',['GetFunctionInternal',['../namespacecrashpad_1_1internal.html#aa982a8cad0e72cddf1989d135db3c338',1,'crashpad::internal']]],
   ['getlastuploadattempttime',['GetLastUploadAttemptTime',['../classcrashpad_1_1Settings.html#a855f61d6fc73042dcb886ef40d8e4429',1,'crashpad::Settings']]],
   ['getmoduletype',['GetModuleType',['../classcrashpad_1_1internal_1_1ModuleSnapshotMac.html#a32938e5be450dedd07418f0ef233513b',1,'crashpad::internal::ModuleSnapshotMac::GetModuleType()'],['../classcrashpad_1_1internal_1_1ModuleSnapshotMinidump.html#a65a35264229425a915be34472bfa70cc',1,'crashpad::internal::ModuleSnapshotMinidump::GetModuleType()'],['../classcrashpad_1_1ModuleSnapshot.html#abbed0f3c66180be9ab625fc07375dea8',1,'crashpad::ModuleSnapshot::GetModuleType()'],['../classcrashpad_1_1test_1_1TestModuleSnapshot.html#a91434689ef1037cb0e1a22e2902d1ebd',1,'crashpad::test::TestModuleSnapshot::GetModuleType()'],['../classcrashpad_1_1internal_1_1ModuleSnapshotWin.html#a7ae6fbe01d2eb43f956c415ff318c658',1,'crashpad::internal::ModuleSnapshotWin::GetModuleType()']]],
   ['getmoduleversionandtype',['GetModuleVersionAndType',['../namespacecrashpad.html#af5f4414be804bdcd71f57053d7147eff',1,'crashpad']]],
diff --git a/doc/generated/doxygen/search/defines_3.js b/doc/generated/doxygen/search/defines_3.js
index e7793bcd..69201d75 100644
--- a/doc/generated/doxygen/search/defines_3.js
+++ b/doc/generated/doxygen/search/defines_3.js
@@ -1,6 +1,5 @@
 var searchData=
 [
-  ['initialization_5fstate_5fdcheck_5fvalid',['INITIALIZATION_STATE_DCHECK_VALID',['../initialization__state__dcheck_8h.html#ad0cdf9da2bf4bb9c2318e100136782ee',1,'initialization_state_dcheck.h']]],
-  ['initialization_5fstate_5fset_5finitializing',['INITIALIZATION_STATE_SET_INITIALIZING',['../initialization__state__dcheck_8h.html#a9f550b300c9c7d5214aa612adfdba40e',1,'initialization_state_dcheck.h']]],
-  ['initialization_5fstate_5fset_5fvalid',['INITIALIZATION_STATE_SET_VALID',['../initialization__state__dcheck_8h.html#a079bd353351188e4819d9008b732bdce',1,'initialization_state_dcheck.h']]]
+  ['get_5ffunction',['GET_FUNCTION',['../get__function_8h.html#a0997574e7522725516242d78632ed686',1,'get_function.h']]],
+  ['get_5ffunction_5frequired',['GET_FUNCTION_REQUIRED',['../get__function_8h.html#ae87bc4c8800c7e6f35c06bf48cb636f3',1,'get_function.h']]]
 ];
diff --git a/doc/generated/doxygen/search/defines_4.js b/doc/generated/doxygen/search/defines_4.js
index ef4486e6..e7793bcd 100644
--- a/doc/generated/doxygen/search/defines_4.js
+++ b/doc/generated/doxygen/search/defines_4.js
@@ -1,13 +1,6 @@
 var searchData=
 [
-  ['minidump_5fmisc1_5fprocess_5fid',['MINIDUMP_MISC1_PROCESS_ID',['../dbghelp_8h.html#a7c45d36c41d28289bb5966da1eb4df1e',1,'dbghelp.h']]],
-  ['minidump_5fmisc1_5fprocess_5ftimes',['MINIDUMP_MISC1_PROCESS_TIMES',['../dbghelp_8h.html#ab3edfa814438bfee50c43b21693ca121',1,'dbghelp.h']]],
-  ['minidump_5fmisc1_5fprocessor_5fpower_5finfo',['MINIDUMP_MISC1_PROCESSOR_POWER_INFO',['../dbghelp_8h.html#aaae1499c48b3277b847f6a3bc6b71c78',1,'dbghelp.h']]],
-  ['minidump_5fmisc3_5fprocess_5fexecute_5fflags',['MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS',['../dbghelp_8h.html#a467ca1ad62bc613f3f0d8b015adcd513',1,'dbghelp.h']]],
-  ['minidump_5fmisc3_5fprocess_5fintegrity',['MINIDUMP_MISC3_PROCESS_INTEGRITY',['../dbghelp_8h.html#a7fcbcd210bea531bf9cca1ed9d10113f',1,'dbghelp.h']]],
-  ['minidump_5fmisc3_5fprotected_5fprocess',['MINIDUMP_MISC3_PROTECTED_PROCESS',['../dbghelp_8h.html#af2a0c259e3c9b1e03cc3f2b07dede231',1,'dbghelp.h']]],
-  ['minidump_5fmisc3_5ftimezone',['MINIDUMP_MISC3_TIMEZONE',['../dbghelp_8h.html#a971b8f20e37258ee18f4dd59295f8eb2',1,'dbghelp.h']]],
-  ['minidump_5fmisc4_5fbuildstring',['MINIDUMP_MISC4_BUILDSTRING',['../dbghelp_8h.html#ae7501b999998d342bea5ece7d7188142',1,'dbghelp.h']]],
-  ['minidump_5fsignature',['MINIDUMP_SIGNATURE',['../dbghelp_8h.html#a0d0fecdd7d2b287138b5af5292b9b600',1,'dbghelp.h']]],
-  ['minidump_5fversion',['MINIDUMP_VERSION',['../dbghelp_8h.html#ab247a0e9a47b718e3f091d992868830a',1,'dbghelp.h']]]
+  ['initialization_5fstate_5fdcheck_5fvalid',['INITIALIZATION_STATE_DCHECK_VALID',['../initialization__state__dcheck_8h.html#ad0cdf9da2bf4bb9c2318e100136782ee',1,'initialization_state_dcheck.h']]],
+  ['initialization_5fstate_5fset_5finitializing',['INITIALIZATION_STATE_SET_INITIALIZING',['../initialization__state__dcheck_8h.html#a9f550b300c9c7d5214aa612adfdba40e',1,'initialization_state_dcheck.h']]],
+  ['initialization_5fstate_5fset_5fvalid',['INITIALIZATION_STATE_SET_VALID',['../initialization__state__dcheck_8h.html#a079bd353351188e4819d9008b732bdce',1,'initialization_state_dcheck.h']]]
 ];
diff --git a/doc/generated/doxygen/search/defines_5.js b/doc/generated/doxygen/search/defines_5.js
index 20f721da..ef4486e6 100644
--- a/doc/generated/doxygen/search/defines_5.js
+++ b/doc/generated/doxygen/search/defines_5.js
@@ -1,4 +1,13 @@
 var searchData=
 [
-  ['stdio_5fplog',['STDIO_PLOG',['../file__io_8h.html#a2f8d366bb03ceee04e91bb38c9c41e5e',1,'file_io.h']]]
+  ['minidump_5fmisc1_5fprocess_5fid',['MINIDUMP_MISC1_PROCESS_ID',['../dbghelp_8h.html#a7c45d36c41d28289bb5966da1eb4df1e',1,'dbghelp.h']]],
+  ['minidump_5fmisc1_5fprocess_5ftimes',['MINIDUMP_MISC1_PROCESS_TIMES',['../dbghelp_8h.html#ab3edfa814438bfee50c43b21693ca121',1,'dbghelp.h']]],
+  ['minidump_5fmisc1_5fprocessor_5fpower_5finfo',['MINIDUMP_MISC1_PROCESSOR_POWER_INFO',['../dbghelp_8h.html#aaae1499c48b3277b847f6a3bc6b71c78',1,'dbghelp.h']]],
+  ['minidump_5fmisc3_5fprocess_5fexecute_5fflags',['MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS',['../dbghelp_8h.html#a467ca1ad62bc613f3f0d8b015adcd513',1,'dbghelp.h']]],
+  ['minidump_5fmisc3_5fprocess_5fintegrity',['MINIDUMP_MISC3_PROCESS_INTEGRITY',['../dbghelp_8h.html#a7fcbcd210bea531bf9cca1ed9d10113f',1,'dbghelp.h']]],
+  ['minidump_5fmisc3_5fprotected_5fprocess',['MINIDUMP_MISC3_PROTECTED_PROCESS',['../dbghelp_8h.html#af2a0c259e3c9b1e03cc3f2b07dede231',1,'dbghelp.h']]],
+  ['minidump_5fmisc3_5ftimezone',['MINIDUMP_MISC3_TIMEZONE',['../dbghelp_8h.html#a971b8f20e37258ee18f4dd59295f8eb2',1,'dbghelp.h']]],
+  ['minidump_5fmisc4_5fbuildstring',['MINIDUMP_MISC4_BUILDSTRING',['../dbghelp_8h.html#ae7501b999998d342bea5ece7d7188142',1,'dbghelp.h']]],
+  ['minidump_5fsignature',['MINIDUMP_SIGNATURE',['../dbghelp_8h.html#a0d0fecdd7d2b287138b5af5292b9b600',1,'dbghelp.h']]],
+  ['minidump_5fversion',['MINIDUMP_VERSION',['../dbghelp_8h.html#ab247a0e9a47b718e3f091d992868830a',1,'dbghelp.h']]]
 ];
diff --git a/doc/generated/doxygen/search/defines_6.js b/doc/generated/doxygen/search/defines_6.js
index 538fa139..20f721da 100644
--- a/doc/generated/doxygen/search/defines_6.js
+++ b/doc/generated/doxygen/search/defines_6.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['vs_5fffi_5fsignature',['VS_FFI_SIGNATURE',['../verrsrc_8h.html#a323849bf0740c974e68b19ae551e1a18',1,'verrsrc.h']]],
-  ['vs_5fffi_5fstrucversion',['VS_FFI_STRUCVERSION',['../verrsrc_8h.html#a5d5a4b05d359ca879b652292498d49b9',1,'verrsrc.h']]]
+  ['stdio_5fplog',['STDIO_PLOG',['../file__io_8h.html#a2f8d366bb03ceee04e91bb38c9c41e5e',1,'file_io.h']]]
 ];
diff --git a/doc/generated/doxygen/search/defines_7.html b/doc/generated/doxygen/search/defines_7.html
new file mode 100644
index 00000000..da589f13
--- /dev/null
+++ b/doc/generated/doxygen/search/defines_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.9.1"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/generated/doxygen/search/defines_7.js b/doc/generated/doxygen/search/defines_7.js
new file mode 100644
index 00000000..538fa139
--- /dev/null
+++ b/doc/generated/doxygen/search/defines_7.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['vs_5fffi_5fsignature',['VS_FFI_SIGNATURE',['../verrsrc_8h.html#a323849bf0740c974e68b19ae551e1a18',1,'verrsrc.h']]],
+  ['vs_5fffi_5fstrucversion',['VS_FFI_STRUCVERSION',['../verrsrc_8h.html#a5d5a4b05d359ca879b652292498d49b9',1,'verrsrc.h']]]
+];
diff --git a/doc/generated/doxygen/search/files_2.js b/doc/generated/doxygen/search/files_2.js
index fe953bc6..f21f7f7c 100644
--- a/doc/generated/doxygen/search/files_2.js
+++ b/doc/generated/doxygen/search/files_2.js
@@ -1,4 +1,5 @@
 var searchData=
 [
+  ['get_5ffunction_2eh',['get_function.h',['../get__function_8h.html',1,'']]],
   ['gtest_5fdeath_5fcheck_2eh',['gtest_death_check.h',['../gtest__death__check_8h.html',1,'']]]
 ];
diff --git a/doc/generated/doxygen/search/functions_7.js b/doc/generated/doxygen/search/functions_7.js
index 42349319..7a0fa405 100644
--- a/doc/generated/doxygen/search/functions_7.js
+++ b/doc/generated/doxygen/search/functions_7.js
@@ -11,6 +11,8 @@ var searchData=
   ['getcrashpadoptions',['GetCrashpadOptions',['../classcrashpad_1_1internal_1_1ModuleSnapshotMac.html#a6ab9e645e32395c104448fe083597509',1,'crashpad::internal::ModuleSnapshotMac::GetCrashpadOptions()'],['../classcrashpad_1_1ProcessSnapshotMac.html#a184d098c74cbc4b476a33005848b5f2e',1,'crashpad::ProcessSnapshotMac::GetCrashpadOptions()'],['../classcrashpad_1_1internal_1_1ModuleSnapshotWin.html#a6b30e66dbd5646a0183daa0cb2865249',1,'crashpad::internal::ModuleSnapshotWin::GetCrashpadOptions()'],['../classcrashpad_1_1ProcessSnapshotWin.html#a58ac5f42e407f23a0c8931ed546d6bcb',1,'crashpad::ProcessSnapshotWin::GetCrashpadOptions()']]],
   ['getdefault',['GetDefault',['../classcrashpad_1_1PruneCondition.html#af3303669297ed08eb5cb87f34f7175e3',1,'crashpad::PruneCondition']]],
   ['getexceptionports',['GetExceptionPorts',['../classcrashpad_1_1ExceptionPorts.html#ae0f91d583bda2fa46ff278b13a35ac08',1,'crashpad::ExceptionPorts']]],
+  ['getfunction',['GetFunction',['../namespacecrashpad_1_1internal.html#a334a660002ce6e6f06432ccf7d3cc50f',1,'crashpad::internal']]],
+  ['getfunctioninternal',['GetFunctionInternal',['../namespacecrashpad_1_1internal.html#aa982a8cad0e72cddf1989d135db3c338',1,'crashpad::internal']]],
   ['getlastuploadattempttime',['GetLastUploadAttemptTime',['../classcrashpad_1_1Settings.html#a855f61d6fc73042dcb886ef40d8e4429',1,'crashpad::Settings']]],
   ['getmoduletype',['GetModuleType',['../classcrashpad_1_1internal_1_1ModuleSnapshotMac.html#a32938e5be450dedd07418f0ef233513b',1,'crashpad::internal::ModuleSnapshotMac::GetModuleType()'],['../classcrashpad_1_1internal_1_1ModuleSnapshotMinidump.html#a65a35264229425a915be34472bfa70cc',1,'crashpad::internal::ModuleSnapshotMinidump::GetModuleType()'],['../classcrashpad_1_1ModuleSnapshot.html#abbed0f3c66180be9ab625fc07375dea8',1,'crashpad::ModuleSnapshot::GetModuleType()'],['../classcrashpad_1_1test_1_1TestModuleSnapshot.html#a91434689ef1037cb0e1a22e2902d1ebd',1,'crashpad::test::TestModuleSnapshot::GetModuleType()'],['../classcrashpad_1_1internal_1_1ModuleSnapshotWin.html#a7ae6fbe01d2eb43f956c415ff318c658',1,'crashpad::internal::ModuleSnapshotWin::GetModuleType()']]],
   ['getmoduleversionandtype',['GetModuleVersionAndType',['../namespacecrashpad.html#af5f4414be804bdcd71f57053d7147eff',1,'crashpad']]],
diff --git a/doc/generated/doxygen/search/searchdata.js b/doc/generated/doxygen/search/searchdata.js
index 8b6a273b..e8ab968c 100644
--- a/doc/generated/doxygen/search/searchdata.js
+++ b/doc/generated/doxygen/search/searchdata.js
@@ -9,7 +9,7 @@ var indexSectionsWithContent =
   6: "cfhmprsw",
   7: "cdfmoprstx",
   8: "ekmst",
-  9: "aceimsv",
+  9: "acegimsv",
   10: "t"
 };