<div class="content"><p> </p><p>The fax client application calls the <b>FAX_RegisterServiceProviderEx
(Opnum 60)</b> method to register a <span><a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_2ba66d72-d766-440f-b5ea-0333759b147c" data-linktype="relative-path">fax service provider (FSP)</a></span>
with the Fax Service. Registration takes place after the Fax Service restarts.</p><p>In response, the server MUST validate that the client&#39;s fax
user account has access to register an FSP. The server MUST also validate that
the guidlpcwstrGUID is not a duplicate because it MUST NOT register duplicate
FSPs. </p><p>On success, the server MUST register the specified FSP.</p><dl>
<dd>
<div><pre> error_status_t FAX_RegisterServiceProviderEx(
   [in] handle_t hFaxHandle,
   [in, string, ref] LPCWSTR lpcwstrGUID,
   [in, string, ref] LPCWSTR lpcwstrFriendlyName,
   [in, string, ref] LPCWSTR lpcwstrImageName,
   [in, string, ref] LPCWSTR lpcwstrTspName,
   [in] DWORD dwFSPIVersion,
   [in] DWORD dwCapabilities
 );
</pre></div>
</dd></dl><p><b>hFaxHandle: </b>The RPC binding handle for this
call. The client SHOULD reuse the RPC binding handle used as an input <i>hBinding</i>
argument for the <b>FAX_ConnectFaxServer</b> (section <span><a href="5cbfd38d-7a14-4560-ad24-9ed78f19a3bb" data-linktype="relative-path">3.1.4.1.10</a></span>) or <b>FAX_ConnectionRefCount</b>
(section <span><a href="a92941ac-bd07-4a71-af85-c2c157c97cf9" data-linktype="relative-path">3.1.4.1.11</a></span>) method
call used to connect to the fax server.</p><p><b>lpcwstrGUID: </b>A pointer to a constant
null-terminated character string that contains a valid string representation of
the <span><a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_f49694cc-c350-462d-ab8e-816f0103c6c1" data-linktype="relative-path">GUID</a></span>
of the FSP.</p><p><b>lpcwstrFriendlyName: </b>A pointer to a constant
null-terminated character string to associate with the FSP execution component.
This is the FSP friendly name, which is suitable for display. This value cannot
exceed <b>MAX_FAX_STRING_LEN</b> (section <span><a href="f14dea0f-f40e-453e-8514-c82d485b8791" data-linktype="relative-path">2.2.86</a></span>) characters.</p><p><b>lpcwstrImageName: </b>A pointer to a constant
null-terminated character string that specifies the full path and file name for
the FSP execution component.<a id="Appendix_A_Target_148"></a><a aria-label="Product behavior note 148" href="056171e7-80bc-45ff-8107-66ba3abb2023#Appendix_A_148" data-linktype="relative-path">&lt;148&gt;</a> This
value cannot exceed <b>MAX_FAX_STRING_LEN</b> characters.</p><p><b>lpcwstrTspName: </b>A pointer to a constant
null-terminated character string that specifies the name of the telephony
service provider that is associated with the devices for the FSP. This
parameter SHOULD be set to NULL if the FSP does not use a telephony service
provider. This value cannot exceed <b>MAX_FAX_STRING_LEN</b> characters. This
value MUST be unique across all registered FSPs.</p><p><b>dwFSPIVersion: </b>A <b>DWORD</b> (<span><a href="../ms-dtyp/cca27429-5689-4a16-b2b4-9325d93e4ba2" data-linktype="relative-path">[MS-DTYP]</a></span>
section <span><a href="../ms-dtyp/262627d8-3418-4627-9218-4ffe110850b2" data-linktype="relative-path">2.2.9</a></span>)
value that specifies the API version of the FSP interface. The value MUST be
0x00010000.</p><p><b>dwCapabilities: </b>A <b>DWORD</b> value that
specifies the capabilities of the extended FSP. This value MUST be 0.</p><p><b>Return Values: </b>This method MUST return
0x00000000 (ERROR_SUCCESS) for success; otherwise, it MUST return one of the
following error codes, one of the fax-specific errors that are defined in
section <span><a href="cbe6c4fb-4dda-4f6c-9701-0d490ba0d105" data-linktype="relative-path">2.2.52</a></span>, or one of
the other standard errors defined 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>.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>ERROR_ACCESS_DENIED</p>
  <p>0x00000005</p>
  </td>
  <td>
  <p>Access is denied. The client&#39;s fax user account does
  not have the authorization for FAX_ACCESS_MANAGE_CONFIG required for this
  operation.</p>
  </td>
 </tr><tr>
  <td>
  <p>ERROR_INVALID_PARAMETER</p>
  <p>0x00000057</p>
  </td>
  <td>
  <p>The parameter is incorrect. This error code is
  returned if any of the following conditions are met:</p>
  <p><span>§<span>  
  </span></span>The <i>lpcwstrGuid</i> parameter contains an invalid GUID.</p>
  <p><span>§<span>  
  </span></span>The <i>dwFSPIVersion</i> parameter is set to a value other than
  0x00010000.</p>
  <p><span>§<span>  
  </span></span>The <i>dwCapabilities</i> parameter is set to a value other
  than 0.</p>
  <p><span>§<span>  
  </span></span>The file path specified by the <i>lpcwstrImageName</i>
  parameter does not exist, or the fax server does not have access to the file.</p>
  </td>
 </tr><tr>
  <td>
  <p>ERROR_BUFFER_OVERFLOW</p>
  <p>0x0000006F</p>
  </td>
  <td>
  <p>The length of the <i>lpcwstrFriendlyName</i>, <i>lpcwstrImageName</i>
  or <i>lpcwstrTspName</i> character strings exceeds <b>MAX_FAX_STRING_LEN </b>characters,
  excluding the length of the NULL string terminator.</p>
  </td>
 </tr><tr>
  <td>
  <p>ERROR_ALREADY_EXISTS</p>
  <p>0x000000B7</p>
  </td>
  <td>
  <p>An FSP is already registered with the same GUID
  (specified by the <i>lpcwstrGUID</i> parameter) or with the same telephony
  service provider (specified by the <i>lpcwstrTspName</i> parameter).</p>
  </td>
 </tr><tr>
  <td>
  <p>ERROR_REGISTRY_CORRUPT</p>
  <p>0x000003F7</p>
  </td>
  <td>
  <p>The registry is corrupted. The structure of one of the
  files that contains registry data is corrupted, or the system&#39;s memory image
  of the file is corrupted, or the file could not be recovered because the
  alternate copy or log was absent or corrupted.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>Exceptions Thrown:</b> No exceptions are thrown
except those that are thrown by the underlying <span><a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a></span> protocol <span><a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a></span>.</p></div>