crashpad/doc/generated/doxygen/classcrashpad_1_1ProcessReaderWin.html
2016-11-08 14:26:59 -05:00

412 lines
23 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::ProcessReaderWin Class 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>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Crashpad
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></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="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html">ProcessReaderWin</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1ProcessReaderWin-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::ProcessReaderWin Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Accesses information about another process, identified by a <code>HANDLE</code>.
<a href="classcrashpad_1_1ProcessReaderWin.html#details">More...</a></p>
<p><code>#include &quot;snapshot/win/process_reader_win.h&quot;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ProcessReaderWin_1_1Thread.html">Thread</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains information about a thread that belongs to a process. <a href="structcrashpad_1_1ProcessReaderWin_1_1Thread.html#details">More...</a><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="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a21cb39ea246076f3458f08ab22b03ed3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a21cb39ea246076f3458f08ab22b03ed3">Initialize</a> (HANDLE process, <a class="el" href="namespacecrashpad.html#ab96bb7edb42a2e1ce28eda205a18a17a">ProcessSuspensionState</a> suspension_state)</td></tr>
<tr class="memdesc:a21cb39ea246076f3458f08ab22b03ed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes this object. This method must be called before any other. <a href="#a21cb39ea246076f3458f08ab22b03ed3">More...</a><br /></td></tr>
<tr class="separator:a21cb39ea246076f3458f08ab22b03ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1b7b00a5f9b4040c6736e5b04c6a747"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#aa1b7b00a5f9b4040c6736e5b04c6a747">Is64Bit</a> () const</td></tr>
<tr class="separator:aa1b7b00a5f9b4040c6736e5b04c6a747"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04ba8e19eb0209d546d213705e07c34b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a04ba8e19eb0209d546d213705e07c34b">ReadMemory</a> (<a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> at, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> num_bytes, void *into) const</td></tr>
<tr class="memdesc:a04ba8e19eb0209d546d213705e07c34b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to read <em>num_bytes</em> bytes from the target process starting at address <em>at</em> into <em>into</em>. <a href="#a04ba8e19eb0209d546d213705e07c34b">More...</a><br /></td></tr>
<tr class="separator:a04ba8e19eb0209d546d213705e07c34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a57de463ff788497e10d04bc20c5b3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a9a57de463ff788497e10d04bc20c5b3d">ReadAvailableMemory</a> (<a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> at, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> num_bytes, void *into) const</td></tr>
<tr class="memdesc:a9a57de463ff788497e10d04bc20c5b3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to read <em>num_bytes</em> bytes from the target process starting at address <em>at</em> into <em>into</em>. If some of the specified range is not accessible, reads up to the first inaccessible byte. <a href="#a9a57de463ff788497e10d04bc20c5b3d">More...</a><br /></td></tr>
<tr class="separator:a9a57de463ff788497e10d04bc20c5b3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac195b620d6522e48683eaaa203537f6f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#ac195b620d6522e48683eaaa203537f6f">StartTime</a> (timeval *start_time) const</td></tr>
<tr class="memdesc:ac195b620d6522e48683eaaa203537f6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the target process' start time. <a href="#ac195b620d6522e48683eaaa203537f6f">More...</a><br /></td></tr>
<tr class="separator:ac195b620d6522e48683eaaa203537f6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a808d9b56c3306802a15b41d82daa0fa5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a808d9b56c3306802a15b41d82daa0fa5">CPUTimes</a> (timeval *user_time, timeval *system_time) const</td></tr>
<tr class="memdesc:a808d9b56c3306802a15b41d82daa0fa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the target process' execution time. <a href="#a808d9b56c3306802a15b41d82daa0fa5">More...</a><br /></td></tr>
<tr class="separator:a808d9b56c3306802a15b41d82daa0fa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e8c6dbc415404658201bd4a7e3536d7"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="structcrashpad_1_1ProcessReaderWin_1_1Thread.html">Thread</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a4e8c6dbc415404658201bd4a7e3536d7">Threads</a> ()</td></tr>
<tr class="separator:a4e8c6dbc415404658201bd4a7e3536d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6bca8a188dd098c864d497fef269cf5"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="structcrashpad_1_1ProcessInfo_1_1Module.html">ProcessInfo::Module</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#ac6bca8a188dd098c864d497fef269cf5">Modules</a> ()</td></tr>
<tr class="separator:ac6bca8a188dd098c864d497fef269cf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3830be2b7bc38bd37e3b211297ff42a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classcrashpad_1_1ProcessInfo.html">ProcessInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#af3830be2b7bc38bd37e3b211297ff42a">GetProcessInfo</a> () const</td></tr>
<tr class="separator:af3830be2b7bc38bd37e3b211297ff42a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e381af0ba9565d55d2bc6b58d0c55bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a7e381af0ba9565d55d2bc6b58d0c55bc">DecrementThreadSuspendCounts</a> (uint64_t except_thread_id)</td></tr>
<tr class="memdesc:a7e381af0ba9565d55d2bc6b58d0c55bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrements the thread suspend counts for all thread ids other than <em>except_thread_id</em>. <a href="#a7e381af0ba9565d55d2bc6b58d0c55bc">More...</a><br /></td></tr>
<tr class="separator:a7e381af0ba9565d55d2bc6b58d0c55bc"><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>Accesses information about another process, identified by a <code>HANDLE</code>. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a808d9b56c3306802a15b41d82daa0fa5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a808d9b56c3306802a15b41d82daa0fa5">&sect;&nbsp;</a></span>CPUTimes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessReaderWin::CPUTimes </td>
<td>(</td>
<td class="paramtype">timeval *&#160;</td>
<td class="paramname"><em>user_time</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">timeval *&#160;</td>
<td class="paramname"><em>system_time</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines the target process' execution time. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">user_time</td><td>The amount of time the process has executed code in user mode. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">system_time</td><td>The amount of time the process has executed code in kernel mode.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on failure, with a warning logged. </dd></dl>
</div>
</div>
<a id="a7e381af0ba9565d55d2bc6b58d0c55bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e381af0ba9565d55d2bc6b58d0c55bc">&sect;&nbsp;</a></span>DecrementThreadSuspendCounts()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::ProcessReaderWin::DecrementThreadSuspendCounts </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>except_thread_id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decrements the thread suspend counts for all thread ids other than <em>except_thread_id</em>. </p>
<p>Used to adjust the thread suspend count to correspond to the actual values for the process before Crashpad got involved. </p>
</div>
</div>
<a id="af3830be2b7bc38bd37e3b211297ff42a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3830be2b7bc38bd37e3b211297ff42a">&sect;&nbsp;</a></span>GetProcessInfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classcrashpad_1_1ProcessInfo.html">ProcessInfo</a> &amp; crashpad::ProcessReaderWin::GetProcessInfo </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classcrashpad_1_1ProcessInfo.html" title="Gathers information about a process given its HANDLE. This consists primarily of information stored i...">ProcessInfo</a> object for the process being read. </dd></dl>
</div>
</div>
<a id="a21cb39ea246076f3458f08ab22b03ed3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21cb39ea246076f3458f08ab22b03ed3">&sect;&nbsp;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessReaderWin::Initialize </td>
<td>(</td>
<td class="paramtype">HANDLE&#160;</td>
<td class="paramname"><em>process</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#ab96bb7edb42a2e1ce28eda205a18a17a">ProcessSuspensionState</a>&#160;</td>
<td class="paramname"><em>suspension_state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes this object. This method must be called before any other. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">process</td><td>Process handle, must have <code>PROCESS_QUERY_INFORMATION</code>, <code>PROCESS_VM_READ</code>, and <code>PROCESS_DUP_HANDLE</code> access. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">suspension_state</td><td>Whether <em>process</em> has already been suspended by the caller. Typically, this will be <a class="el" href="namespacecrashpad.html#ab96bb7edb42a2e1ce28eda205a18a17aa6e09d95243f1f7bec7d0061e5831dc82" title="The process is suspended. ">ProcessSuspensionState::kSuspended</a>, except for testing uses and where the reader is reading itself.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, indicating that this object will respond validly to further method calls. <code>false</code> on failure. On failure, no further method calls should be made.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classcrashpad_1_1ScopedProcessSuspend.html" title="Manages the suspension of another process. ">ScopedProcessSuspend</a> </dd></dl>
</div>
</div>
<a id="aa1b7b00a5f9b4040c6736e5b04c6a747"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1b7b00a5f9b4040c6736e5b04c6a747">&sect;&nbsp;</a></span>Is64Bit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessReaderWin::Is64Bit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the target task is a 64-bit process. </dd></dl>
</div>
</div>
<a id="ac6bca8a188dd098c864d497fef269cf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6bca8a188dd098c864d497fef269cf5">&sect;&nbsp;</a></span>Modules()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt; <a class="el" href="structcrashpad_1_1ProcessInfo_1_1Module.html">ProcessInfo::Module</a> &gt; &amp; crashpad::ProcessReaderWin::Modules </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The modules loaded in the process. The first element (at index <code>0</code>) corresponds to the main executable. </dd></dl>
</div>
</div>
<a id="a9a57de463ff788497e10d04bc20c5b3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a57de463ff788497e10d04bc20c5b3d">&sect;&nbsp;</a></span>ReadAvailableMemory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> crashpad::ProcessReaderWin::ReadAvailableMemory </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>&#160;</td>
<td class="paramname"><em>at</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a>&#160;</td>
<td class="paramname"><em>num_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>into</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Attempts to read <em>num_bytes</em> bytes from the target process starting at address <em>at</em> into <em>into</em>. If some of the specified range is not accessible, reads up to the first inaccessible byte. </p>
<dl class="section return"><dt>Returns</dt><dd>The actual number of bytes read.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a04ba8e19eb0209d546d213705e07c34b" title="Attempts to read num_bytes bytes from the target process starting at address at into into...">ReadMemory</a> </dd></dl>
</div>
</div>
<a id="a04ba8e19eb0209d546d213705e07c34b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04ba8e19eb0209d546d213705e07c34b">&sect;&nbsp;</a></span>ReadMemory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessReaderWin::ReadMemory </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>&#160;</td>
<td class="paramname"><em>at</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a>&#160;</td>
<td class="paramname"><em>num_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>into</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Attempts to read <em>num_bytes</em> bytes from the target process starting at address <em>at</em> into <em>into</em>. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the entire region could be read, or <code>false</code> with an error logged.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classcrashpad_1_1ProcessReaderWin.html#a9a57de463ff788497e10d04bc20c5b3d" title="Attempts to read num_bytes bytes from the target process starting at address at into into...">ReadAvailableMemory</a> </dd></dl>
</div>
</div>
<a id="ac195b620d6522e48683eaaa203537f6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac195b620d6522e48683eaaa203537f6f">&sect;&nbsp;</a></span>StartTime()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessReaderWin::StartTime </td>
<td>(</td>
<td class="paramtype">timeval *&#160;</td>
<td class="paramname"><em>start_time</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines the target process' start time. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">start_time</td><td>The time that the process started.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on failure, with a warning logged. </dd></dl>
</div>
</div>
<a id="a4e8c6dbc415404658201bd4a7e3536d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e8c6dbc415404658201bd4a7e3536d7">&sect;&nbsp;</a></span>Threads()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt; <a class="el" href="structcrashpad_1_1ProcessReaderWin_1_1Thread.html">ProcessReaderWin::Thread</a> &gt; &amp; crashpad::ProcessReaderWin::Threads </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The threads that are in the process. The first element (at index <code>0</code>) corresponds to the main thread. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>snapshot/win/process_reader_win.h</li>
<li>snapshot/win/process_reader_win.cc</li>
</ul>
</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.12
</small></address>
</body>
</html>