<div class="content"><p> </p><p>The EvtRpcGetPublisherList (Opnum 22) method is used by a
client to get the list of publishers.</p><dl>
<dd>
<div><pre> error_status_t EvtRpcGetPublisherList(
   /* [in] RPC_BINDING_HANDLE binding, {the binding handle will be generated by MIDL} */
   [in] DWORD flags,
   [out] DWORD* numPublisherIds,
   [out, size_is(,*numPublisherIds), range(0, MAX_RPC_PUBLISHER_COUNT), string] 
     LPWSTR** publisherIds
 );
</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_45"></a><a aria-label="Product behavior note 45" href="65f22d62-5f0f-4306-85c4-50fb9e77075b#Appendix_A_45" data-linktype="relative-path">&lt;45&gt;</a></p><p><b>numPublisherIds: </b>A pointer to a 32-bit
unsigned integer that contains the number of <span><a href="9052d476-63d6-43ec-849e-148b7b345965" data-linktype="relative-path">publisher names</a></span>.</p><p><b>publisherIds: </b>A pointer to an array of strings
that contain publisher 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 publisher table 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 the server MAY get the security descriptor of the publisher table. The
server MAY assign a security descriptor when the publisher table is created or
if the publisher table is built on the server&#39;s file system, it can get its
security descriptor from the file system.<a id="Appendix_A_Target_46"></a><a aria-label="Product behavior note 46" href="65f22d62-5f0f-4306-85c4-50fb9e77075b#Appendix_A_46" data-linktype="relative-path">&lt;46&gt;</a> Next, the
server SHOULD be able to perform the read 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 go to its
publisher table and read all the publisher names and use the results to fill
the <i>publisherIds</i> parameter. The server MUST also set the <i>numberPublisherIds</i>
parameter value to be the number of the publisher names it returns. The server
SHOULD only fail if it has inadequate memory to allocate for the <i>publisherIds</i>
parameter to copy all the publisher names from its publisher table into the
buffer that is pointed to by <i>publisherIds</i>. In that case, the server
SHOULD return ERROR_OUTOFMEMORY (0x0000000E).</p><p>The server MUST return a value indicating success or failure
for this operation.</p></div>