WinStd/_e_t_w_8h_source.html

1158 lines
206 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WinStd: include/WinStd/ETW.h Source File</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" />
</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 id="projectrow">
<td id="projectalign">
<div id="projectname">WinStd
</div>
<div id="projectbrief">Windows Win32 API using Standard C++</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_6f50bb204833d887b928571856c82fbe.html">WinStd</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">ETW.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2023 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;assert.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;evntprov.h&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;evntcons.h&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;tdh.h&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#pragma warning(disable: 4505) </span><span class="comment">// Don&#39;t warn on unused code</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00033" data-start="{" data-end="}">
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#ga565b3185a93009edbb2d248227106bec"> 33</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> == ERROR_SUCCESS) ULONG <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga565b3185a93009edbb2d248227106bec">TdhGetProperty</a>(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_reads_opt_(TdhContextCount) PTDH_CONTEXT pTdhContext, _In_ ULONG PropertyDataCount, _In_reads_(PropertyDataCount) PPROPERTY_DATA_DESCRIPTOR pPropertyData, _Inout_ std::vector&lt;_Ty, _Ax&gt; &amp;aData)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>{</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> ULONG ulSize, ulResult;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// Query property size.</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> ulResult = TdhGetPropertySize(pEvent, TdhContextCount, pTdhContext, PropertyDataCount, pPropertyData, &amp;ulSize);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">if</span> (ulResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">if</span> (ulSize) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Query property value.</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> aData.resize((ulSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> ulResult = <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga565b3185a93009edbb2d248227106bec">TdhGetProperty</a>(pEvent, TdhContextCount, pTdhContext, PropertyDataCount, pPropertyData, ulSize, <span class="keyword">reinterpret_cast&lt;</span>PBYTE<span class="keyword">&gt;</span>(aData.data()));</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Property value size is zero.</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> aData.clear();</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">return</span> ulResult;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>}</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#ga318eb7aaef74aa01c86039520360e68a"> 58</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> == ERROR_SUCCESS) ULONG <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga318eb7aaef74aa01c86039520360e68a">TdhGetEventInformation</a>(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_reads_opt_(TdhContextCount) PTDH_CONTEXT pTdhContext, _Out_ std::unique_ptr&lt;TRACE_EVENT_INFO&gt; &amp;info)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>{</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> BYTE szBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>];</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> ULONG ulSize = <span class="keyword">sizeof</span>(szBuffer), ulResult;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> ulResult = <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga318eb7aaef74aa01c86039520360e68a">TdhGetEventInformation</a>(pEvent, TdhContextCount, pTdhContext, (PTRACE_EVENT_INFO)szBuffer, &amp;ulSize);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (ulResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> info.reset(<span class="keyword">reinterpret_cast&lt;</span>PTRACE_EVENT_INFO<span class="keyword">&gt;</span>(<span class="keyword">new</span> <span class="keywordtype">char</span>[ulSize]));</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> memcpy(info.get(), szBuffer, ulSize);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ulResult == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// Create buffer on heap and retry.</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> info.reset(<span class="keyword">reinterpret_cast&lt;</span>PTRACE_EVENT_INFO<span class="keyword">&gt;</span>(<span class="keyword">new</span> <span class="keywordtype">char</span>[ulSize]));</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga318eb7aaef74aa01c86039520360e68a">TdhGetEventInformation</a>(pEvent, TdhContextCount, pTdhContext, info.get(), &amp;ulSize);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> ulResult;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="foldopen" id="foldopen00084" data-start="{" data-end="}">
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#ga6726748672bf351a0910292e0ef23290"> 84</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> == ERROR_SUCCESS) ULONG <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga6726748672bf351a0910292e0ef23290">TdhGetEventMapInformation</a>(_In_ PEVENT_RECORD pEvent, _In_ LPWSTR pMapName, _Inout_ std::unique_ptr&lt;EVENT_MAP_INFO&gt; &amp;info)</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>{</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> BYTE szBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>];</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> ULONG ulSize = <span class="keyword">sizeof</span>(szBuffer), ulResult;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> ulResult = <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga6726748672bf351a0910292e0ef23290">TdhGetEventMapInformation</a>(pEvent, pMapName, (PEVENT_MAP_INFO)szBuffer, &amp;ulSize);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">if</span> (ulResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> info.reset(<span class="keyword">reinterpret_cast&lt;</span>PEVENT_MAP_INFO<span class="keyword">&gt;</span>(<span class="keyword">new</span> <span class="keywordtype">char</span>[ulSize]));</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> memcpy(info.get(), szBuffer, ulSize);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ulResult == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// Create buffer on heap and retry.</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> info.reset(<span class="keyword">reinterpret_cast&lt;</span>PEVENT_MAP_INFO<span class="keyword">&gt;</span>(<span class="keyword">new</span> <span class="keywordtype">char</span>[ulSize]));</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group___win_std_e_t_w_a_p_i.html#ga6726748672bf351a0910292e0ef23290">TdhGetEventMapInformation</a>(pEvent, pMapName, info.get(), &amp;ulSize);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> }</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> ulResult;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>}</div>
</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span>{</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="foldopen" id="foldopen00117" data-start="{" data-end="};">
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html"> 117</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__data.html">event_data</a> : <span class="keyword">public</span> EVENT_DATA_DESCRIPTOR</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00123" data-start="{" data-end="}">
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#acb4032673a3b2376eb0d62115bb37c4f"> 123</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#acb4032673a3b2376eb0d62115bb37c4f">event_data</a>()</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> Ptr = 0;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> Size = 0;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> Reserved = (ULONG)-1; <span class="comment">// Used for varadic argument terminator.</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00138" data-start="{" data-end="}">
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a0a53ee58077eed5bca18f146c34ced44"> 138</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a0a53ee58077eed5bca18f146c34ced44">event_data</a>(_In_ <span class="keyword">const</span> <span class="keywordtype">char</span> &amp;data)</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00151" data-start="{" data-end="}">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a86447ba8727fe91c0de85b8f7835a4c1"> 151</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a86447ba8727fe91c0de85b8f7835a4c1">event_data</a>(_In_ <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> &amp;data)</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00164" data-start="{" data-end="}">
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a26563233e9507adbf183291974005eaf"> 164</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a26563233e9507adbf183291974005eaf">event_data</a>(_In_ <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;data)</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> }</div>
</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00177" data-start="{" data-end="}">
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a59b2ac8e1b681412ea0aa582b3028681"> 177</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a59b2ac8e1b681412ea0aa582b3028681">event_data</a>(_In_ <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;data)</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> {</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00190" data-start="{" data-end="}">
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#aef6715d8e3e68eac7b7bbceacb3aff93"> 190</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#aef6715d8e3e68eac7b7bbceacb3aff93">event_data</a>(_In_ <span class="keyword">const</span> <span class="keywordtype">long</span> &amp;data)</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> {</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> }</div>
</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00203" data-start="{" data-end="}">
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#aba0a6535c84e9165b5ccdf943449e10c"> 203</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#aba0a6535c84e9165b5ccdf943449e10c">event_data</a>(_In_ <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> &amp;data)</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> {</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> }</div>
</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00216" data-start="{" data-end="}">
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a4d309bcda353b42ba1005b3c7b6f8dc1"> 216</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a4d309bcda353b42ba1005b3c7b6f8dc1">event_data</a>(_In_ <span class="keyword">const</span> GUID &amp;data)</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> {</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> }</div>
</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00229" data-start="{" data-end="}">
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a74be98ecad61265232c0752e0e823a8e"> 229</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a74be98ecad61265232c0752e0e823a8e">event_data</a>(_In_opt_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *data)</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">if</span> (data)</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> EventDataDescCreate(<span class="keyword">this</span>, data, (ULONG)((strlen(data) + 1) * <span class="keyword">sizeof</span>(*data)));</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="comment">// Writing NULL pointer with 0B length causes trouble in Event Viewer: message template string is displayed only, parameters are not rendered.</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> null[] = <span class="stringliteral">&quot;(null)&quot;</span>;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> EventDataDescCreate(<span class="keyword">this</span>, null, <span class="keyword">sizeof</span>(null));</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> }</div>
</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00248" data-start="{" data-end="}">
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a0ac38aca75ec84f5265eb897fb3c7a7e"> 248</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a0ac38aca75ec84f5265eb897fb3c7a7e">event_data</a>(_In_opt_z_ <span class="keyword">const</span> <span class="keywordtype">wchar_t</span> *data)</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> {</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keywordflow">if</span> (data)</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> EventDataDescCreate(<span class="keyword">this</span>, data, (ULONG)((wcslen(data) + 1) * <span class="keyword">sizeof</span>(*data)));</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// Writing NULL pointer with 0B length causes trouble in Event Viewer: message template string is displayed only, parameters are not rendered.</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">wchar_t</span> null[] = L<span class="stringliteral">&quot;(null)&quot;</span>;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> EventDataDescCreate(<span class="keyword">this</span>, null, <span class="keyword">sizeof</span>(null));</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> }</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> }</div>
</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> _Elem, <span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00268" data-start="{" data-end="}">
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#aa9741846e354b469b750db2ea982b12d"> 268</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#aa9741846e354b469b750db2ea982b12d">event_data</a>(_In_ <span class="keyword">const</span> std::basic_string&lt;_Elem, _Traits, _Ax&gt; &amp;data)</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> EventDataDescCreate(<span class="keyword">this</span>, data.c_str(), (ULONG)((data.length() + 1) * <span class="keyword">sizeof</span>(_Elem)));</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> }</div>
</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR</span></div>
<div class="foldopen" id="foldopen00282" data-start="{" data-end="}">
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a31af4a774845ec0f7db4267f573cd422"> 282</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#a31af4a774845ec0f7db4267f573cd422">event_data</a>(_In_bytecount_(size) <span class="keyword">const</span> <span class="keywordtype">void</span> *data, _In_ ULONG size)</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> EventDataDescCreate(<span class="keyword">this</span>, data, size);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> }</div>
</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> };</div>
</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d"> 291</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__data.html">event_data</a> <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">blank_event_data</a>;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
<div class="foldopen" id="foldopen00296" data-start="{" data-end="};">
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html"> 296</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a> : <span class="keyword">public</span> EVENT_RECORD</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00302" data-start="{" data-end="}">
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#af2f781ca85c2d92b001bb32bf4839f11"> 302</a></span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af2f781ca85c2d92b001bb32bf4839f11">event_rec</a>()</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> {</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> memset((EVENT_RECORD*)<span class="keyword">this</span>, 0, <span class="keyword">sizeof</span>(EVENT_RECORD));</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> }</div>
</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> </div>
<div class="foldopen" id="foldopen00312" data-start="{" data-end="}">
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#afd6e48f124743c9f5b0c576db2165787"> 312</a></span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#afd6e48f124743c9f5b0c576db2165787">event_rec</a>(_In_ <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a> &amp;other) : EVENT_RECORD(other)</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> {</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c">set_extended_data_internal</a>(other.ExtendedDataCount, other.ExtendedData);</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8">set_user_data_internal</a>(other.UserDataLength, other.UserData);</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> }</div>
</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> </div>
<div class="foldopen" id="foldopen00323" data-start="{" data-end="}">
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a73f9f035b70ce7c030e2c616d3f42e37"> 323</a></span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a73f9f035b70ce7c030e2c616d3f42e37">event_rec</a>(_In_ <span class="keyword">const</span> EVENT_RECORD &amp;other) : EVENT_RECORD(other)</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> {</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c">set_extended_data_internal</a>(other.ExtendedDataCount, other.ExtendedData);</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8">set_user_data_internal</a>(other.UserDataLength, other.UserData);</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> }</div>
</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> </div>
<div class="foldopen" id="foldopen00334" data-start="{" data-end="}">
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#ac3a21e4c1a4469e7b85fc235f65006ca"> 334</a></span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#ac3a21e4c1a4469e7b85fc235f65006ca">event_rec</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a>&amp;&amp; other) noexcept : EVENT_RECORD(other)</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> {</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> memset((EVENT_RECORD*)&amp;other, 0, <span class="keyword">sizeof</span>(EVENT_RECORD));</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> }</div>
</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> </div>
<div class="foldopen" id="foldopen00342" data-start="{" data-end="}">
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a2968045a00cf5994ffc2db1a7eb38601"> 342</a></span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a2968045a00cf5994ffc2db1a7eb38601">~event_rec</a>()</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> {</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordflow">if</span> (ExtendedData)</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">delete</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(ExtendedData);</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keywordflow">if</span> (UserData)</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keyword">delete</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(UserData);</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> }</div>
</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
<div class="foldopen" id="foldopen00356" data-start="{" data-end="}">
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3"> 356</a></span> <a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3">operator=</a>(_In_ <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a> &amp;other)</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> {</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> (EVENT_RECORD&amp;)*<span class="keyword">this</span> = other;</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c">set_extended_data_internal</a>(other.ExtendedDataCount, other.ExtendedData);</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8">set_user_data_internal</a>(other.UserDataLength, other.UserData);</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> }</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> </div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> }</div>
</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
<div class="foldopen" id="foldopen00372" data-start="{" data-end="}">
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875"> 372</a></span> <a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875">operator=</a>(_In_ <span class="keyword">const</span> EVENT_RECORD &amp;other)</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> {</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> (EVENT_RECORD&amp;)*<span class="keyword">this</span> = other;</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c">set_extended_data_internal</a>(other.ExtendedDataCount, other.ExtendedData);</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8">set_user_data_internal</a>(other.UserDataLength, other.UserData);</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> }</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> }</div>
</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="foldopen" id="foldopen00388" data-start="{" data-end="}">
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f"> 388</a></span> <a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__rec.html">event_rec</a>&amp;&amp; other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> {</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> (EVENT_RECORD&amp;)*<span class="keyword">this</span> = other;</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> memset((EVENT_RECORD*)&amp;other, 0, <span class="keyword">sizeof</span>(EVENT_RECORD));</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> }</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> </div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> }</div>
</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> </div>
<div class="foldopen" id="foldopen00404" data-start="{" data-end="}">
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#abfab939c3bb27839c3b591b9a62f9470"> 404</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#abfab939c3bb27839c3b591b9a62f9470">set_extended_data</a>(_In_ USHORT count, _In_count_(count) <span class="keyword">const</span> EVENT_HEADER_EXTENDED_DATA_ITEM *data)</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> {</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <span class="keywordflow">if</span> (ExtendedData)</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">delete</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(ExtendedData);</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c">set_extended_data_internal</a>(count, data);</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> }</div>
</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> </div>
<div class="foldopen" id="foldopen00418" data-start="{" data-end="}">
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a0df49a47cf45cb76003b85148d7d5098"> 418</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a0df49a47cf45cb76003b85148d7d5098">set_user_data</a>(_In_ USHORT size, _In_bytecount_(size) LPCVOID data)</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> {</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <span class="keywordflow">if</span> (UserData)</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="keyword">delete</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(UserData);</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> </div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8">set_user_data_internal</a>(size, data);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> }</div>
</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00433" data-start="{" data-end="}">
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c"> 433</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c">set_extended_data_internal</a>(_In_ USHORT count, _In_count_(count) <span class="keyword">const</span> EVENT_HEADER_EXTENDED_DATA_ITEM *data)</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> {</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">if</span> (count) {</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> assert(data);</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> </div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="comment">// Count the total required memory.</span></div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <span class="keywordtype">size_t</span> data_size = 0;</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; count; i++)</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> data_size += data[i].DataSize;</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <span class="comment">// Allocate memory for extended data.</span></div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> ExtendedData = <span class="keyword">reinterpret_cast&lt;</span>EVENT_HEADER_EXTENDED_DATA_ITEM*<span class="keyword">&gt;</span>(<span class="keyword">new</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>[<span class="keyword">sizeof</span>(EVENT_HEADER_EXTENDED_DATA_ITEM)*count + data_size]);</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> </div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> <span class="comment">// Bulk-copy extended data descriptors.</span></div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> memcpy(ExtendedData, data, <span class="keyword">sizeof</span>(EVENT_HEADER_EXTENDED_DATA_ITEM) * count);</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> </div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <span class="comment">// Copy the data.</span></div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ptr = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(ExtendedData + count);</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; count; i++) {</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keywordflow">if</span> (data[i].DataSize) {</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> memcpy(ptr, (<span class="keywordtype">void</span>*)(data[i].DataPtr), data[i].DataSize);</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> ExtendedData[i].DataPtr = (ULONGLONG)ptr;</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> ptr += data[i].DataSize;</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> ExtendedData[i].DataPtr = NULL;</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> }</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> ExtendedData = NULL;</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> </div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> ExtendedDataCount = count;</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> }</div>
</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> </div>
<div class="foldopen" id="foldopen00471" data-start="{" data-end="}">
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8"> 471</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8">set_user_data_internal</a>(_In_ USHORT size, _In_bytecount_(size) LPCVOID data)</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> {</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keywordflow">if</span> (size) {</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> assert(data);</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="comment">// Allocate memory for user data.</span></div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> UserData = <span class="keyword">new</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>[size];</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> </div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="comment">// Copy user data.</span></div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> memcpy(UserData, data, size);</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> UserData = NULL;</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> </div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> UserDataLength = size;</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> }</div>
</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> };</div>
</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> </div>
<div class="foldopen" id="foldopen00491" data-start="{" data-end="};">
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html"> 491</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;REGHANDLE, NULL&gt;</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> {</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a>, REGHANDLE, NULL)</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> </div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00501" data-start="{" data-end="}">
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ab219ea75734671f98fabbf41485e558b"> 501</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1event__provider.html#ab219ea75734671f98fabbf41485e558b">~event_provider</a>()</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> {</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <a class="code hl_function" href="classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1">free_internal</a>();</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> }</div>
</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> </div>
<div class="foldopen" id="foldopen00516" data-start="{" data-end="}">
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316"> 516</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316">create</a>(_In_ LPCGUID ProviderId)</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> {</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> ULONG ulRes = EventRegister(ProviderId, <a class="code hl_function" href="classwinstd_1_1event__provider.html#ac896e3a23b3f44ef0b1cb0ac6717e894">enable_callback</a>, <span class="keyword">this</span>, &amp;h);</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keywordflow">if</span> (ulRes == ERROR_SUCCESS)</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <a class="code hl_function" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">attach</a>(h);</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keywordflow">return</span> ulRes;</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> }</div>
</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> </div>
<div class="foldopen" id="foldopen00534" data-start="{" data-end="}">
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692"> 534</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692">write</a>(_In_ PCEVENT_DESCRIPTOR EventDescriptor)</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> {</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>);</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="keywordflow">return</span> EventWrite(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, EventDescriptor, 0, NULL);</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> }</div>
</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
<div class="foldopen" id="foldopen00549" data-start="{" data-end="}">
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#a570ec5977a37f490ddac7aaa047db5e9"> 549</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__provider.html#a570ec5977a37f490ddac7aaa047db5e9">write</a>(_In_ PCEVENT_DESCRIPTOR EventDescriptor, _In_ ULONG UserDataCount = 0, _In_opt_count_(UserDataCount) PEVENT_DATA_DESCRIPTOR UserData = NULL)</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> {</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>);</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">return</span> EventWrite(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, EventDescriptor, UserDataCount, UserData);</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> }</div>
</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> </div>
<div class="foldopen" id="foldopen00566" data-start="{" data-end="}">
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ad782c4daf27784c0762d09578362db08"> 566</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__provider.html#ad782c4daf27784c0762d09578362db08">write</a>(_In_ PCEVENT_DESCRIPTOR EventDescriptor, _In_ <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR param1, ...)</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> {</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>);</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> </div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="comment">// The first argument (param1) is outside of varadic argument list.</span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">if</span> (param1.Ptr == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Ptr &amp;&amp;</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> param1.Size == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Size &amp;&amp;</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> param1.Reserved == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Reserved)</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="keywordflow">return</span> EventWrite(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, EventDescriptor, 0, NULL);</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> </div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> va_list arg;</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> va_start(arg, param1);</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> va_list arg_start = arg;</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> std::vector&lt;EVENT_DATA_DESCRIPTOR&gt; params;</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> ULONG param_count;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> </div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="comment">// Preallocate array.</span></div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">for</span> (param_count = 1; param_count &lt; MAX_EVENT_DATA_DESCRIPTORS; param_count++) {</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR &amp;p = va_arg(arg, <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR);</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordflow">if</span> (p.Ptr == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Ptr &amp;&amp;</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> p.Size == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Size &amp;&amp;</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> p.Reserved == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Reserved) <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> }</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> params.reserve(param_count);</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> </div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="comment">// Copy parameters to array.</span></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> arg = arg_start;</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> params.push_back(param1);</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR &amp;p = va_arg(arg, <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR);</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">if</span> (p.Ptr == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Ptr &amp;&amp;</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> p.Size == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Size &amp;&amp;</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> p.Reserved == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Reserved) <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> params.push_back(p);</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> }</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> </div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> va_end(arg);</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span><span class="preprocessor">#pragma warning(disable: 28020)</span></div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <span class="keywordflow">return</span> EventWrite(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, EventDescriptor, param_count, params.data());</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> }</div>
</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> </div>
<div class="foldopen" id="foldopen00620" data-start="{" data-end="}">
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#aa956835d2f62705db20e6c82c07be7fe"> 620</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__provider.html#aa956835d2f62705db20e6c82c07be7fe">write</a>(_In_ PCEVENT_DESCRIPTOR EventDescriptor, _In_ va_list arg)</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> {</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>);</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> </div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> va_list arg_start = arg;</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> std::vector&lt;EVENT_DATA_DESCRIPTOR&gt; params;</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> ULONG param_count;</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> </div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> <span class="comment">// Preallocate array.</span></div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="keywordflow">for</span> (param_count = 0; param_count &lt; MAX_EVENT_DATA_DESCRIPTORS; param_count++) {</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR &amp;p = va_arg(arg, <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR);</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">if</span> (p.Ptr == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Ptr &amp;&amp;</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> p.Size == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Size &amp;&amp;</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> p.Reserved == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Reserved) <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> }</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> params.reserve(param_count);</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> </div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> <span class="comment">// Copy parameters to array.</span></div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> arg = arg_start;</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR &amp;p = va_arg(arg, <span class="keyword">const</span> EVENT_DATA_DESCRIPTOR);</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordflow">if</span> (p.Ptr == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Ptr &amp;&amp;</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> p.Size == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Size &amp;&amp;</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> p.Reserved == <a class="code hl_variable" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a>.Reserved) <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> params.push_back(p);</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> }</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> </div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span><span class="preprocessor">#pragma warning(disable: 28020)</span></div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <span class="keywordflow">return</span> EventWrite(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, EventDescriptor, param_count, params.data());</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> }</div>
</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> </div>
<div class="foldopen" id="foldopen00662" data-start="{" data-end="}">
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#a9063c2f40716779223fe618b70df0888"> 662</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__provider.html#a9063c2f40716779223fe618b70df0888">write</a>(_In_ UCHAR Level, _In_ ULONGLONG Keyword, _In_z_ _Printf_format_string_ PCWSTR String, ...)</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> {</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>);</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> </div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> std::wstring msg;</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> va_list arg;</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> </div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="comment">// Format message.</span></div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> va_start(arg, String);</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <a class="code hl_function" href="group___win_std_str_format.html#ga583555761f3d01787d5e5f0226472f4e">vsprintf</a>(msg, String, arg);</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> va_end(arg);</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> </div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="comment">// Write string event.</span></div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> <span class="keywordflow">return</span> EventWriteString(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, Level, Keyword, msg.c_str());</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> }</div>
</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> </div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00684" data-start="{" data-end="}">
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1"> 684</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> EventUnregister(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> }</div>
</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> </div>
<div class="foldopen" id="foldopen00694" data-start="{" data-end="}">
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ac896e3a23b3f44ef0b1cb0ac6717e894"> 694</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__provider.html#ac896e3a23b3f44ef0b1cb0ac6717e894">enable_callback</a>(_In_ LPCGUID SourceId, _In_ ULONG IsEnabled, _In_ UCHAR Level, _In_ ULONGLONG MatchAnyKeyword, _In_ ULONGLONG MatchAllKeyword, _In_opt_ PEVENT_FILTER_DESCRIPTOR FilterData)</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> {</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> UNREFERENCED_PARAMETER(SourceId);</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> UNREFERENCED_PARAMETER(IsEnabled);</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> UNREFERENCED_PARAMETER(Level);</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> UNREFERENCED_PARAMETER(MatchAnyKeyword);</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> UNREFERENCED_PARAMETER(MatchAllKeyword);</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> UNREFERENCED_PARAMETER(FilterData);</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> }</div>
</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> </div>
<div class="foldopen" id="foldopen00709" data-start="{" data-end="}">
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ae1bde7438a09da9e878e86890de50a07"> 709</a></span> <span class="keyword">static</span> VOID NTAPI <a class="code hl_function" href="classwinstd_1_1event__provider.html#ae1bde7438a09da9e878e86890de50a07">enable_callback</a>(_In_ LPCGUID SourceId, _In_ ULONG IsEnabled, _In_ UCHAR Level, _In_ ULONGLONG MatchAnyKeyword, _In_ ULONGLONG MatchAllKeyword, _In_opt_ PEVENT_FILTER_DESCRIPTOR FilterData, _Inout_opt_ PVOID CallbackContext)</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> {</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="keywordflow">if</span> (CallbackContext)</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <span class="keyword">static_cast&lt;</span><a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a>*<span class="keyword">&gt;</span>(CallbackContext)-&gt;<a class="code hl_function" href="classwinstd_1_1event__provider.html#ac896e3a23b3f44ef0b1cb0ac6717e894">enable_callback</a>(SourceId, IsEnabled, Level, MatchAnyKeyword, MatchAllKeyword, FilterData);</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> assert(0); <span class="comment">// Where did the &quot;this&quot; pointer get lost?</span></div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> }</div>
</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> };</div>
</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> </div>
<div class="foldopen" id="foldopen00721" data-start="{" data-end="};">
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html"> 721</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__session.html">event_session</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;TRACEHANDLE, 0&gt;</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> {</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1event__session.html">event_session</a>)</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> </div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00729" data-start="{" data-end="}">
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a24a43016accd86270c6a2ca6cf4934de"> 729</a></span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a24a43016accd86270c6a2ca6cf4934de">event_session</a>()</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> {</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> }</div>
</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> </div>
<div class="foldopen" id="foldopen00739" data-start="{" data-end="}">
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a21775ae7a7620d92be3b63d36bba757d"> 739</a></span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a21775ae7a7620d92be3b63d36bba757d">event_session</a>(_In_opt_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h, _In_ <span class="keyword">const</span> EVENT_TRACE_PROPERTIES *prop) :</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>(reinterpret_cast&lt;EVENT_TRACE_PROPERTIES*&gt;(new char[prop-&gt;Wnode.BufferSize])),</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>(h)</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> {</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> memcpy(<a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>.get(), prop, prop-&gt;Wnode.BufferSize);</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> }</div>
</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> </div>
<div class="foldopen" id="foldopen00751" data-start="{" data-end="}">
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a14581a7203ad6d89bf69903093cfe83c"> 751</a></span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a14581a7203ad6d89bf69903093cfe83c">event_session</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__session.html">event_session</a> &amp;&amp;other) noexcept :</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>(std::move(other.m_prop)),</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>(std::move(other))</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> {</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> }</div>
</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> </div>
<div class="foldopen" id="foldopen00762" data-start="{" data-end="}">
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a31fe172bd0ce3fb712924de08445476a"> 762</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a31fe172bd0ce3fb712924de08445476a">~event_session</a>()</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> {</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751">free_internal</a>();</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> }</div>
</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> </div>
<div class="foldopen" id="foldopen00773" data-start="{" data-end="}">
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228"> 773</a></span> <a class="code hl_class" href="classwinstd_1_1event__session.html">event_session</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__session.html">event_session</a> &amp;&amp;other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> {</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> (<a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;handle_type, 0&gt;</a>&amp;&amp;)*<span class="keyword">this</span> = std::move(other);</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a> = std::move(other.m_prop);</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> }</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> }</div>
</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> </div>
<div class="foldopen" id="foldopen00787" data-start="{" data-end="}">
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a1a37f33aed68839679f91bfe51e675d1"> 787</a></span> <span class="keyword">operator</span> <span class="keyword">const</span> EVENT_TRACE_PROPERTIES*() <span class="keyword">const</span></div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> {</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>.get();</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> }</div>
</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> </div>
<div class="foldopen" id="foldopen00797" data-start="{" data-end="}">
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a029e88ded7419ed152e398388f6a8578"> 797</a></span> LPCTSTR <a class="code hl_function" href="classwinstd_1_1event__session.html#a029e88ded7419ed152e398388f6a8578">name</a>()<span class="keyword"> const</span></div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> <span class="keyword">const</span> EVENT_TRACE_PROPERTIES *prop = <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>.get();</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>LPCTSTR<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span>LPCBYTE<span class="keyword">&gt;</span>(prop) + prop-&gt;LoggerNameOffset);</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> }</div>
</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> </div>
<div class="foldopen" id="foldopen00811" data-start="{" data-end="}">
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#afe43f725628f047dadc8e44f4a8028b7"> 811</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__session.html#afe43f725628f047dadc8e44f4a8028b7">attach</a>(_In_opt_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h, _In_ EVENT_TRACE_PROPERTIES *prop)</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> {</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> <a class="code hl_function" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">handle&lt;handle_type, 0&gt;::attach</a>(h);</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>.reset(prop);</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> }</div>
</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> </div>
<div class="foldopen" id="foldopen00826" data-start="{" data-end="}">
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50"> 826</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50">create</a>(_In_z_ LPCTSTR SessionName, _In_ <span class="keyword">const</span> EVENT_TRACE_PROPERTIES *Properties)</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> {</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> std::unique_ptr&lt;EVENT_TRACE_PROPERTIES&gt; prop(<span class="keyword">reinterpret_cast&lt;</span>EVENT_TRACE_PROPERTIES*<span class="keyword">&gt;</span>(<span class="keyword">new</span> <span class="keywordtype">char</span>[Properties-&gt;Wnode.BufferSize]));</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> memcpy(prop.get(), Properties, Properties-&gt;Wnode.BufferSize);</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> ULONG ulRes = StartTrace(&amp;h, SessionName, prop.get());</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <span class="keywordflow">if</span> (ulRes == ERROR_SUCCESS)</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> <a class="code hl_function" href="classwinstd_1_1event__session.html#afe43f725628f047dadc8e44f4a8028b7">attach</a>(h, prop.release());</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> <span class="keywordflow">return</span> ulRes;</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> }</div>
</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> </div>
<div class="foldopen" id="foldopen00846" data-start="{" data-end="}">
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#aa140384c61972ebabbf6489e8aa5700b"> 846</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__session.html#aa140384c61972ebabbf6489e8aa5700b">enable_trace</a>(_In_ LPCGUID ProviderId, _In_ UCHAR Level, _In_opt_ ULONGLONG MatchAnyKeyword = 0, _In_opt_ ULONGLONG MatchAllKeyword = 0, _In_opt_ ULONG EnableProperty = 0, _In_opt_ PEVENT_FILTER_DESCRIPTOR EnableFilterDesc = NULL)</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> {</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>);</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> <span class="keywordflow">return</span> EnableTraceEx(</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> ProviderId,</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> &amp;<a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>-&gt;Wnode.Guid,</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>,</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> EVENT_CONTROL_CODE_ENABLE_PROVIDER,</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> Level,</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> MatchAnyKeyword,</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> MatchAllKeyword,</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> EnableProperty,</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> EnableFilterDesc);</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> }</div>
</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> </div>
<div class="foldopen" id="foldopen00870" data-start="{" data-end="}">
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a86ff12521bc1c863ea685b8a689fd81b"> 870</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__session.html#a86ff12521bc1c863ea685b8a689fd81b">disable_trace</a>(_In_ LPCGUID ProviderId, _In_ UCHAR Level, _In_opt_ ULONGLONG MatchAnyKeyword = 0, _In_opt_ ULONGLONG MatchAllKeyword = 0, _In_opt_ ULONG EnableProperty = 0, _In_opt_ PEVENT_FILTER_DESCRIPTOR EnableFilterDesc = NULL)</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> {</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>);</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> <span class="keywordflow">return</span> EnableTraceEx(</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> ProviderId,</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> &amp;<a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>-&gt;Wnode.Guid,</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>,</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> EVENT_CONTROL_CODE_DISABLE_PROVIDER,</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> Level,</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> MatchAnyKeyword,</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> MatchAllKeyword,</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> EnableProperty,</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> EnableFilterDesc);</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> }</div>
</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> </div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00891" data-start="{" data-end="}">
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751"> 891</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> ControlTrace(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, <a class="code hl_function" href="classwinstd_1_1event__session.html#a029e88ded7419ed152e398388f6a8578">name</a>(), <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>.get(), EVENT_TRACE_CONTROL_STOP);</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> }</div>
</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> </div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc"> 897</a></span> std::unique_ptr&lt;EVENT_TRACE_PROPERTIES&gt; <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>; </div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> };</div>
</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> </div>
<div class="foldopen" id="foldopen00905" data-start="{" data-end="};">
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace.html"> 905</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__trace.html">event_trace</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE&gt;</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> {</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1event__trace.html">event_trace</a>, TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE)</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> </div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00915" data-start="{" data-end="}">
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace.html#ab8800a2c88f1b96d5134e7eac24ac582"> 915</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1event__trace.html#ab8800a2c88f1b96d5134e7eac24ac582">~event_trace</a>()</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> {</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> <a class="code hl_function" href="classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c">free_internal</a>();</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> }</div>
</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> </div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00927" data-start="{" data-end="}">
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c"> 927</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> CloseTrace(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> }</div>
</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> };</div>
</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> </div>
<div class="foldopen" id="foldopen00936" data-start="{" data-end="};">
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html"> 936</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__trace__enabler.html">event_trace_enabler</a></div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> {</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00944" data-start="{" data-end="}">
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a50ce2e4286dbfc133c7f4a4762b65a05"> 944</a></span> <a class="code hl_function" href="classwinstd_1_1event__trace__enabler.html#a50ce2e4286dbfc133c7f4a4762b65a05">event_trace_enabler</a>(</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> _In_opt_ LPCGUID SourceId,</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> _In_ TRACEHANDLE TraceHandle,</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> _In_ LPCGUID ProviderId,</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> _In_ UCHAR Level,</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> _In_opt_ ULONGLONG MatchAnyKeyword = 0,</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> _In_opt_ ULONGLONG MatchAllKeyword = 0,</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> _In_opt_ ULONG EnableProperty = 0,</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> _In_opt_ PEVENT_FILTER_DESCRIPTOR EnableFilterDesc = NULL) :</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>(ProviderId),</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a">m_source_id</a>(SourceId),</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>(TraceHandle),</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30">m_level</a>(Level),</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060">m_match_any_keyword</a>(MatchAnyKeyword),</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2">m_match_all_keyword</a>(MatchAllKeyword),</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>(EnableProperty),</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4">m_enable_filter_desc</a>(EnableFilterDesc)</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> {</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">m_status</a> = EnableTraceEx(</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>,</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a">m_source_id</a>,</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>,</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> EVENT_CONTROL_CODE_ENABLE_PROVIDER,</div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30">m_level</a>,</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060">m_match_any_keyword</a>,</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2">m_match_all_keyword</a>,</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>,</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4">m_enable_filter_desc</a>);</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> }</div>
</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> </div>
<div class="foldopen" id="foldopen00979" data-start="{" data-end="}">
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a8666ba08639a65fa01eb64c4855d68a3"> 979</a></span> <a class="code hl_function" href="classwinstd_1_1event__trace__enabler.html#a8666ba08639a65fa01eb64c4855d68a3">event_trace_enabler</a>(</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> _In_ <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__session.html">event_session</a> &amp;session,</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> _In_ LPCGUID ProviderId,</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> _In_ UCHAR Level,</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> _In_opt_ ULONGLONG MatchAnyKeyword = 0,</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> _In_opt_ ULONGLONG MatchAllKeyword = 0,</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> _In_opt_ ULONG EnableProperty = 0,</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> _In_opt_ PEVENT_FILTER_DESCRIPTOR EnableFilterDesc = NULL) :</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>(ProviderId),</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a">m_source_id</a>(&amp;((const EVENT_TRACE_PROPERTIES*)session)-&gt;Wnode.Guid),</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>(session),</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30">m_level</a>(Level),</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060">m_match_any_keyword</a>(MatchAnyKeyword),</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2">m_match_all_keyword</a>(MatchAllKeyword),</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>(EnableProperty),</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4">m_enable_filter_desc</a>(EnableFilterDesc)</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> {</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">m_status</a> = EnableTraceEx(</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>,</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a">m_source_id</a>,</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>,</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> EVENT_CONTROL_CODE_ENABLE_PROVIDER,</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30">m_level</a>,</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060">m_match_any_keyword</a>,</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2">m_match_all_keyword</a>,</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>,</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4">m_enable_filter_desc</a>);</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> }</div>
</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> </div>
<div class="foldopen" id="foldopen01013" data-start="{" data-end="}">
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a726b84e91002da1243d512c37a060293"> 1013</a></span> ULONG <a class="code hl_function" href="classwinstd_1_1event__trace__enabler.html#a726b84e91002da1243d512c37a060293">status</a>()<span class="keyword"> const</span></div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">m_status</a>;</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> }</div>
</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> </div>
<div class="foldopen" id="foldopen01023" data-start="{" data-end="}">
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a6be72a0a5dc8da579e26b74a1ac24a4f"> 1023</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1event__trace__enabler.html#a6be72a0a5dc8da579e26b74a1ac24a4f">~event_trace_enabler</a>()</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> {</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">m_status</a> == ERROR_SUCCESS)</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> EnableTraceEx(</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>,</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a">m_source_id</a>,</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>,</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> EVENT_CONTROL_CODE_DISABLE_PROVIDER,</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30">m_level</a>,</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060">m_match_any_keyword</a>,</div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2">m_match_all_keyword</a>,</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>,</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4">m_enable_filter_desc</a>);</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> }</div>
</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> </div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f"> 1039</a></span> ULONG <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">m_status</a>; </div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673"> 1040</a></span> LPCGUID <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>; </div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a"> 1041</a></span> LPCGUID <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a">m_source_id</a>; </div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909"> 1042</a></span> TRACEHANDLE <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>; </div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30"> 1043</a></span> UCHAR <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30">m_level</a>; </div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060"> 1044</a></span> ULONGLONG <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060">m_match_any_keyword</a>; </div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2"> 1045</a></span> ULONGLONG <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2">m_match_all_keyword</a>; </div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35"> 1046</a></span> ULONG <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>; </div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4"> 1047</a></span> PEVENT_FILTER_DESCRIPTOR <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4">m_enable_filter_desc</a>; </div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> };</div>
</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> </div>
<div class="foldopen" id="foldopen01055" data-start="{" data-end="};">
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html"> 1055</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a></div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> {</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen01061" data-start="{" data-end="}">
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a751244aeeeceb01401da27c5080fc590"> 1061</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto.html#a751244aeeeceb01401da27c5080fc590">event_fn_auto</a>(_In_ <a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a> &amp;ep, _In_ <span class="keyword">const</span> EVENT_DESCRIPTOR *event_cons, _In_ <span class="keyword">const</span> EVENT_DESCRIPTOR *event_dest, _In_z_ LPCSTR pszFnName) :</div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a>(ep),</div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a>(event_dest)</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> {</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> EventDataDescCreate(&amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a>, pszFnName, (ULONG)(strlen(pszFnName) + 1)*<span class="keyword">sizeof</span>(*pszFnName));</div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a>.<a class="code hl_function" href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692">write</a>(event_cons, 1, &amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a>);</div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> }</div>
</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> </div>
<div class="foldopen" id="foldopen01072" data-start="{" data-end="}">
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#aed0b955ff2db183f6667345925801b0b"> 1072</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto.html#aed0b955ff2db183f6667345925801b0b">event_fn_auto</a>(_In_ <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a> &amp;other) :</div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a>),</div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a>),</div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a>)</div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> {</div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> }</div>
</div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> </div>
<div class="foldopen" id="foldopen01082" data-start="{" data-end="}">
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a5c45c1de3b87f6547f6e76a80b80f500"> 1082</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto.html#a5c45c1de3b87f6547f6e76a80b80f500">event_fn_auto</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a> &amp;&amp;other) noexcept :</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a>(other.m_ep),</div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a>(other.m_event_dest),</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a>(std::move(other.m_fn_name))</div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> {</div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> other.m_event_dest = NULL;</div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> }</div>
</div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> </div>
<div class="foldopen" id="foldopen01093" data-start="{" data-end="}">
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a764a83cffe2ed2ae41e9d973073d5cb0"> 1093</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto.html#a764a83cffe2ed2ae41e9d973073d5cb0">~event_fn_auto</a>()</div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> {</div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a>)</div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a>.<a class="code hl_function" href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692">write</a>(<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a>, 1, &amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a>);</div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> }</div>
</div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> </div>
<div class="foldopen" id="foldopen01102" data-start="{" data-end="}">
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d"> 1102</a></span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d">operator=</a>(_In_ <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a> &amp;other)</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> {</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> assert(&amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a> == &amp;other.m_ep);</div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a> = other.m_event_dest;</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a> = other.m_fn_name;</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> }</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> </div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> }</div>
</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> </div>
<div class="foldopen" id="foldopen01116" data-start="{" data-end="}">
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949"> 1116</a></span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a> &amp;&amp;other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> {</div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> assert(&amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a> == &amp;other.m_ep);</div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a> = other.m_event_dest;</div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a> = std::move(other.m_fn_name);</div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> other.m_event_dest = NULL;</div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> }</div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> </div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> }</div>
</div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> </div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a"> 1129</a></span> <a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a> &amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a>; </div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f"> 1130</a></span> <span class="keyword">const</span> EVENT_DESCRIPTOR *<a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a>; </div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0"> 1131</a></span> EVENT_DATA_DESCRIPTOR <a class="code hl_variable" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a>; </div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> };</div>
</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> </div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div>
<div class="foldopen" id="foldopen01140" data-start="{" data-end="};">
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html"> 1140</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret</a></div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> {</div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen01146" data-start="{" data-end="}">
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a52fe971a33082d3652dd6d99378f17c5"> 1146</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto__ret.html#a52fe971a33082d3652dd6d99378f17c5">event_fn_auto_ret</a>(_In_ <a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a> &amp;ep, _In_ <span class="keyword">const</span> EVENT_DESCRIPTOR *event_cons, _In_ <span class="keyword">const</span> EVENT_DESCRIPTOR *event_dest, _In_z_ LPCSTR pszFnName, T &amp;result) :</div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>(ep),</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>(event_dest),</div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a>(result)</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> {</div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> EventDataDescCreate(<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a> + 0, pszFnName, (ULONG)(strlen(pszFnName) + 1)*<span class="keyword">sizeof</span>(*pszFnName));</div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>.<a class="code hl_function" href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692">write</a>(event_cons, 1, <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a>);</div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> }</div>
</div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> </div>
<div class="foldopen" id="foldopen01158" data-start="{" data-end="}">
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a0f656d3899f65afdaee9c651baf69bff"> 1158</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto__ret.html#a0f656d3899f65afdaee9c651baf69bff">event_fn_auto_ret</a>(_In_ <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret&lt;T&gt;</a> &amp;other) :</div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>),</div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>),</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a>)</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> {</div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a>[0] = other.m_desc[0];</div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> }</div>
</div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> </div>
<div class="foldopen" id="foldopen01169" data-start="{" data-end="}">
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#ac8b93b2bb498280707f795c03024d7d3"> 1169</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto__ret.html#ac8b93b2bb498280707f795c03024d7d3">event_fn_auto_ret</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret&lt;T&gt;</a> &amp;&amp;other) :</div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>),</div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>),</div>
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a>(other.<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a>)</div>
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span> {</div>
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a>[0] = std::move(other.m_desc[0]);</div>
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> other.m_event_dest = NULL;</div>
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> }</div>
</div>
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> </div>
<div class="foldopen" id="foldopen01181" data-start="{" data-end="}">
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a1bd1de5df10856a08187ad112992979f"> 1181</a></span> <a class="code hl_function" href="classwinstd_1_1event__fn__auto__ret.html#a1bd1de5df10856a08187ad112992979f">~event_fn_auto_ret</a>()</div>
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> {</div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>) {</div>
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span> EventDataDescCreate(<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a> + 1, &amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a>, <span class="keyword">sizeof</span>(T));</div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>.<a class="code hl_function" href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692">write</a>(<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>, 2, <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a>);</div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> }</div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> }</div>
</div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> </div>
<div class="foldopen" id="foldopen01192" data-start="{" data-end="}">
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9"> 1192</a></span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9">operator=</a>(_In_ <span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret&lt;T&gt;</a> &amp;other)</div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> {</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> assert(&amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a> == &amp;other.m_ep);</div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a> = other.m_event_dest;</div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a>[0] = other.m_desc[0];</div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> assert(&amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a> == &amp;other.m_result);</div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> }</div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> </div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> }</div>
</div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> </div>
<div class="foldopen" id="foldopen01207" data-start="{" data-end="}">
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69"> 1207</a></span> <a class="code hl_class" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret</a>&amp; <a class="code hl_function" href="classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret&lt;T&gt;</a> &amp;&amp;other)</div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> {</div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> assert(&amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a> == &amp;other.m_ep);</div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a> = other.m_event_dest;</div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a>[0] = std::move(other.m_desc[0]);</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> assert(&amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a> == &amp;other.m_result);</div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span> other.m_event_dest = NULL;</div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> }</div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> </div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span> }</div>
</div>
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span> </div>
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53"> 1221</a></span> <a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a> &amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">m_ep</a>; </div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700"> 1222</a></span> <span class="keyword">const</span> EVENT_DESCRIPTOR *<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">m_event_dest</a>; </div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf"> 1223</a></span> EVENT_DATA_DESCRIPTOR <a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">m_desc</a>[2]; </div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81"> 1224</a></span> T &amp;<a class="code hl_variable" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">m_result</a>; </div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> };</div>
</div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> </div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span>}</div>
<div class="ttc" id="aclasswinstd_1_1event__data_html"><div class="ttname"><a href="classwinstd_1_1event__data.html">winstd::event_data</a></div><div class="ttdoc">EVENT_DATA_DESCRIPTOR wrapper.</div><div class="ttdef"><b>Definition</b> ETW.h:118</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a0a53ee58077eed5bca18f146c34ced44"><div class="ttname"><a href="classwinstd_1_1event__data.html#a0a53ee58077eed5bca18f146c34ced44">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const char &amp;data)</div><div class="ttdoc">Construct class pointing to an char.</div><div class="ttdef"><b>Definition</b> ETW.h:138</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a0ac38aca75ec84f5265eb897fb3c7a7e"><div class="ttname"><a href="classwinstd_1_1event__data.html#a0ac38aca75ec84f5265eb897fb3c7a7e">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const wchar_t *data)</div><div class="ttdoc">Construct class pointing to a wide string.</div><div class="ttdef"><b>Definition</b> ETW.h:248</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a26563233e9507adbf183291974005eaf"><div class="ttname"><a href="classwinstd_1_1event__data.html#a26563233e9507adbf183291974005eaf">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const int &amp;data)</div><div class="ttdoc">Construct class pointing to an int.</div><div class="ttdef"><b>Definition</b> ETW.h:164</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a31af4a774845ec0f7db4267f573cd422"><div class="ttname"><a href="classwinstd_1_1event__data.html#a31af4a774845ec0f7db4267f573cd422">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const void *data, ULONG size)</div><div class="ttdoc">Construct class pointing to binary data.</div><div class="ttdef"><b>Definition</b> ETW.h:282</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a4d309bcda353b42ba1005b3c7b6f8dc1"><div class="ttname"><a href="classwinstd_1_1event__data.html#a4d309bcda353b42ba1005b3c7b6f8dc1">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const GUID &amp;data)</div><div class="ttdoc">Construct class pointing to a GUID.</div><div class="ttdef"><b>Definition</b> ETW.h:216</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a59b2ac8e1b681412ea0aa582b3028681"><div class="ttname"><a href="classwinstd_1_1event__data.html#a59b2ac8e1b681412ea0aa582b3028681">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const unsigned int &amp;data)</div><div class="ttdoc">Construct class pointing to an unsigned int.</div><div class="ttdef"><b>Definition</b> ETW.h:177</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a74be98ecad61265232c0752e0e823a8e"><div class="ttname"><a href="classwinstd_1_1event__data.html#a74be98ecad61265232c0752e0e823a8e">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const char *data)</div><div class="ttdoc">Construct class pointing to a string.</div><div class="ttdef"><b>Definition</b> ETW.h:229</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_a86447ba8727fe91c0de85b8f7835a4c1"><div class="ttname"><a href="classwinstd_1_1event__data.html#a86447ba8727fe91c0de85b8f7835a4c1">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const unsigned char &amp;data)</div><div class="ttdoc">Construct class pointing to an unsigned char.</div><div class="ttdef"><b>Definition</b> ETW.h:151</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_aa9741846e354b469b750db2ea982b12d"><div class="ttname"><a href="classwinstd_1_1event__data.html#aa9741846e354b469b750db2ea982b12d">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;data)</div><div class="ttdoc">Template to construct pointing to a std::basic_string&lt;&gt;.</div><div class="ttdef"><b>Definition</b> ETW.h:268</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_aba0a6535c84e9165b5ccdf943449e10c"><div class="ttname"><a href="classwinstd_1_1event__data.html#aba0a6535c84e9165b5ccdf943449e10c">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const unsigned long &amp;data)</div><div class="ttdoc">Construct class pointing to an unsigned long.</div><div class="ttdef"><b>Definition</b> ETW.h:203</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_acb4032673a3b2376eb0d62115bb37c4f"><div class="ttname"><a href="classwinstd_1_1event__data.html#acb4032673a3b2376eb0d62115bb37c4f">winstd::event_data::event_data</a></div><div class="ttdeci">event_data()</div><div class="ttdoc">Construct empty class.</div><div class="ttdef"><b>Definition</b> ETW.h:123</div></div>
<div class="ttc" id="aclasswinstd_1_1event__data_html_aef6715d8e3e68eac7b7bbceacb3aff93"><div class="ttname"><a href="classwinstd_1_1event__data.html#aef6715d8e3e68eac7b7bbceacb3aff93">winstd::event_data::event_data</a></div><div class="ttdeci">event_data(const long &amp;data)</div><div class="ttdoc">Construct class pointing to a long.</div><div class="ttdef"><b>Definition</b> ETW.h:190</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html">winstd::event_fn_auto_ret</a></div><div class="ttdoc">Helper template to write an event on entry/exit of scope with one parameter (typically result).</div><div class="ttdef"><b>Definition</b> ETW.h:1141</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a0f656d3899f65afdaee9c651baf69bff"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a0f656d3899f65afdaee9c651baf69bff">winstd::event_fn_auto_ret::event_fn_auto_ret</a></div><div class="ttdeci">event_fn_auto_ret(const event_fn_auto_ret&lt; T &gt; &amp;other)</div><div class="ttdoc">Copies the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1158</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a1bd1de5df10856a08187ad112992979f"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a1bd1de5df10856a08187ad112992979f">winstd::event_fn_auto_ret::~event_fn_auto_ret</a></div><div class="ttdeci">~event_fn_auto_ret()</div><div class="ttdoc">Writes the event_dest event.</div><div class="ttdef"><b>Definition</b> ETW.h:1181</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a23fa88c6a7aea86536cc0e4bee2746cf"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf">winstd::event_fn_auto_ret::m_desc</a></div><div class="ttdeci">EVENT_DATA_DESCRIPTOR m_desc[2]</div><div class="ttdoc">Function name and return value.</div><div class="ttdef"><b>Definition</b> ETW.h:1223</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a52a16bf54fa9fc800e7c18d3fd75fb53"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53">winstd::event_fn_auto_ret::m_ep</a></div><div class="ttdeci">event_provider &amp; m_ep</div><div class="ttdoc">Reference to event provider in use.</div><div class="ttdef"><b>Definition</b> ETW.h:1221</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a52fe971a33082d3652dd6d99378f17c5"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a52fe971a33082d3652dd6d99378f17c5">winstd::event_fn_auto_ret::event_fn_auto_ret</a></div><div class="ttdeci">event_fn_auto_ret(event_provider &amp;ep, const EVENT_DESCRIPTOR *event_cons, const EVENT_DESCRIPTOR *event_dest, LPCSTR pszFnName, T &amp;result)</div><div class="ttdoc">Writes the event_cons event.</div><div class="ttdef"><b>Definition</b> ETW.h:1146</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a69f1ae5c23f90aaa4da012b1eb0b8f81"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81">winstd::event_fn_auto_ret::m_result</a></div><div class="ttdeci">T &amp; m_result</div><div class="ttdoc">Function result.</div><div class="ttdef"><b>Definition</b> ETW.h:1224</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a6bb69bf1ac97231ef47c2aed99921bc9"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9">winstd::event_fn_auto_ret::operator=</a></div><div class="ttdeci">event_fn_auto_ret &amp; operator=(const event_fn_auto_ret&lt; T &gt; &amp;other)</div><div class="ttdoc">Copies the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1192</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_a8d168be3f57047c78fa329ff3eb2e700"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700">winstd::event_fn_auto_ret::m_event_dest</a></div><div class="ttdeci">const EVENT_DESCRIPTOR * m_event_dest</div><div class="ttdoc">Event descriptor at destruction.</div><div class="ttdef"><b>Definition</b> ETW.h:1222</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_ac8b93b2bb498280707f795c03024d7d3"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#ac8b93b2bb498280707f795c03024d7d3">winstd::event_fn_auto_ret::event_fn_auto_ret</a></div><div class="ttdeci">event_fn_auto_ret(event_fn_auto_ret&lt; T &gt; &amp;&amp;other)</div><div class="ttdoc">Moves the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1169</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto__ret_html_ade4fd767e5e743649480b93cd0a5ba69"><div class="ttname"><a href="classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69">winstd::event_fn_auto_ret::operator=</a></div><div class="ttdeci">event_fn_auto_ret &amp; operator=(event_fn_auto_ret&lt; T &gt; &amp;&amp;other)</div><div class="ttdoc">Moves the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1207</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></div><div class="ttdoc">Helper class to write an event on entry/exit of scope.</div><div class="ttdef"><b>Definition</b> ETW.h:1056</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_a03080fbd3201b899cce1ab5bb59dca2f"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">winstd::event_fn_auto::m_event_dest</a></div><div class="ttdeci">const EVENT_DESCRIPTOR * m_event_dest</div><div class="ttdoc">Event descriptor at destruction.</div><div class="ttdef"><b>Definition</b> ETW.h:1130</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_a5c45c1de3b87f6547f6e76a80b80f500"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#a5c45c1de3b87f6547f6e76a80b80f500">winstd::event_fn_auto::event_fn_auto</a></div><div class="ttdeci">event_fn_auto(event_fn_auto &amp;&amp;other) noexcept</div><div class="ttdoc">Moves the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1082</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_a751244aeeeceb01401da27c5080fc590"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#a751244aeeeceb01401da27c5080fc590">winstd::event_fn_auto::event_fn_auto</a></div><div class="ttdeci">event_fn_auto(event_provider &amp;ep, const EVENT_DESCRIPTOR *event_cons, const EVENT_DESCRIPTOR *event_dest, LPCSTR pszFnName)</div><div class="ttdoc">Writes the event_cons event.</div><div class="ttdef"><b>Definition</b> ETW.h:1061</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_a764a83cffe2ed2ae41e9d973073d5cb0"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#a764a83cffe2ed2ae41e9d973073d5cb0">winstd::event_fn_auto::~event_fn_auto</a></div><div class="ttdeci">~event_fn_auto()</div><div class="ttdoc">Writes the event_dest event.</div><div class="ttdef"><b>Definition</b> ETW.h:1093</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_ab64dd267c58d816b4ef5549e704a8949"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949">winstd::event_fn_auto::operator=</a></div><div class="ttdeci">event_fn_auto &amp; operator=(event_fn_auto &amp;&amp;other) noexcept</div><div class="ttdoc">Moves the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1116</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_acb8dddbdd22399d26d4c5db2998afc1d"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d">winstd::event_fn_auto::operator=</a></div><div class="ttdeci">event_fn_auto &amp; operator=(const event_fn_auto &amp;other)</div><div class="ttdoc">Copies the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1102</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_acbfdaed91d8a3aa3346d33d1a548457a"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">winstd::event_fn_auto::m_ep</a></div><div class="ttdeci">event_provider &amp; m_ep</div><div class="ttdoc">Reference to event provider in use.</div><div class="ttdef"><b>Definition</b> ETW.h:1129</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_ad17409fc9cdaa8b78a9f38e39e21a9f0"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">winstd::event_fn_auto::m_fn_name</a></div><div class="ttdeci">EVENT_DATA_DESCRIPTOR m_fn_name</div><div class="ttdoc">Function name.</div><div class="ttdef"><b>Definition</b> ETW.h:1131</div></div>
<div class="ttc" id="aclasswinstd_1_1event__fn__auto_html_aed0b955ff2db183f6667345925801b0b"><div class="ttname"><a href="classwinstd_1_1event__fn__auto.html#aed0b955ff2db183f6667345925801b0b">winstd::event_fn_auto::event_fn_auto</a></div><div class="ttdeci">event_fn_auto(const event_fn_auto &amp;other)</div><div class="ttdoc">Copies the object.</div><div class="ttdef"><b>Definition</b> ETW.h:1072</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html"><div class="ttname"><a href="classwinstd_1_1event__provider.html">winstd::event_provider</a></div><div class="ttdoc">ETW event provider.</div><div class="ttdef"><b>Definition</b> ETW.h:492</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_a068407834baa836c690b80a39a2d2692"><div class="ttname"><a href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692">winstd::event_provider::write</a></div><div class="ttdeci">ULONG write(PCEVENT_DESCRIPTOR EventDescriptor)</div><div class="ttdoc">Writes an event with no parameters.</div><div class="ttdef"><b>Definition</b> ETW.h:534</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_a570ec5977a37f490ddac7aaa047db5e9"><div class="ttname"><a href="classwinstd_1_1event__provider.html#a570ec5977a37f490ddac7aaa047db5e9">winstd::event_provider::write</a></div><div class="ttdeci">ULONG write(PCEVENT_DESCRIPTOR EventDescriptor, ULONG UserDataCount=0, PEVENT_DATA_DESCRIPTOR UserData=NULL)</div><div class="ttdoc">Writes an event with parameters stored in array.</div><div class="ttdef"><b>Definition</b> ETW.h:549</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_a9063c2f40716779223fe618b70df0888"><div class="ttname"><a href="classwinstd_1_1event__provider.html#a9063c2f40716779223fe618b70df0888">winstd::event_provider::write</a></div><div class="ttdeci">ULONG write(UCHAR Level, ULONGLONG Keyword, PCWSTR String,...)</div><div class="ttdoc">Writes a string event.</div><div class="ttdef"><b>Definition</b> ETW.h:662</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_aa956835d2f62705db20e6c82c07be7fe"><div class="ttname"><a href="classwinstd_1_1event__provider.html#aa956835d2f62705db20e6c82c07be7fe">winstd::event_provider::write</a></div><div class="ttdeci">ULONG write(PCEVENT_DESCRIPTOR EventDescriptor, va_list arg)</div><div class="ttdoc">Writes an event with variable number of parameters.</div><div class="ttdef"><b>Definition</b> ETW.h:620</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_ab219ea75734671f98fabbf41485e558b"><div class="ttname"><a href="classwinstd_1_1event__provider.html#ab219ea75734671f98fabbf41485e558b">winstd::event_provider::~event_provider</a></div><div class="ttdeci">virtual ~event_provider()</div><div class="ttdoc">Closes the event provider.</div><div class="ttdef"><b>Definition</b> ETW.h:501</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_ac896e3a23b3f44ef0b1cb0ac6717e894"><div class="ttname"><a href="classwinstd_1_1event__provider.html#ac896e3a23b3f44ef0b1cb0ac6717e894">winstd::event_provider::enable_callback</a></div><div class="ttdeci">virtual void enable_callback(LPCGUID SourceId, ULONG IsEnabled, UCHAR Level, ULONGLONG MatchAnyKeyword, ULONGLONG MatchAllKeyword, PEVENT_FILTER_DESCRIPTOR FilterData)</div><div class="ttdoc">Receive enable or disable notification requests.</div><div class="ttdef"><b>Definition</b> ETW.h:694</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_ad0d7ed652fe897a94f2ef198dd3f41a1"><div class="ttname"><a href="classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1">winstd::event_provider::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Releases the event provider.</div><div class="ttdef"><b>Definition</b> ETW.h:684</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_ad782c4daf27784c0762d09578362db08"><div class="ttname"><a href="classwinstd_1_1event__provider.html#ad782c4daf27784c0762d09578362db08">winstd::event_provider::write</a></div><div class="ttdeci">ULONG write(PCEVENT_DESCRIPTOR EventDescriptor, const EVENT_DATA_DESCRIPTOR param1,...)</div><div class="ttdoc">Writes an event with one or more parameter.</div><div class="ttdef"><b>Definition</b> ETW.h:566</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_ae1bde7438a09da9e878e86890de50a07"><div class="ttname"><a href="classwinstd_1_1event__provider.html#ae1bde7438a09da9e878e86890de50a07">winstd::event_provider::enable_callback</a></div><div class="ttdeci">static VOID NTAPI enable_callback(LPCGUID SourceId, ULONG IsEnabled, UCHAR Level, ULONGLONG MatchAnyKeyword, ULONGLONG MatchAllKeyword, PEVENT_FILTER_DESCRIPTOR FilterData, PVOID CallbackContext)</div><div class="ttdoc">Receive enable or disable notification requests.</div><div class="ttdef"><b>Definition</b> ETW.h:709</div></div>
<div class="ttc" id="aclasswinstd_1_1event__provider_html_aeb28bf6cc859920913e604b2d342f316"><div class="ttname"><a href="classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316">winstd::event_provider::create</a></div><div class="ttdeci">ULONG create(LPCGUID ProviderId)</div><div class="ttdoc">Registers the event provider.</div><div class="ttdef"><b>Definition</b> ETW.h:516</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html"><div class="ttname"><a href="classwinstd_1_1event__rec.html">winstd::event_rec</a></div><div class="ttdoc">EVENT_RECORD wrapper.</div><div class="ttdef"><b>Definition</b> ETW.h:297</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_a0c1c63cc3a3e2f83924aa9f21a298f6c"><div class="ttname"><a href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c">winstd::event_rec::set_extended_data_internal</a></div><div class="ttdeci">void set_extended_data_internal(USHORT count, const EVENT_HEADER_EXTENDED_DATA_ITEM *data)</div><div class="ttdoc">Sets event record extended data.</div><div class="ttdef"><b>Definition</b> ETW.h:433</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_a0df49a47cf45cb76003b85148d7d5098"><div class="ttname"><a href="classwinstd_1_1event__rec.html#a0df49a47cf45cb76003b85148d7d5098">winstd::event_rec::set_user_data</a></div><div class="ttdeci">void set_user_data(USHORT size, LPCVOID data)</div><div class="ttdoc">Sets event record user data.</div><div class="ttdef"><b>Definition</b> ETW.h:418</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_a22ab332b9c7e3c21e6107e909703da0f"><div class="ttname"><a href="classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f">winstd::event_rec::operator=</a></div><div class="ttdeci">event_rec &amp; operator=(event_rec &amp;&amp;other) noexcept</div><div class="ttdoc">Moves the event record.</div><div class="ttdef"><b>Definition</b> ETW.h:388</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_a2968045a00cf5994ffc2db1a7eb38601"><div class="ttname"><a href="classwinstd_1_1event__rec.html#a2968045a00cf5994ffc2db1a7eb38601">winstd::event_rec::~event_rec</a></div><div class="ttdeci">~event_rec()</div><div class="ttdoc">Destroys event record data and frees the allocated memory.</div><div class="ttdef"><b>Definition</b> ETW.h:342</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_a41f64986df27cea4fdaa8ee8ce2d3875"><div class="ttname"><a href="classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875">winstd::event_rec::operator=</a></div><div class="ttdeci">event_rec &amp; operator=(const EVENT_RECORD &amp;other)</div><div class="ttdoc">Copies an existing event record.</div><div class="ttdef"><b>Definition</b> ETW.h:372</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_a73f9f035b70ce7c030e2c616d3f42e37"><div class="ttname"><a href="classwinstd_1_1event__rec.html#a73f9f035b70ce7c030e2c616d3f42e37">winstd::event_rec::event_rec</a></div><div class="ttdeci">event_rec(const EVENT_RECORD &amp;other)</div><div class="ttdoc">Copies an existing event record.</div><div class="ttdef"><b>Definition</b> ETW.h:323</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_aa5287b5572575d440f881c1d8c17bac3"><div class="ttname"><a href="classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3">winstd::event_rec::operator=</a></div><div class="ttdeci">event_rec &amp; operator=(const event_rec &amp;other)</div><div class="ttdoc">Copies an existing event record.</div><div class="ttdef"><b>Definition</b> ETW.h:356</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_abfab939c3bb27839c3b591b9a62f9470"><div class="ttname"><a href="classwinstd_1_1event__rec.html#abfab939c3bb27839c3b591b9a62f9470">winstd::event_rec::set_extended_data</a></div><div class="ttdeci">void set_extended_data(USHORT count, const EVENT_HEADER_EXTENDED_DATA_ITEM *data)</div><div class="ttdoc">Sets event record extended data.</div><div class="ttdef"><b>Definition</b> ETW.h:404</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_ac3a21e4c1a4469e7b85fc235f65006ca"><div class="ttname"><a href="classwinstd_1_1event__rec.html#ac3a21e4c1a4469e7b85fc235f65006ca">winstd::event_rec::event_rec</a></div><div class="ttdeci">event_rec(event_rec &amp;&amp;other) noexcept</div><div class="ttdoc">Moves the event record.</div><div class="ttdef"><b>Definition</b> ETW.h:334</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_af2f781ca85c2d92b001bb32bf4839f11"><div class="ttname"><a href="classwinstd_1_1event__rec.html#af2f781ca85c2d92b001bb32bf4839f11">winstd::event_rec::event_rec</a></div><div class="ttdeci">event_rec()</div><div class="ttdoc">Constructs a blank event record.</div><div class="ttdef"><b>Definition</b> ETW.h:302</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_af71cc10ff1b9f9935c824b7c7a4130b8"><div class="ttname"><a href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8">winstd::event_rec::set_user_data_internal</a></div><div class="ttdeci">void set_user_data_internal(USHORT size, LPCVOID data)</div><div class="ttdoc">Sets event record user data.</div><div class="ttdef"><b>Definition</b> ETW.h:471</div></div>
<div class="ttc" id="aclasswinstd_1_1event__rec_html_afd6e48f124743c9f5b0c576db2165787"><div class="ttname"><a href="classwinstd_1_1event__rec.html#afd6e48f124743c9f5b0c576db2165787">winstd::event_rec::event_rec</a></div><div class="ttdeci">event_rec(const event_rec &amp;other)</div><div class="ttdoc">Copies an existing event record.</div><div class="ttdef"><b>Definition</b> ETW.h:312</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html"><div class="ttname"><a href="classwinstd_1_1event__session.html">winstd::event_session</a></div><div class="ttdoc">ETW session.</div><div class="ttdef"><b>Definition</b> ETW.h:722</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a029e88ded7419ed152e398388f6a8578"><div class="ttname"><a href="classwinstd_1_1event__session.html#a029e88ded7419ed152e398388f6a8578">winstd::event_session::name</a></div><div class="ttdeci">LPCTSTR name() const</div><div class="ttdoc">Gets session name.</div><div class="ttdef"><b>Definition</b> ETW.h:797</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a14581a7203ad6d89bf69903093cfe83c"><div class="ttname"><a href="classwinstd_1_1event__session.html#a14581a7203ad6d89bf69903093cfe83c">winstd::event_session::event_session</a></div><div class="ttdeci">event_session(event_session &amp;&amp;other) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition</b> ETW.h:751</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a21775ae7a7620d92be3b63d36bba757d"><div class="ttname"><a href="classwinstd_1_1event__session.html#a21775ae7a7620d92be3b63d36bba757d">winstd::event_session::event_session</a></div><div class="ttdeci">event_session(handle_type h, const EVENT_TRACE_PROPERTIES *prop)</div><div class="ttdoc">Initializes a new session with an already available object handle.</div><div class="ttdef"><b>Definition</b> ETW.h:739</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a24a43016accd86270c6a2ca6cf4934de"><div class="ttname"><a href="classwinstd_1_1event__session.html#a24a43016accd86270c6a2ca6cf4934de">winstd::event_session::event_session</a></div><div class="ttdeci">event_session()</div><div class="ttdoc">Initializes a new empty session.</div><div class="ttdef"><b>Definition</b> ETW.h:729</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a31fe172bd0ce3fb712924de08445476a"><div class="ttname"><a href="classwinstd_1_1event__session.html#a31fe172bd0ce3fb712924de08445476a">winstd::event_session::~event_session</a></div><div class="ttdeci">virtual ~event_session()</div><div class="ttdoc">Closes the session.</div><div class="ttdef"><b>Definition</b> ETW.h:762</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a4701ad4ae9d18e890ed4066473680751"><div class="ttname"><a href="classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751">winstd::event_session::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Releases the session.</div><div class="ttdef"><b>Definition</b> ETW.h:891</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a4e436a74c83a75aab21800bc9d954228"><div class="ttname"><a href="classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228">winstd::event_session::operator=</a></div><div class="ttdeci">event_session &amp; operator=(event_session &amp;&amp;other) noexcept</div><div class="ttdoc">Move assignment.</div><div class="ttdef"><b>Definition</b> ETW.h:773</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_a86ff12521bc1c863ea685b8a689fd81b"><div class="ttname"><a href="classwinstd_1_1event__session.html#a86ff12521bc1c863ea685b8a689fd81b">winstd::event_session::disable_trace</a></div><div class="ttdeci">ULONG disable_trace(LPCGUID ProviderId, UCHAR Level, ULONGLONG MatchAnyKeyword=0, ULONGLONG MatchAllKeyword=0, ULONG EnableProperty=0, PEVENT_FILTER_DESCRIPTOR EnableFilterDesc=NULL)</div><div class="ttdoc">Disables the specified event trace provider.</div><div class="ttdef"><b>Definition</b> ETW.h:870</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_aa140384c61972ebabbf6489e8aa5700b"><div class="ttname"><a href="classwinstd_1_1event__session.html#aa140384c61972ebabbf6489e8aa5700b">winstd::event_session::enable_trace</a></div><div class="ttdeci">ULONG enable_trace(LPCGUID ProviderId, UCHAR Level, ULONGLONG MatchAnyKeyword=0, ULONGLONG MatchAllKeyword=0, ULONG EnableProperty=0, PEVENT_FILTER_DESCRIPTOR EnableFilterDesc=NULL)</div><div class="ttdoc">Enables the specified event trace provider.</div><div class="ttdef"><b>Definition</b> ETW.h:846</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_ad2b5e63572d44c37dc3f4f64feefa3cc"><div class="ttname"><a href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">winstd::event_session::m_prop</a></div><div class="ttdeci">std::unique_ptr&lt; EVENT_TRACE_PROPERTIES &gt; m_prop</div><div class="ttdoc">Session properties.</div><div class="ttdef"><b>Definition</b> ETW.h:897</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_af75b790f98bc16ed94f1167fe4acdb50"><div class="ttname"><a href="classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50">winstd::event_session::create</a></div><div class="ttdeci">ULONG create(LPCTSTR SessionName, const EVENT_TRACE_PROPERTIES *Properties)</div><div class="ttdoc">Registers and starts an event tracing session.</div><div class="ttdef"><b>Definition</b> ETW.h:826</div></div>
<div class="ttc" id="aclasswinstd_1_1event__session_html_afe43f725628f047dadc8e44f4a8028b7"><div class="ttname"><a href="classwinstd_1_1event__session.html#afe43f725628f047dadc8e44f4a8028b7">winstd::event_session::attach</a></div><div class="ttdeci">void attach(handle_type h, EVENT_TRACE_PROPERTIES *prop)</div><div class="ttdoc">Sets a new session handle for the class.</div><div class="ttdef"><b>Definition</b> ETW.h:811</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html">winstd::event_trace_enabler</a></div><div class="ttdoc">Helper class to enable event provider in constructor and disables it in destructor.</div><div class="ttdef"><b>Definition</b> ETW.h:937</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a12535c295825c30360527f963a427e30"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30">winstd::event_trace_enabler::m_level</a></div><div class="ttdeci">UCHAR m_level</div><div class="ttdoc">Logging level.</div><div class="ttdef"><b>Definition</b> ETW.h:1043</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a358d20e2dbbc7dcaccbe8d3d303cc3c4"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4">winstd::event_trace_enabler::m_enable_filter_desc</a></div><div class="ttdeci">PEVENT_FILTER_DESCRIPTOR m_enable_filter_desc</div><div class="ttdoc">Event filter descriptor.</div><div class="ttdef"><b>Definition</b> ETW.h:1047</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a363083f0792e5bf5429576e6c40c4060"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060">winstd::event_trace_enabler::m_match_any_keyword</a></div><div class="ttdeci">ULONGLONG m_match_any_keyword</div><div class="ttdoc">Keyword match mask (any)</div><div class="ttdef"><b>Definition</b> ETW.h:1044</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a50ce2e4286dbfc133c7f4a4762b65a05"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a50ce2e4286dbfc133c7f4a4762b65a05">winstd::event_trace_enabler::event_trace_enabler</a></div><div class="ttdeci">event_trace_enabler(LPCGUID SourceId, TRACEHANDLE TraceHandle, LPCGUID ProviderId, UCHAR Level, ULONGLONG MatchAnyKeyword=0, ULONGLONG MatchAllKeyword=0, ULONG EnableProperty=0, PEVENT_FILTER_DESCRIPTOR EnableFilterDesc=NULL)</div><div class="ttdoc">Enables event trace.</div><div class="ttdef"><b>Definition</b> ETW.h:944</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a576839d3b1e1db676ea1175329b02c9f"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">winstd::event_trace_enabler::m_status</a></div><div class="ttdeci">ULONG m_status</div><div class="ttdoc">Result of EnableTraceEx call.</div><div class="ttdef"><b>Definition</b> ETW.h:1039</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a5ef48960265e3786fb94fe7f64587909"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909">winstd::event_trace_enabler::m_trace_handle</a></div><div class="ttdeci">TRACEHANDLE m_trace_handle</div><div class="ttdoc">Trace handle.</div><div class="ttdef"><b>Definition</b> ETW.h:1042</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a6be72a0a5dc8da579e26b74a1ac24a4f"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a6be72a0a5dc8da579e26b74a1ac24a4f">winstd::event_trace_enabler::~event_trace_enabler</a></div><div class="ttdeci">virtual ~event_trace_enabler()</div><div class="ttdoc">Disables event trace.</div><div class="ttdef"><b>Definition</b> ETW.h:1023</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a726b84e91002da1243d512c37a060293"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a726b84e91002da1243d512c37a060293">winstd::event_trace_enabler::status</a></div><div class="ttdeci">ULONG status() const</div><div class="ttdoc">Return result of EnableTraceEx() call.</div><div class="ttdef"><b>Definition</b> ETW.h:1013</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_a8666ba08639a65fa01eb64c4855d68a3"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#a8666ba08639a65fa01eb64c4855d68a3">winstd::event_trace_enabler::event_trace_enabler</a></div><div class="ttdeci">event_trace_enabler(const event_session &amp;session, LPCGUID ProviderId, UCHAR Level, ULONGLONG MatchAnyKeyword=0, ULONGLONG MatchAllKeyword=0, ULONG EnableProperty=0, PEVENT_FILTER_DESCRIPTOR EnableFilterDesc=NULL)</div><div class="ttdoc">Enables event trace.</div><div class="ttdef"><b>Definition</b> ETW.h:979</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_acb40cf714473e7c8a193f4f9cef8d1b2"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2">winstd::event_trace_enabler::m_match_all_keyword</a></div><div class="ttdeci">ULONGLONG m_match_all_keyword</div><div class="ttdoc">Keyword match mask (all)</div><div class="ttdef"><b>Definition</b> ETW.h:1045</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_ade3cdf424d3a4eb85f0fdc554dfcf673"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673">winstd::event_trace_enabler::m_provider_id</a></div><div class="ttdeci">LPCGUID m_provider_id</div><div class="ttdoc">Provider ID.</div><div class="ttdef"><b>Definition</b> ETW.h:1040</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_ae6269d27652b694435656906784e3a7a"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a">winstd::event_trace_enabler::m_source_id</a></div><div class="ttdeci">LPCGUID m_source_id</div><div class="ttdoc">Session ID.</div><div class="ttdef"><b>Definition</b> ETW.h:1041</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace__enabler_html_afa99363e0122b520280f1e4a6f0a6c35"><div class="ttname"><a href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">winstd::event_trace_enabler::m_enable_property</a></div><div class="ttdeci">ULONG m_enable_property</div><div class="ttdoc">Enable property.</div><div class="ttdef"><b>Definition</b> ETW.h:1046</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace_html"><div class="ttname"><a href="classwinstd_1_1event__trace.html">winstd::event_trace</a></div><div class="ttdoc">ETW trace.</div><div class="ttdef"><b>Definition</b> ETW.h:906</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace_html_ab8800a2c88f1b96d5134e7eac24ac582"><div class="ttname"><a href="classwinstd_1_1event__trace.html#ab8800a2c88f1b96d5134e7eac24ac582">winstd::event_trace::~event_trace</a></div><div class="ttdeci">virtual ~event_trace()</div><div class="ttdoc">Closes the trace.</div><div class="ttdef"><b>Definition</b> ETW.h:915</div></div>
<div class="ttc" id="aclasswinstd_1_1event__trace_html_ad8ef9b0616775c44e911d9db4676b19c"><div class="ttname"><a href="classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c">winstd::event_trace::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Closes the trace.</div><div class="ttdef"><b>Definition</b> ETW.h:927</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html"><div class="ttname"><a href="classwinstd_1_1handle.html">winstd::handle</a></div><div class="ttdoc">Base abstract template class to support generic object handle keeping.</div><div class="ttdef"><b>Definition</b> Common.h:1020</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a1b9c4f9529c9efa7d16dec8bab3b00e4"><div class="ttname"><a href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">winstd::handle&lt; TRACEHANDLE, 0 &gt;::handle</a></div><div class="ttdeci">handle() noexcept</div><div class="ttdoc">Initializes a new class instance with the object handle set to INVAL.</div><div class="ttdef"><b>Definition</b> Common.h:1035</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; REGHANDLE, NULL &gt;::handle_type</a></div><div class="ttdeci">REGHANDLE handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition</b> Common.h:1025</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; REGHANDLE, NULL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition</b> Common.h:1274</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ab2a98042c3b88fda687e34d370756f11"><div class="ttname"><a href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">winstd::handle&lt; REGHANDLE, NULL &gt;::attach</a></div><div class="ttdeci">void attach(handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition</b> Common.h:1237</div></div>
<div class="ttc" id="agroup___win_std_e_t_w_a_p_i_html_ga318eb7aaef74aa01c86039520360e68a"><div class="ttname"><a href="group___win_std_e_t_w_a_p_i.html#ga318eb7aaef74aa01c86039520360e68a">TdhGetEventInformation</a></div><div class="ttdeci">static ULONG TdhGetEventInformation(PEVENT_RECORD pEvent, ULONG TdhContextCount, PTDH_CONTEXT pTdhContext, std::unique_ptr&lt; TRACE_EVENT_INFO &gt; &amp;info)</div><div class="ttdoc">Retrieves metadata about an event.</div><div class="ttdef"><b>Definition</b> ETW.h:58</div></div>
<div class="ttc" id="agroup___win_std_e_t_w_a_p_i_html_ga565b3185a93009edbb2d248227106bec"><div class="ttname"><a href="group___win_std_e_t_w_a_p_i.html#ga565b3185a93009edbb2d248227106bec">TdhGetProperty</a></div><div class="ttdeci">static ULONG TdhGetProperty(PEVENT_RECORD pEvent, ULONG TdhContextCount, PTDH_CONTEXT pTdhContext, ULONG PropertyDataCount, PPROPERTY_DATA_DESCRIPTOR pPropertyData, std::vector&lt; _Ty, _Ax &gt; &amp;aData)</div><div class="ttdoc">Retrieves a property value from the event data.</div><div class="ttdef"><b>Definition</b> ETW.h:33</div></div>
<div class="ttc" id="agroup___win_std_e_t_w_a_p_i_html_ga6726748672bf351a0910292e0ef23290"><div class="ttname"><a href="group___win_std_e_t_w_a_p_i.html#ga6726748672bf351a0910292e0ef23290">TdhGetEventMapInformation</a></div><div class="ttdeci">static ULONG TdhGetEventMapInformation(PEVENT_RECORD pEvent, LPWSTR pMapName, std::unique_ptr&lt; EVENT_MAP_INFO &gt; &amp;info)</div><div class="ttdoc">Retrieves information about the event map contained in the event.</div><div class="ttdef"><b>Definition</b> ETW.h:84</div></div>
<div class="ttc" id="agroup___win_std_e_t_w_a_p_i_html_gaf7a60dde62523f074610aef107bd5d9d"><div class="ttname"><a href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d">winstd::blank_event_data</a></div><div class="ttdeci">static const event_data blank_event_data</div><div class="ttdoc">Blank event data used as terminator.</div><div class="ttdef"><b>Definition</b> ETW.h:291</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga11254c72ad33a6e0f5de31db708f784c"><div class="ttname"><a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a></div><div class="ttdeci">#define WINSTD_NONCOPYABLE(C)</div><div class="ttdoc">Declares a class as non-copyable.</div><div class="ttdef"><b>Definition</b> Common.h:67</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga3ca39107a61bbcd05f901898ec584986"><div class="ttname"><a href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a></div><div class="ttdeci">#define WINSTD_STACK_BUFFER_BYTES</div><div class="ttdoc">Size of the stack buffer in bytes used for initial system function call.</div><div class="ttdef"><b>Definition</b> Common.h:94</div></div>
<div class="ttc" id="agroup___win_std_str_format_html_ga583555761f3d01787d5e5f0226472f4e"><div class="ttname"><a href="group___win_std_str_format.html#ga583555761f3d01787d5e5f0226472f4e">vsprintf</a></div><div class="ttdeci">static int vsprintf(std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;str, const _Elem *format, va_list arg)</div><div class="ttdoc">Formats string using printf().</div><div class="ttdef"><b>Definition</b> Common.h:288</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga51471bfe41853b66ac0f44df97cfaaa6"><div class="ttname"><a href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, T, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition</b> Common.h:164</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; REGHANDLE, NULL &gt;::invalid</a></div><div class="ttdeci">static const REGHANDLE invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition</b> Common.h:1030</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 8 2023 20:31:29 for WinStd by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>