<div class="content"><p> </p><p>The EvtRpcGetChannelList (Opnum 19) method is used to
enumerate the set of available channels.</p><dl>
<dd>
<div><pre> error_status_t EvtRpcGetChannelList(
   /* [in] RPC_BINDING_HANDLE binding, {the binding handle will be generated by MIDL} */
   [in] DWORD flags,
   [out] DWORD* numChannelPaths,
   [out, size_is(,*numChannelPaths), range(0, MAX_RPC_CHANNEL_COUNT), string] 
     LPWSTR** channelPaths
 );
</pre></div>
</dd></dl><p><b>binding: </b>An RPC binding handle as specified in
section <span><a href="1285c318-9f8c-4c6a-a963-7999557bf8d8" data-linktype="relative-path">2.2.21</a></span>.</p><p><b>flags: </b>A 32-bit unsigned integer that MUST be
set to zero when sent and MAY be ignored on receipt.<a id="Appendix_A_Target_37"></a><a aria-label="Product behavior note 37" href="65f22d62-5f0f-4306-85c4-50fb9e77075b#Appendix_A_37" data-linktype="relative-path">&lt;37&gt;</a></p><p><b>numChannelPaths: </b> A pointer to a 32-bit
unsigned integer that contains the number of <span><a href="c14b1cf5-ec9b-47c8-9b8a-9cc08c80fbbc" data-linktype="relative-path">channel names</a></span>.</p><p><b>channelPaths: </b>A pointer to an array of strings
that contain all the channel names.</p><p><b>Return Values: </b> The method MUST return ERROR_SUCCESS
(0x00000000) on success; otherwise, it MUST return an implementation-specific
nonzero value as specified in <span><a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a></span>.</p><p>In response to this request from the client, the server MUST
verify that the caller has read access to the channel list and MUST fail the
method with the error ERROR_ACCESS_DENIED (0x00000005) if the caller does not
have read access. To perform the access check, the server SHOULD first determine
the identity of the caller. Information determining the identity of the caller
for the purpose of performing an access check is specified in <span><a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a></span>
section <span><a href="../ms-rpce/326c9de1-4602-4d78-848d-8b4e11e6ed80" data-linktype="relative-path">3.2.3.4.2</a></span>.
Then, if the client specifies a channel, the server SHOULD read the channel&#39;s
access property (as specified in section <span><a href="f5ae9a61-6f5e-4751-965e-394349c7d950" data-linktype="relative-path">3.1.4.21</a></span>) as the
security descriptor string. Next, the server SHOULD be able to perform the
write and clear access check using the Access Check algorithm (as specified in <span><a href="../ms-dtyp/cca27429-5689-4a16-b2b4-9325d93e4ba2" data-linktype="relative-path">[MS-DTYP]</a></span>
section <span><a href="../ms-dtyp/4f1bbcbb-814a-4c70-a11e-2a5b8779a6f9" data-linktype="relative-path">2.5.3.2</a></span>).
</p><p>If the above check succeeds, the server MUST return a list
of channel name strings. The server SHOULD enumerate all the channels in its
channel table (section <span><a href="8f10cb24-8c8d-4dca-b5dc-ee28706c5b78" data-linktype="relative-path">3.1.1.5</a></span>) and read
out the channel name strings as the result for the out parameter <i>channelPaths</i>.
Meanwhile, the value pointed to by <i>numChannelPaths</i> SHOULD be set to the
number of channel name strings in the server channel table. The server SHOULD
only fail the method due to shortage of memory in which case the server SHOULD
return ERROR_OUTOFMEMORY (0x0000000E). The server MUST NOT update its state.</p><p>The server MUST return a value indicating success or failure
for this operation.</p></div>