<div class="content" name="LnkSvrMessage" uuid="cea51ffe-cab6-4b19-93b7-853189437ead"><p> </p><p>The LnkSvrMessage method provides a way to send and receive
messages to the DLT Central Manager server to query or update information.</p><dl>
<dd>
<div><pre> HRESULT LnkSvrMessage(
   [in] handle_t IDL_handle,
   [in, out] TRKSVR_MESSAGE_UNION* pMsg
 );
</pre></div>
</dd></dl><p><b>IDL_handle: </b>For information about the handle_t
data type, see <span><a href="../ms-dtyp/cca27429-5689-4a16-b2b4-9325d93e4ba2" data-linktype="relative-path">[MS-DTYP]</a></span>
section <span><a href="../ms-dtyp/03c032cd-c1d1-4bbe-b00c-bb1f8da5155b" data-linktype="relative-path">2.1.3</a></span>.</p><p><b>pMsg: </b>Pointer to a message, in the format of a
<span><a href="2f32d86a-18ea-472f-99d3-e9f3a333e329" data-linktype="relative-path">TRKSVR_MESSAGE_UNION</a></span>
structure. If this method fails, as indicated by a failure return value, the
client MUST ignore any changes made by the server to this structure.</p><p><b>Return Values: </b>See the following table and the
explanation after it for more information on return values.</p><p>Exceptions Thrown: None.</p><p>The following table contains failure and success return
values that have special behavior in this protocol. All failure values not
listed in this table MUST be treated identically. Similarly, all success values
not listed in this table MUST be treated identically. Except where otherwise
stated, a return value MUST NOT be a value from this table. Except where
otherwise specified, the server MUST return a success value.</p><table><thead>
  <tr>
   <th>
   <p>Constant/value </p>
   </th>
   <th>
   <p>Description </p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>TRK_E_NOT_FOUND 0x8DEAD01B</td>
  <td>A requested object was not found.</td>
 </tr><tr>
  <td>TRK_E_VOLUME_QUOTA_EXCEEDED 0x8DEAD01C</td>
  <td>The server received a CREATE_VOLUME subrequest of a SYNC_VOLUMES request, but the ServerVolumeTable size limit for the RequestMachine value has already been reached.</td>
 </tr><tr>
  <td>TRK_E_SERVER_TOO_BUSY 0x8DEAD01E</td>
  <td>The server is busy, and the client is to retry the request at a later time.</td>
 </tr><tr>
  <td>TRK_S_OUT_OF_SYNC 0x0DEAD100</td>
  <td>The VolumeSequenceNumber of a MOVE_NOTIFICATION request is incorrect. See section 3.1.4.2.</td>
 </tr><tr>
  <td>TRK_S_VOLUME_NOT_FOUND 0x0DEAD102</td>
  <td>The VolumeID in a request was not found in the server&#39;s ServerVolumeTable.</td>
 </tr><tr>
  <td>TRK_S_VOLUME_NOT_OWNED 0x0DEAD103</td>
  <td>A notification was sent to the LnkSvrMessage method, but the RequestMachine for the request was not the VolumeOwner for a VolumeID in the request.</td>
 </tr><tr>
  <td>TRK_S_NOTIFICATION_QUOTA_EXCEEDED 0x0DEAD107</td>
  <td>The server received a MOVE_NOTIFICATION request, but the FileTable size limit has already been reached.</td>
 </tr></tbody></table><p>The LnkSvrMessage method has only a single parameter, a
union of type TRKSVR_MESSAGE_UNION (see section 2.2.12). But that union is
defined to hold one of several types of requests, referred to in this protocol
specification as messages. The message type for a given request is specified in
the MessageType field of the TRKSVR_MESSAGE_UNION. The possible message types
are defined in section <span><a href="e6084ee0-fc0d-443e-a4fb-1a792ce70450" data-linktype="relative-path">2.2.11</a></span>. The formats
of the different messages are defined in the sub-sections of section 2.2.12.
The responses by the server to those different messages are specified in the
remaining subsections of section <span><a href="d96cc3e8-c3b1-4b4f-b621-c5a39622768c" data-linktype="relative-path">3.1.4</a></span>, according to
the <b>MessageType</b> field of the union.</p><p>Except where otherwise noted, the server that receives a
request MUST ignore and leave unmodified all fields in the TRKSVR_MESSAGE_UNION
structure of the <i>pMsg</i> parameter, as well as the structures referenced by
the <b>MessageUnion</b> field of the TRKSVR_MESSAGE_UNION.</p><p>For security purposes, the server SHOULD restrict access to
clients that are members of the <span><a href="a45c8c1a-fb81-4a65-a3f1-82d471da2197#gt_9027fac6-fece-4e93-b2f8-9dd5bc949ff3" data-linktype="relative-path">authenticated users</a></span>
built-in security group. The client&#39;s identity is determined as described 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/29b8217a-0bda-4fdb-a3ea-48560125ae8d" data-linktype="relative-path">3.3.3.4.3</a></span>.<a id="Appendix_A_Target_4"></a><a aria-label="Product behavior note 4" href="e89fb7a4-4550-40c5-91e8-94a66665b499#Appendix_A_4" data-linktype="relative-path">&lt;4&gt;</a></p><p>The TRKSVR_MESSAGE_UNION structure of the <i>pMsg</i>
parameter contains a Priority field. The server MAY use this value to decide to
reject some requests with a TRK_E_SERVER_TOO_BUSY return value, but it MUST NOT
use this value to change the ordering of processing of messages from a caller.<a id="Appendix_A_Target_5"></a><a aria-label="Product behavior note 5" href="e89fb7a4-4550-40c5-91e8-94a66665b499#Appendix_A_5" data-linktype="relative-path">&lt;5&gt;</a></p><p>In this processing of this method call, the <span><a href="a45c8c1a-fb81-4a65-a3f1-82d471da2197#gt_e15432dc-30dd-4e3d-8757-19b639769c95" data-linktype="relative-path">MachineID</a></span>
of the client that makes the request MUST be used as the RequestMachine value.<a id="Appendix_A_Target_6"></a><a aria-label="Product behavior note 6" href="e89fb7a4-4550-40c5-91e8-94a66665b499#Appendix_A_6" data-linktype="relative-path">&lt;6&gt;</a></p><p><b>Note</b>  During the processing of a
LnkSvrMessage call, the server can call back to the client by using the <span><a href="f3d9aff9-dc5d-40a8-89db-31d03304682c" data-linktype="relative-path">LnkSvrMessageCallback</a></span>
method. See sections <span><a href="e7a9a393-4ea6-4d5e-b2e9-5ad7de390abd" data-linktype="relative-path">3.1.4.4</a></span> and 3.2.4.1
for more information.</p></div>