<div class="content"><p align="right"><a href="https://msdn.microsoft.com/en-us/library/5780fc6c-82f0-489f-b9a0-a9e855388492" data-linktype="external">msdn link</a></p><p>The <b>NetrLogonGetCapabilities</b> method is used by
clients to confirm the server capabilities after a <a href="b5e7d25a-40b2-41c8-9611-98f53358af66#gt_08ce423c-9f9c-48ed-afa8-8b64c04ecdca" data-linktype="relative-path">secure channel</a> has been
established.<a id="Appendix_A_Target_194"></a><a aria-label="Product behavior note 194" href="0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_194" data-linktype="relative-path">&lt;194&gt;</a> </p><dl>
<dd>
<div><pre> NTSTATUS NetrLogonGetCapabilities(
   [in, string] LOGONSRV_HANDLE ServerName,
   [in, string, unique] wchar_t* ComputerName,
   [in] PNETLOGON_AUTHENTICATOR Authenticator,
   [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
   [in] DWORD QueryLevel,
   [out, switch_is(QueryLevel)] PNETLOGON_CAPABILITIES Capabilities
 );
</pre></div>
</dd></dl><p><b>ServerName: </b>A <a href="3b224201-b531-43e2-8c79-b61f6dea8640" data-linktype="relative-path">LOGONSRV_HANDLE</a> Unicode
string handle of the server that is handling the request.</p><p><b>ComputerName: </b>A string that contains the name
of the computer.</p><p><b>Authenticator: </b>A pointer to a <a href="76c93227-942a-4687-ab9d-9d972ffabdab" data-linktype="relative-path">NETLOGON_AUTHENTICATOR</a>
structure that contains the client <a href="b5e7d25a-40b2-41c8-9611-98f53358af66#gt_e72a2c02-84a2-4ce3-b66f-86f725642dc3" data-linktype="relative-path">authenticator</a>.</p><p><b>ReturnAuthenticator: </b>A pointer to a <b>NETLOGON_AUTHENTICATOR</b>
structure that contains the server return authenticator.</p><p><a id="_Hlk140485655"><b>QueryLevel: </b>Specifies
the level of information to return from the </a><a href="b5e7d25a-40b2-41c8-9611-98f53358af66#gt_76a05049-3531-4abd-aec8-30e19954b4bd" data-linktype="relative-path">domain controller</a> being
queried. A value of 0x00000001 causes return of a <a href="f03cad67-077f-4042-80b0-cdc38dca9968" data-linktype="relative-path">NETLOGON_CAPABILITIES</a>
structure that contains server capabilities.</p><dl>
<dd>
<p>A value of 0x00000002 causes the return of a <b>NETLOGON_CAPABILITIES</b>
structure that contains client capabilities received by server when a
negotiation request is made from the client.</p>
</dd></dl><p><b>Capabilities: </b>A pointer to a 32-bit set of bit
flags that identify the server&#39;s capabilities or client’s capabilities received
by server during negotiation.<a id="Appendix_A_Target_195"></a><a aria-label="Product behavior note 195" href="0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_195" data-linktype="relative-path">&lt;195&gt;</a></p><p><b>Return Values: </b>The method returns 0x00000000
on success; otherwise, it returns a nonzero error code.</p><p>Upon receiving this call, the server MUST perform the following
validation steps:<a id="Appendix_A_Target_196"></a><a aria-label="Product behavior note 196" href="0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_196" data-linktype="relative-path">&lt;196&gt;</a></p><ul><li><p><span><span> 
</span></span>Apply Common Error Processing Rule A, specified in section <a href="2d776bfc-e81f-4c8f-9da8-4c2920f65413" data-linktype="relative-path">3</a>.</p>
</li><li><p><span><span> 
</span></span>Verify that the <i>QueryLevel</i> parameter is set to 1 or 2. All
other values are invalid, and STATUS_INVALID_LEVEL MUST be returned.<a id="Appendix_A_Target_197"></a><a aria-label="Product behavior note 197" href="0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_197" data-linktype="relative-path">&lt;197&gt;</a></p>
</li><li><p><span><span> 
</span></span>Using the ComputerName for the secure channel to find the
corresponding record in the ClientSessionInfo table, verify the <i>Authenticator</i>
parameter (section <a href="da7acaa3-030b-481e-979b-f58f89389806" data-linktype="relative-path">3.1.4.5</a>).
If the <i>Authenticator</i> parameter is valid, compute the <i>ReturnAuthenticator</i>
parameter returned (section 3.1.4.5). Otherwise, the server MUST return
STATUS_ACCESS_DENIED.</p>
</li></ul><p>If <i>ServerCapabilities</i> bit 1 is true, then <i>Capabilities</i>
MUST be set to the ServerSessionInfo.NegotiateFlags being used by the secure
channel of the calling client. </p><p>If ServerCapabilities bit 2 is true, then Capabilities MUST
be set to the ServerSessionInfo.RequestedFlags which would be captured by
server when client sends the negotiation request.</p><p>Otherwise, the server MUST return STATUS_NOT_IMPLEMENTED.</p></div>