<div class="content"><p> </p><p>The NetrServerTransportEnum method enumerates the
information about transport protocols that the <span><a href="1709f6a7-efb8-4ded-b7ae-5cee9ee36320#gt_434b0234-e970-4e8c-bdfa-e16a30d96703" data-linktype="relative-path">server</a></span> manages in <b>TransportList</b>.</p><dl>
<dd>
<div><pre> NET_API_STATUS NetrServerTransportEnum(
   [in, string, unique] SRVSVC_HANDLE ServerName,
   [in, out] LPSERVER_XPORT_ENUM_STRUCT InfoStruct,
   [in] DWORD PreferedMaximumLength,
   [out] DWORD* TotalEntries,
   [in, out, unique] DWORD* ResumeHandle
 );
</pre></div>
</dd></dl><p><b>ServerName: </b>An <span><a href="5f8329ee-1965-4ea1-ad35-3b29fbb63232" data-linktype="relative-path">SRVSVC_HANDLE (section 2.2.1.1)</a></span>
pointer that identifies the server. The <span><a href="1709f6a7-efb8-4ded-b7ae-5cee9ee36320#gt_60e0e1fa-66fe-41e1-b5e3-ceab97e53506" data-linktype="relative-path">client</a></span> MUST map this
structure to an RPC binding handle (see <span><a href="https://go.microsoft.com/fwlink/?LinkId=89824" data-linktype="external">[C706]</a></span> sections
4.3.5 and 5.1.5.2). The server MUST ignore this parameter.</p><p><b>InfoStruct: </b>A pointer to a structure, in the
format of a <span><a href="62ebfbd5-c426-45f2-99ea-01467feb24dd" data-linktype="relative-path">SERVER_XPORT_ENUM_STRUCT</a></span>
structure that receives the data. The SERVER_XPORT_ENUM_STRUCT structure has a <b>Level</b>
member that specifies the type of the structure to return in the <b>XportInfo</b>
member. The <b>Level</b> member MUST be set to one of the values in section
2.2.4.101 (excluding <span><a href="2cb6846c-a11f-44aa-a875-050d485150f2" data-linktype="relative-path">SERVER_XPORT_INFO_3_CONTAINER</a></span>).</p><p><b>PreferedMaximumLength: </b>Specifies the preferred
maximum length, in bytes, of returned data. If the value that is specified is <span><a href="789ec187-e01b-4da6-a7ff-9cb9e0857230" data-linktype="relative-path">MAX_PREFERRED_LENGTH (section 2.2.2.2)</a></span>,
the method MUST attempt to return all entries.</p><p><b>TotalEntries: </b>The total number of entries that
can be enumerated if the buffer is large enough to hold all the entries.</p><p><b>ResumeHandle: </b>A pointer to a value that
contains a handle that is used to continue an existing <span><a href="1709f6a7-efb8-4ded-b7ae-5cee9ee36320#gt_866b0055-ceba-4acf-a692-98452943b981" data-linktype="relative-path">connection</a></span>
search. The handle MUST be zero on the first call and remain unchanged for
subsequent calls. If the <i>ResumeHandle</i> parameter is NULL, no resume
handle MUST be stored. If this parameter is not NULL and the method returns
ERROR_MORE_DATA, this parameter receives an implementation-specific nonzero
value that can be passed in subsequent calls to this method to continue with
the enumeration.</p><dl>
<dd>
<p>If this parameter is NULL or points to 0x00000000,
the enumeration starts from the beginning of the list of the currently active
connections.</p>
</dd></dl><p><b>Return Values: </b>The method returns 0x00000000
(NERR_Success) to indicate success; otherwise, it returns a nonzero error code.
The method can take any specific error code value, as specified in <span><a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a></span>
section <span><a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a></span>.
The most common error codes are listed in the following table.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000000</p>
  <p>NERR_Success</p>
  </td>
  <td>
  <p>The client request succeeded.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x0000007C</p>
  <p>ERROR_INVALID_LEVEL</p>
  </td>
  <td>
  <p>The system call level is not correct.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x000000EA</p>
  <p>ERROR_MORE_DATA</p>
  </td>
  <td>
  <p>The client request succeeded. More entries are
  available. Not all entries could be returned in the buffer size that is
  specified by <i>PreferedMaximumLength</i>.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x00000008</p>
  <p>ERROR_NOT_ENOUGH_MEMORY</p>
  </td>
  <td>
  <p>Not enough storage is available to process this
  command.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x0000084B</p>
  <p>NERR_BufTooSmall</p>
  </td>
  <td>
  <p>The client request succeeded. More entries are
  available. The buffer size that is specified by <i>PreferedMaximumLength</i>
  was too small to fit even a single entry.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p>In response to the NetrServerTransportEnum request, the
