WinStd/_e_t_w_8h_source.html

997 lines
201 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">
<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.3"/>
<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">Additional templates and function helpers for Microsoft Windows using Standard C++ classes</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_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">
<a href="_e_t_w_8h.html">Go to the documentation of this file.</a><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-2022 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="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;<a class="code" href="_common_8h.html">Common.h</a>&quot;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;assert.h&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;evntprov.h&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;evntcons.h&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;tdh.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</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="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#ga565b3185a93009edbb2d248227106bec"> 37</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="l00038" name="l00038"></a><span class="lineno"> 38</span>{</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> ULONG ulSize, ulResult;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Query property size.</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> ulResult = TdhGetPropertySize(pEvent, TdhContextCount, pTdhContext, PropertyDataCount, pPropertyData, &amp;ulSize);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">if</span> (ulResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (ulSize) {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Query property value.</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> aData.resize((ulSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</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>LPBYTE<span class="keyword">&gt;</span>(aData.data()));</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Property value size is zero.</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> aData.clear();</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> ulResult;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span>}</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#ga318eb7aaef74aa01c86039520360e68a"> 62</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="l00063" name="l00063"></a><span class="lineno"> 63</span>{</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</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="l00065" name="l00065"></a><span class="lineno"> 65</span> ULONG ulSize = <span class="keyword">sizeof</span>(szBuffer), ulResult;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</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="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (ulResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</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="l00072" name="l00072"></a><span class="lineno"> 72</span> memcpy(info.get(), szBuffer, ulSize);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ulResult == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Create buffer on heap and retry.</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</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="l00077" name="l00077"></a><span class="lineno"> 77</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="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> ulResult;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>}</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#ga6726748672bf351a0910292e0ef23290"> 88</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="l00089" name="l00089"></a><span class="lineno"> 89</span>{</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</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="l00091" name="l00091"></a><span class="lineno"> 91</span> ULONG ulSize = <span class="keyword">sizeof</span>(szBuffer), ulResult;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</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="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">if</span> (ulResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</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="l00098" name="l00098"></a><span class="lineno"> 98</span> memcpy(info.get(), szBuffer, ulSize);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ulResult == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// Create buffer on heap and retry.</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</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="l00103" name="l00103"></a><span class="lineno"> 103</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="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">return</span> ulResult;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>}</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>{</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html"> 121</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="l00122" name="l00122"></a><span class="lineno"> 122</span> {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#acb4032673a3b2376eb0d62115bb37c4f"> 127</a></span> <a class="code hl_function" href="classwinstd_1_1event__data.html#acb4032673a3b2376eb0d62115bb37c4f">event_data</a>()</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> Ptr = 0;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> Size = 0;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> Reserved = (ULONG)-1; <span class="comment">// Used for varadic argument terminator.</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> }</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</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="l00142" name="l00142"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a0a53ee58077eed5bca18f146c34ced44"> 142</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="l00143" name="l00143"></a><span class="lineno"> 143</span> {</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</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="l00155" name="l00155"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a86447ba8727fe91c0de85b8f7835a4c1"> 155</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="l00156" name="l00156"></a><span class="lineno"> 156</span> {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> }</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</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="l00168" name="l00168"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a26563233e9507adbf183291974005eaf"> 168</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="l00169" name="l00169"></a><span class="lineno"> 169</span> {</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> }</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</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="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a59b2ac8e1b681412ea0aa582b3028681"> 181</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="l00182" name="l00182"></a><span class="lineno"> 182</span> {</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> }</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</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="l00194" name="l00194"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#aef6715d8e3e68eac7b7bbceacb3aff93"> 194</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="l00195" name="l00195"></a><span class="lineno"> 195</span> {</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> }</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</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="l00207" name="l00207"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#aba0a6535c84e9165b5ccdf943449e10c"> 207</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="l00208" name="l00208"></a><span class="lineno"> 208</span> {</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> }</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</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="l00220" name="l00220"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a4d309bcda353b42ba1005b3c7b6f8dc1"> 220</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="l00221" name="l00221"></a><span class="lineno"> 221</span> {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> EventDataDescCreate(<span class="keyword">this</span>, &amp;data, (ULONG)(<span class="keyword">sizeof</span>(data)));</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</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="l00233" name="l00233"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a74be98ecad61265232c0752e0e823a8e"> 233</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="l00234" name="l00234"></a><span class="lineno"> 234</span> {</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">if</span> (data)</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> EventDataDescCreate(<span class="keyword">this</span>, data, (ULONG)((strlen(data) + 1) * <span class="keyword">sizeof</span>(*data)));</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</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="l00239" name="l00239"></a><span class="lineno"> 239</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="l00240" name="l00240"></a><span class="lineno"> 240</span> EventDataDescCreate(<span class="keyword">this</span>, null, <span class="keyword">sizeof</span>(null));</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> }</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> }</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</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="l00252" name="l00252"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a0ac38aca75ec84f5265eb897fb3c7a7e"> 252</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="l00253" name="l00253"></a><span class="lineno"> 253</span> {</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">if</span> (data)</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> EventDataDescCreate(<span class="keyword">this</span>, data, (ULONG)((wcslen(data) + 1) * <span class="keyword">sizeof</span>(*data)));</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</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="l00258" name="l00258"></a><span class="lineno"> 258</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="l00259" name="l00259"></a><span class="lineno"> 259</span> EventDataDescCreate(<span class="keyword">this</span>, null, <span class="keyword">sizeof</span>(null));</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> }</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> }</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</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="l00271" name="l00271"></a><span class="lineno"> 271</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="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#aa9741846e354b469b750db2ea982b12d"> 272</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="l00273" name="l00273"></a><span class="lineno"> 273</span> {</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</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="l00275" name="l00275"></a><span class="lineno"> 275</span> }</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</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="l00286" name="l00286"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__data.html#a31af4a774845ec0f7db4267f573cd422"> 286</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="l00287" name="l00287"></a><span class="lineno"> 287</span> {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> EventDataDescCreate(<span class="keyword">this</span>, data, size);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> }</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> };</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> </div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"><a class="line" href="group___win_std_e_t_w_a_p_i.html#gaf7a60dde62523f074610aef107bd5d9d"> 295</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="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html"> 300</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="l00301" name="l00301"></a><span class="lineno"> 301</span> {</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#af2f781ca85c2d92b001bb32bf4839f11"> 306</a></span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#af2f781ca85c2d92b001bb32bf4839f11">event_rec</a>()</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> {</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> memset((EVENT_RECORD*)<span class="keyword">this</span>, 0, <span class="keyword">sizeof</span>(EVENT_RECORD));</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> }</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> </div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#afd6e48f124743c9f5b0c576db2165787"> 316</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="l00317" name="l00317"></a><span class="lineno"> 317</span> {</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</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="l00319" name="l00319"></a><span class="lineno"> 319</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="l00320" name="l00320"></a><span class="lineno"> 320</span> }</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a73f9f035b70ce7c030e2c616d3f42e37"> 327</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="l00328" name="l00328"></a><span class="lineno"> 328</span> {</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</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="l00330" name="l00330"></a><span class="lineno"> 330</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="l00331" name="l00331"></a><span class="lineno"> 331</span> }</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#ac3a21e4c1a4469e7b85fc235f65006ca"> 338</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="l00339" name="l00339"></a><span class="lineno"> 339</span> {</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> memset((EVENT_RECORD*)&amp;other, 0, <span class="keyword">sizeof</span>(EVENT_RECORD));</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> }</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a2968045a00cf5994ffc2db1a7eb38601"> 346</a></span> <a class="code hl_function" href="classwinstd_1_1event__rec.html#a2968045a00cf5994ffc2db1a7eb38601">~event_rec</a>()</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> {</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keywordflow">if</span> (ExtendedData)</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</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="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">if</span> (UserData)</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</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="l00353" name="l00353"></a><span class="lineno"> 353</span> }</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> </div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3"> 360</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="l00361" name="l00361"></a><span class="lineno"> 361</span> {</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> (EVENT_RECORD&amp;)*<span class="keyword">this</span> = other;</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</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="l00365" name="l00365"></a><span class="lineno"> 365</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="l00366" name="l00366"></a><span class="lineno"> 366</span> }</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> }</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> </div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875"> 376</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="l00377" name="l00377"></a><span class="lineno"> 377</span> {</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> (EVENT_RECORD&amp;)*<span class="keyword">this</span> = other;</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</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="l00381" name="l00381"></a><span class="lineno"> 381</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="l00382" name="l00382"></a><span class="lineno"> 382</span> }</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> </div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> }</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> </div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f"> 392</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="l00393" name="l00393"></a><span class="lineno"> 393</span> {</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> (EVENT_RECORD&amp;)*<span class="keyword">this</span> = other;</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> memset((EVENT_RECORD*)&amp;other, 0, <span class="keyword">sizeof</span>(EVENT_RECORD));</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> }</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> }</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> </div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#abfab939c3bb27839c3b591b9a62f9470"> 408</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="l00409" name="l00409"></a><span class="lineno"> 409</span> {</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <span class="keywordflow">if</span> (ExtendedData)</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</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="l00412" name="l00412"></a><span class="lineno"> 412</span> </div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</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="l00414" name="l00414"></a><span class="lineno"> 414</span> }</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a0df49a47cf45cb76003b85148d7d5098"> 422</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="l00423" name="l00423"></a><span class="lineno"> 423</span> {</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> <span class="keywordflow">if</span> (UserData)</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</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="l00426" name="l00426"></a><span class="lineno"> 426</span> </div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</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="l00428" name="l00428"></a><span class="lineno"> 428</span> }</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#a0c1c63cc3a3e2f83924aa9f21a298f6c"> 437</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="l00438" name="l00438"></a><span class="lineno"> 438</span> {</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <span class="keywordflow">if</span> (count) {</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> assert(data);</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <span class="comment">// Count the total required memory.</span></div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <span class="keywordtype">size_t</span> data_size = 0;</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; count; i++)</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> data_size += data[i].DataSize;</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> </div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="comment">// Allocate memory for extended data.</span></div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</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="l00449" name="l00449"></a><span class="lineno"> 449</span> </div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// Bulk-copy extended data descriptors.</span></div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> memcpy(ExtendedData, data, <span class="keyword">sizeof</span>(EVENT_HEADER_EXTENDED_DATA_ITEM) * count);</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> </div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> <span class="comment">// Copy the data.</span></div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</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="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; count; i++) {</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keywordflow">if</span> (data[i].DataSize) {</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> memcpy(ptr, (<span class="keywordtype">void</span>*)(data[i].DataPtr), data[i].DataSize);</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> ExtendedData[i].DataPtr = (ULONGLONG)ptr;</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> ptr += data[i].DataSize;</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> ExtendedData[i].DataPtr = NULL;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> ExtendedData = NULL;</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> </div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> ExtendedDataCount = count;</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> }</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> </div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__rec.html#af71cc10ff1b9f9935c824b7c7a4130b8"> 475</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="l00476" name="l00476"></a><span class="lineno"> 476</span> {</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keywordflow">if</span> (size) {</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> assert(data);</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> </div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <span class="comment">// Allocate memory for user data.</span></div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> UserData = <span class="keyword">new</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>[size];</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <span class="comment">// Copy user data.</span></div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> memcpy(UserData, data, size);</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> UserData = NULL;</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> </div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> UserDataLength = size;</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> }</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> };</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> </div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html"> 495</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="l00496" name="l00496"></a><span class="lineno"> 496</span> {</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1event__provider.html">event_provider</a>, NULL)</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> </div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ab219ea75734671f98fabbf41485e558b"> 505</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="l00506" name="l00506"></a><span class="lineno"> 506</span> {</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</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="l00508" name="l00508"></a><span class="lineno"> 508</span> <a class="code hl_function" href="classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1">free_internal</a>();</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> }</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> </div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316"> 520</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="l00521" name="l00521"></a><span class="lineno"> 521</span> {</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</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="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">if</span> (ulRes == ERROR_SUCCESS)</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <a class="code hl_function" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">attach</a>(h);</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <span class="keywordflow">return</span> ulRes;</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> }</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> </div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#a068407834baa836c690b80a39a2d2692"> 538</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="l00539" name="l00539"></a><span class="lineno"> 539</span> {</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</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="l00541" name="l00541"></a><span class="lineno"> 541</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="l00542" name="l00542"></a><span class="lineno"> 542</span> }</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> </div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#a570ec5977a37f490ddac7aaa047db5e9"> 553</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="l00554" name="l00554"></a><span class="lineno"> 554</span> {</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</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="l00556" name="l00556"></a><span class="lineno"> 556</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="l00557" name="l00557"></a><span class="lineno"> 557</span> }</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> </div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ad782c4daf27784c0762d09578362db08"> 570</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="l00571" name="l00571"></a><span class="lineno"> 571</span> {</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</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="l00573" name="l00573"></a><span class="lineno"> 573</span> </div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="comment">// The first argument (param1) is outside of varadic argument list.</span></div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</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="l00576" name="l00576"></a><span class="lineno"> 576</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="l00577" name="l00577"></a><span class="lineno"> 577</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="l00578" name="l00578"></a><span class="lineno"> 578</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="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> va_list arg;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> va_start(arg, param1);</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> va_list arg_start = arg;</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> std::vector&lt;EVENT_DATA_DESCRIPTOR&gt; params;</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> ULONG param_count;</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> </div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="comment">// Preallocate array.</span></div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keywordflow">for</span> (param_count = 1; param_count &lt; MAX_EVENT_DATA_DESCRIPTORS; param_count++) {</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</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="l00589" name="l00589"></a><span class="lineno"> 589</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="l00590" name="l00590"></a><span class="lineno"> 590</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="l00591" name="l00591"></a><span class="lineno"> 591</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="l00592" name="l00592"></a><span class="lineno"> 592</span> }</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> params.reserve(param_count);</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> </div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="comment">// Copy parameters to array.</span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> arg = arg_start;</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> params.push_back(param1);</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</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="l00600" name="l00600"></a><span class="lineno"> 600</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="l00601" name="l00601"></a><span class="lineno"> 601</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="l00602" name="l00602"></a><span class="lineno"> 602</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="l00603" name="l00603"></a><span class="lineno"> 603</span> params.push_back(p);</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> }</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> </div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> va_end(arg);</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span><span class="preprocessor">#pragma warning(disable: 28020)</span></div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</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="l00610" name="l00610"></a><span class="lineno"> 610</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> }</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> </div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#aa956835d2f62705db20e6c82c07be7fe"> 624</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="l00625" name="l00625"></a><span class="lineno"> 625</span> {</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</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="l00627" name="l00627"></a><span class="lineno"> 627</span> </div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> va_list arg_start = arg;</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> std::vector&lt;EVENT_DATA_DESCRIPTOR&gt; params;</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> ULONG param_count;</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> </div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="comment">// Preallocate array.</span></div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> <span class="keywordflow">for</span> (param_count = 0; param_count &lt; MAX_EVENT_DATA_DESCRIPTORS; param_count++) {</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</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="l00635" name="l00635"></a><span class="lineno"> 635</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="l00636" name="l00636"></a><span class="lineno"> 636</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="l00637" name="l00637"></a><span class="lineno"> 637</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="l00638" name="l00638"></a><span class="lineno"> 638</span> }</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> params.reserve(param_count);</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> </div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="comment">// Copy parameters to array.</span></div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> arg = arg_start;</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</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="l00645" name="l00645"></a><span class="lineno"> 645</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="l00646" name="l00646"></a><span class="lineno"> 646</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="l00647" name="l00647"></a><span class="lineno"> 647</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="l00648" name="l00648"></a><span class="lineno"> 648</span> params.push_back(p);</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> }</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> </div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span><span class="preprocessor">#pragma warning(disable: 28020)</span></div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</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="l00654" name="l00654"></a><span class="lineno"> 654</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> }</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> </div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#a9063c2f40716779223fe618b70df0888"> 666</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="l00667" name="l00667"></a><span class="lineno"> 667</span> {</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</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="l00669" name="l00669"></a><span class="lineno"> 669</span> </div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> std::wstring msg;</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> va_list arg;</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> </div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> <span class="comment">// Format message.</span></div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> va_start(arg, String);</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</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="l00676" name="l00676"></a><span class="lineno"> 676</span> va_end(arg);</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="comment">// Write string event.</span></div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</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="l00680" name="l00680"></a><span class="lineno"> 680</span> }</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> </div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1"> 688</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="l00689" name="l00689"></a><span class="lineno"> 689</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> EventUnregister(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> }</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> </div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ac896e3a23b3f44ef0b1cb0ac6717e894"> 698</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="l00699" name="l00699"></a><span class="lineno"> 699</span> {</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> UNREFERENCED_PARAMETER(SourceId);</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> UNREFERENCED_PARAMETER(IsEnabled);</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> UNREFERENCED_PARAMETER(Level);</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> UNREFERENCED_PARAMETER(MatchAnyKeyword);</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> UNREFERENCED_PARAMETER(MatchAllKeyword);</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> UNREFERENCED_PARAMETER(FilterData);</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> }</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> </div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__provider.html#ae1bde7438a09da9e878e86890de50a07"> 713</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="l00714" name="l00714"></a><span class="lineno"> 714</span> {</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <span class="keywordflow">if</span> (CallbackContext)</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</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="l00717" name="l00717"></a><span class="lineno"> 717</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> assert(0); <span class="comment">// Where did the &quot;this&quot; pointer get lost?</span></div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> }</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> };</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> </div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html"> 725</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="l00726" name="l00726"></a><span class="lineno"> 726</span> {</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</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="l00728" name="l00728"></a><span class="lineno"> 728</span> </div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a24a43016accd86270c6a2ca6cf4934de"> 733</a></span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a24a43016accd86270c6a2ca6cf4934de">event_session</a>()</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> {</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> }</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> </div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a21775ae7a7620d92be3b63d36bba757d"> 743</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="l00744" name="l00744"></a><span class="lineno"> 744</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="l00745" name="l00745"></a><span class="lineno"> 745</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>(h)</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> {</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</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="l00748" name="l00748"></a><span class="lineno"> 748</span> }</div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> </div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a14581a7203ad6d89bf69903093cfe83c"> 755</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="l00756" name="l00756"></a><span class="lineno"> 756</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="l00757" name="l00757"></a><span class="lineno"> 757</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>(std::move(other))</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> {</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> }</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> </div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a31fe172bd0ce3fb712924de08445476a"> 766</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="l00767" name="l00767"></a><span class="lineno"> 767</span> {</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</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="l00769" name="l00769"></a><span class="lineno"> 769</span> <a class="code hl_function" href="classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751">free_internal</a>();</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> }</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> </div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228"> 777</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="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">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</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="l00781" name="l00781"></a><span class="lineno"> 781</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="l00782" name="l00782"></a><span class="lineno"> 782</span> }</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> }</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> </div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a1a37f33aed68839679f91bfe51e675d1"> 791</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="l00792" name="l00792"></a><span class="lineno"> 792</span> {</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</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="l00794" name="l00794"></a><span class="lineno"> 794</span> }</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> </div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a029e88ded7419ed152e398388f6a8578"> 801</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="l00802" name="l00802"></a><span class="lineno"> 802</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</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="l00804" name="l00804"></a><span class="lineno"> 804</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><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(prop) + prop-&gt;LoggerNameOffset);</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> }</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> </div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#afe43f725628f047dadc8e44f4a8028b7"> 815</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="l00816" name="l00816"></a><span class="lineno"> 816</span> {</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</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="l00818" name="l00818"></a><span class="lineno"> 818</span> <a class="code hl_variable" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc">m_prop</a>.reset(prop);</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> }</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> </div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50"> 830</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="l00831" name="l00831"></a><span class="lineno"> 831</span> {</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</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="l00834" name="l00834"></a><span class="lineno"> 834</span> memcpy(prop.get(), Properties, Properties-&gt;Wnode.BufferSize);</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> ULONG ulRes = StartTrace(&amp;h, SessionName, prop.get());</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> <span class="keywordflow">if</span> (ulRes == ERROR_SUCCESS)</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <a class="code hl_function" href="classwinstd_1_1event__session.html#afe43f725628f047dadc8e44f4a8028b7">attach</a>(h, prop.release());</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> <span class="keywordflow">return</span> ulRes;</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> }</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> </div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#aa140384c61972ebabbf6489e8aa5700b"> 850</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="l00851" name="l00851"></a><span class="lineno"> 851</span> {</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</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="l00853" name="l00853"></a><span class="lineno"> 853</span> <span class="keywordflow">return</span> EnableTraceEx(</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> ProviderId,</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</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="l00856" name="l00856"></a><span class="lineno"> 856</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>,</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> EVENT_CONTROL_CODE_ENABLE_PROVIDER,</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> Level,</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> MatchAnyKeyword,</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> MatchAllKeyword,</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> EnableProperty,</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> EnableFilterDesc);</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> }</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> </div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a86ff12521bc1c863ea685b8a689fd81b"> 874</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="l00875" name="l00875"></a><span class="lineno"> 875</span> {</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</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="l00877" name="l00877"></a><span class="lineno"> 877</span> <span class="keywordflow">return</span> EnableTraceEx(</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> ProviderId,</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</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="l00880" name="l00880"></a><span class="lineno"> 880</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>,</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> EVENT_CONTROL_CODE_DISABLE_PROVIDER,</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> Level,</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> MatchAnyKeyword,</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> MatchAllKeyword,</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> EnableProperty,</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> EnableFilterDesc);</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> }</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> </div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751"> 895</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="l00896" name="l00896"></a><span class="lineno"> 896</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</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="l00898" name="l00898"></a><span class="lineno"> 898</span> }</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> </div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__session.html#ad2b5e63572d44c37dc3f4f64feefa3cc"> 901</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="l00902" name="l00902"></a><span class="lineno"> 902</span> };</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> </div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace.html"> 909</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="l00910" name="l00910"></a><span class="lineno"> 910</span> {</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1event__trace.html">event_trace</a>, INVALID_PROCESSTRACE_HANDLE)</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> </div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace.html#ab8800a2c88f1b96d5134e7eac24ac582"> 919</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="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="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="l00922" name="l00922"></a><span class="lineno"> 922</span> <a class="code hl_function" href="classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c">free_internal</a>();</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> }</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> </div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c"> 931</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="l00932" name="l00932"></a><span class="lineno"> 932</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> CloseTrace(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> }</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> };</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> </div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html"> 940</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="l00941" name="l00941"></a><span class="lineno"> 941</span> {</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a50ce2e4286dbfc133c7f4a4762b65a05"> 948</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="l00949" name="l00949"></a><span class="lineno"> 949</span> _In_opt_ LPCGUID SourceId,</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> _In_ TRACEHANDLE TraceHandle,</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> _In_ LPCGUID ProviderId,</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> _In_ UCHAR Level,</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> _In_opt_ ULONGLONG MatchAnyKeyword = 0,</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> _In_opt_ ULONGLONG MatchAllKeyword = 0,</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> _In_opt_ ULONG EnableProperty = 0,</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> _In_opt_ PEVENT_FILTER_DESCRIPTOR EnableFilterDesc = NULL) :</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#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>(ProviderId),</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#ae6269d27652b694435656906784e3a7a">m_source_id</a>(SourceId),</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#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>(TraceHandle),</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#a12535c295825c30360527f963a427e30">m_level</a>(Level),</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</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="l00962" name="l00962"></a><span class="lineno"> 962</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="l00963" name="l00963"></a><span class="lineno"> 963</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="l00964" name="l00964"></a><span class="lineno"> 964</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="l00965" name="l00965"></a><span class="lineno"> 965</span> {</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">m_status</a> = EnableTraceEx(</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#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</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#ae6269d27652b694435656906784e3a7a">m_source_id</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#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>,</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> EVENT_CONTROL_CODE_ENABLE_PROVIDER,</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#a12535c295825c30360527f963a427e30">m_level</a>,</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</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="l00973" name="l00973"></a><span class="lineno"> 973</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="l00974" name="l00974"></a><span class="lineno"> 974</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>,</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</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="l00976" name="l00976"></a><span class="lineno"> 976</span> }</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> </div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a8666ba08639a65fa01eb64c4855d68a3"> 983</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="l00984" name="l00984"></a><span class="lineno"> 984</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="l00985" name="l00985"></a><span class="lineno"> 985</span> _In_ LPCGUID ProviderId,</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> _In_ UCHAR Level,</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> _In_opt_ ULONGLONG MatchAnyKeyword = 0,</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> _In_opt_ ULONGLONG MatchAllKeyword = 0,</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> _In_opt_ ULONG EnableProperty = 0,</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> _In_opt_ PEVENT_FILTER_DESCRIPTOR EnableFilterDesc = NULL) :</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#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</a>(ProviderId),</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#ae6269d27652b694435656906784e3a7a">m_source_id</a>(&amp;((const EVENT_TRACE_PROPERTIES*)session)-&gt;Wnode.Guid),</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#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>(session),</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#a12535c295825c30360527f963a427e30">m_level</a>(Level),</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</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="l00996" name="l00996"></a><span class="lineno"> 996</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="l00997" name="l00997"></a><span class="lineno"> 997</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="l00998" name="l00998"></a><span class="lineno"> 998</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="l00999" name="l00999"></a><span class="lineno"> 999</span> {</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f">m_status</a> = EnableTraceEx(</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#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</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#ae6269d27652b694435656906784e3a7a">m_source_id</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#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>,</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> EVENT_CONTROL_CODE_ENABLE_PROVIDER,</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#a12535c295825c30360527f963a427e30">m_level</a>,</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</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="l01007" name="l01007"></a><span class="lineno"> 1007</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="l01008" name="l01008"></a><span class="lineno"> 1008</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>,</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</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="l01010" name="l01010"></a><span class="lineno"> 1010</span> }</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> </div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a726b84e91002da1243d512c37a060293"> 1017</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="l01018" name="l01018"></a><span class="lineno"> 1018</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</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="l01020" name="l01020"></a><span class="lineno"> 1020</span> }</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> </div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a6be72a0a5dc8da579e26b74a1ac24a4f"> 1027</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="l01028" name="l01028"></a><span class="lineno"> 1028</span> {</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</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="l01030" name="l01030"></a><span class="lineno"> 1030</span> EnableTraceEx(</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#ade3cdf424d3a4eb85f0fdc554dfcf673">m_provider_id</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#ae6269d27652b694435656906784e3a7a">m_source_id</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#a5ef48960265e3786fb94fe7f64587909">m_trace_handle</a>,</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> EVENT_CONTROL_CODE_DISABLE_PROVIDER,</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#a12535c295825c30360527f963a427e30">m_level</a>,</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</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="l01037" name="l01037"></a><span class="lineno"> 1037</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="l01038" name="l01038"></a><span class="lineno"> 1038</span> <a class="code hl_variable" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35">m_enable_property</a>,</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</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="l01040" name="l01040"></a><span class="lineno"> 1040</span> }</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> </div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a576839d3b1e1db676ea1175329b02c9f"> 1043</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="l01044" name="l01044"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#ade3cdf424d3a4eb85f0fdc554dfcf673"> 1044</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="l01045" name="l01045"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#ae6269d27652b694435656906784e3a7a"> 1045</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="l01046" name="l01046"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a5ef48960265e3786fb94fe7f64587909"> 1046</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="l01047" name="l01047"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a12535c295825c30360527f963a427e30"> 1047</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="l01048" name="l01048"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a363083f0792e5bf5429576e6c40c4060"> 1048</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="l01049" name="l01049"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#acb40cf714473e7c8a193f4f9cef8d1b2"> 1049</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="l01050" name="l01050"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#afa99363e0122b520280f1e4a6f0a6c35"> 1050</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="l01051" name="l01051"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__trace__enabler.html#a358d20e2dbbc7dcaccbe8d3d303cc3c4"> 1051</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="l01052" name="l01052"></a><span class="lineno"> 1052</span> };</div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> </div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html"> 1059</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="l01060" name="l01060"></a><span class="lineno"> 1060</span> {</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a751244aeeeceb01401da27c5080fc590"> 1065</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="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>(ep),</div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</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="l01068" name="l01068"></a><span class="lineno"> 1068</span> {</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</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="l01070" name="l01070"></a><span class="lineno"> 1070</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="l01071" name="l01071"></a><span class="lineno"> 1071</span> }</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> </div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#aed0b955ff2db183f6667345925801b0b"> 1076</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="l01077" name="l01077"></a><span class="lineno"> 1077</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="l01078" name="l01078"></a><span class="lineno"> 1078</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="l01079" name="l01079"></a><span class="lineno"> 1079</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="l01080" name="l01080"></a><span class="lineno"> 1080</span> {</div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> }</div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> </div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a5c45c1de3b87f6547f6e76a80b80f500"> 1086</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="l01087" name="l01087"></a><span class="lineno"> 1087</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="l01088" name="l01088"></a><span class="lineno"> 1088</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="l01089" name="l01089"></a><span class="lineno"> 1089</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="l01090" name="l01090"></a><span class="lineno"> 1090</span> {</div>
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> other.m_event_dest = NULL;</div>
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> }</div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> </div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a764a83cffe2ed2ae41e9d973073d5cb0"> 1097</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="l01098" name="l01098"></a><span class="lineno"> 1098</span> {</div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</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="l01100" name="l01100"></a><span class="lineno"> 1100</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="l01101" name="l01101"></a><span class="lineno"> 1101</span> }</div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> </div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d"> 1106</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="l01107" name="l01107"></a><span class="lineno"> 1107</span> {</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</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="l01110" name="l01110"></a><span class="lineno"> 1110</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="l01111" name="l01111"></a><span class="lineno"> 1111</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="l01112" name="l01112"></a><span class="lineno"> 1112</span> }</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> </div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> }</div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> </div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949"> 1120</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="l01121" name="l01121"></a><span class="lineno"> 1121</span> {</div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</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="l01124" name="l01124"></a><span class="lineno"> 1124</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="l01125" name="l01125"></a><span class="lineno"> 1125</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="l01126" name="l01126"></a><span class="lineno"> 1126</span> other.m_event_dest = NULL;</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> </div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> }</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> </div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a"> 1133</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="l01134" name="l01134"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f"> 1134</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="l01135" name="l01135"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0"> 1135</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="l01136" name="l01136"></a><span class="lineno"> 1136</span> };</div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> </div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html"> 1144</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="l01145" name="l01145"></a><span class="lineno"> 1145</span> {</div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a52fe971a33082d3652dd6d99378f17c5"> 1150</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="l01151" name="l01151"></a><span class="lineno"> 1151</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="l01152" name="l01152"></a><span class="lineno"> 1152</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="l01153" name="l01153"></a><span class="lineno"> 1153</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="l01154" name="l01154"></a><span class="lineno"> 1154</span> {</div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</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="l01156" name="l01156"></a><span class="lineno"> 1156</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="l01157" name="l01157"></a><span class="lineno"> 1157</span> }</div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> </div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a0f656d3899f65afdaee9c651baf69bff"> 1162</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="l01163" name="l01163"></a><span class="lineno"> 1163</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="l01164" name="l01164"></a><span class="lineno"> 1164</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="l01165" name="l01165"></a><span class="lineno"> 1165</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="l01166" name="l01166"></a><span class="lineno"> 1166</span> {</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</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="l01168" name="l01168"></a><span class="lineno"> 1168</span> }</div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> </div>
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#ac8b93b2bb498280707f795c03024d7d3"> 1173</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="l01174" name="l01174"></a><span class="lineno"> 1174</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="l01175" name="l01175"></a><span class="lineno"> 1175</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="l01176" name="l01176"></a><span class="lineno"> 1176</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="l01177" name="l01177"></a><span class="lineno"> 1177</span> {</div>
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</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="l01179" name="l01179"></a><span class="lineno"> 1179</span> other.m_event_dest = NULL;</div>
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> }</div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> </div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a1bd1de5df10856a08187ad112992979f"> 1185</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="l01186" name="l01186"></a><span class="lineno"> 1186</span> {</div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</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="l01188" name="l01188"></a><span class="lineno"> 1188</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="l01189" name="l01189"></a><span class="lineno"> 1189</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="l01190" name="l01190"></a><span class="lineno"> 1190</span> }</div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> }</div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> </div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9"> 1196</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="l01197" name="l01197"></a><span class="lineno"> 1197</span> {</div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</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="l01200" name="l01200"></a><span class="lineno"> 1200</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="l01201" name="l01201"></a><span class="lineno"> 1201</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="l01202" name="l01202"></a><span class="lineno"> 1202</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="l01203" name="l01203"></a><span class="lineno"> 1203</span> }</div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> </div>
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span> }</div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span> </div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69"> 1211</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="l01212" name="l01212"></a><span class="lineno"> 1212</span> {</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</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="l01215" name="l01215"></a><span class="lineno"> 1215</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="l01216" name="l01216"></a><span class="lineno"> 1216</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="l01217" name="l01217"></a><span class="lineno"> 1217</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="l01218" name="l01218"></a><span class="lineno"> 1218</span> other.m_event_dest = NULL;</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> </div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> }</div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> </div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a52a16bf54fa9fc800e7c18d3fd75fb53"> 1225</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="l01226" name="l01226"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a8d168be3f57047c78fa329ff3eb2e700"> 1226</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="l01227" name="l01227"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a23fa88c6a7aea86536cc0e4bee2746cf"> 1227</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="l01228" name="l01228"></a><span class="lineno"><a class="line" href="classwinstd_1_1event__fn__auto__ret.html#a69f1ae5c23f90aaa4da012b1eb0b8f81"> 1228</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="l01229" name="l01229"></a><span class="lineno"> 1229</span> };</div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> </div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span>}</div>
<div class="ttc" id="a_common_8h_html"><div class="ttname"><a href="_common_8h.html">Common.h</a></div><div class="ttdoc">General API.</div></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:122</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:142</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:252</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:168</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:286</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:220</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:181</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:233</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:155</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:272</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:207</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:127</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:194</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:1145</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:1162</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:1185</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:1227</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:1225</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:1150</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:1228</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:1196</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:1226</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:1173</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:1211</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:1060</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:1134</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:1086</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:1065</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:1097</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:1120</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:1106</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:1133</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:1135</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:1076</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:496</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:538</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:553</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:666</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:624</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:505</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:698</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:688</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:570</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:713</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:520</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:301</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:437</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:422</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:392</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:346</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:376</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:327</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:360</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:408</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:338</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:306</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:475</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:316</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:726</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">Auto-typecasting operator.</div><div class="ttdef"><b>Definition:</b> ETW.h:801</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:755</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:743</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:733</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:766</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:895</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:777</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:874</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:850</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:901</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:830</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:815</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:941</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:1047</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:1051</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:1048</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:948</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:1043</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:1046</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:1027</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:1017</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:983</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:1049</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:1044</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:1045</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:1050</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:910</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:919</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:931</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:615</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:630</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:620</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:866</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:829</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:62</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:37</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:88</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:295</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:74</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:101</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:259</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga419efffd12b5c96abc8a275ba375ca60"><div class="ttname"><a href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, 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:171</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:625</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 7 2022 11:58:55 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.3
</small></address>
</body>
</html>