server MUST enumerate the Transports from the <b>TransportList</b> or return an
error code.</p><p>The <i>InfoStruct</i> parameter has a <b>Level</b> member.
The value of <i>Level</i> MUST be 0, 1, or 2. If the <b>Level</b> member is not
equal to one of the valid values, the server MUST fail the call with an
ERROR_INVALID_LEVEL error code.</p><p>If the value of the <b>Level</b> member is 0, the server
MUST return the information about the transport protocols that it is managing
by filling the <span><a href="9b769044-bfdb-4064-bf40-33f2e5db648d" data-linktype="relative-path">SERVER_XPORT_INFO_0_CONTAINER</a></span>
structure in the <b>XportInfo</b> member of the <i>InfoStruct</i> parameter.</p><p>If the <b>Level</b> member is 1, the server MUST return the
information about the transport protocols that it is managing by filling the <span><a href="9a006cfe-f31c-4754-9558-c7c4a84a11af" data-linktype="relative-path">SERVER_XPORT_INFO_1_CONTAINER</a></span>
structure in the <b>XportInfo</b> member of the <i>InfoStruct</i> parameter.</p><p>The <i>PreferedMaximumLength</i> parameter specifies the
maximum number of bytes that the server can return for the <b>XportInfo</b>
buffer. </p><p>If the <i>PreferedMaximumLength</i> is insufficient to hold
all the entries, the server MUST return the maximum number of entries that can
fit in the <b>XportInfo</b> buffer and return ERROR_MORE_DATA. If this
parameter is equal to MAX_PREFERRED_LENGTH, the server MUST return all the
requested data.</p><p>If the server returns NERR_Success or ERROR_MORE_DATA, it
MUST set the <i>TotalEntries</i> parameter equal to the total number of entries
that could have been enumerated from the current resume position.</p><p>If the <i>PreferedMaximumLength</i> is insufficient to hold
all the entries and if the client has specified a <i>ResumeHandle</i>
parameter, the server MUST set <i>ResumeHandle</i> to some
implementation-specific value that allows the server to continue with this
enumeration on a subsequent call to this method with the same value for <i>ResumeHandle</i>.</p><p>The following rules specify processing of the <i>ResumeHandle</i>
parameter:</p><ul><li><p><span><span> 
</span></span>If the <i>ResumeHandle</i> parameter is either NULL or points to
0x00000000, the enumeration MUST start from the beginning of the <b>TransportList</b>.</p>
</li><li><p><span><span> 
</span></span>If the <i>ResumeHandle</i> parameter points to a nonzero value,
the server MUST continue enumeration based on the value of <i>ResumeHandle</i>.
The value of <i>ResumeHandle</i> specifies the index into the <b>TransportList</b>
after which the enumeration is to begin.</p>
</li><li><p><span><span> 
</span></span>If the client specified a <i>ResumeHandle</i> and if the server
returns ERROR_MORE_DATA (0x000000EA), the server MUST set <i>ResumeHandle</i>
to the index of the last enumerated transport in the <b>TransportList</b>.</p>
</li></ul><p>Because the <i>ResumeHandle</i> parameter specifies an
offset into the list, and the list of all available transports can be modified
between multiple requests, the results of a query spanning multiple requests
using <i>ResumeHandle</i> can be unreliable, offering either duplicate or unavailable
transports.</p><p>The server SHOULD<a id="Appendix_A_Target_95"></a><a aria-label="Product behavior note 95" href="ebb74ff2-abb1-4e1b-a76a-563a5cbbea9a#Appendix_A_95" data-linktype="relative-path">&lt;95&gt;</a> enforce
security measures to verify that the caller has the required permissions to
execute this call. If the caller does not have the required credentials, the
server SHOULD<a id="Appendix_A_Target_96"></a><a aria-label="Product behavior note 96" href="ebb74ff2-abb1-4e1b-a76a-563a5cbbea9a#Appendix_A_96" data-linktype="relative-path">&lt;96&gt;</a> fail the call.</p></div>