<div class="content" name="FAX_RegisterServiceProviderEx" uuid="c5711837-d169-4de5-b57e-2ed1fc31fbbd"><p>The fax client application calls the <b>FAX_RegisterServiceProviderEx
(Opnum 60)</b> method to register a <a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_2ba66d72-d766-440f-b5ea-0333759b147c" data-linktype="relative-path">fax service provider (FSP)</a>
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 <a href="5cbfd38d-7a14-4560-ad24-9ed78f19a3bb" data-linktype="relative-path">3.1.4.1.10</a>) or <b>FAX_ConnectionRefCount</b>
(section <a href="a92941ac-bd07-4a71-af85-c2c157c97cf9" data-linktype="relative-path">3.1.4.1.11</a>)
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 <a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_f49694cc-c350-462d-ab8e-816f0103c6c1" data-linktype="relative-path">GUID</a> 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 <a href="f14dea0f-f40e-453e-8514-c82d485b8791" data-linktype="relative-path">2.2.86</a>) 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> (<a href="../ms-dtyp/cca27429-5689-4a16-b2b4-9325d93e4ba2" data-linktype="relative-path">[MS-DTYP]</a>
section <a href="../ms-dtyp/262627d8-3418-4627-9218-4ffe110850b2" data-linktype="relative-path">2.2.9</a>)
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 <a href="cbe6c4fb-4dda-4f6c-9701-0d490ba0d105" data-linktype="relative-path">2.2.52</a>, or one
of the other standard errors defined in <a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>
section <a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a>.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>ERROR_ACCESS_DENIED 0x00000005</td>
  <td>Access is denied. The client&#39;s fax user account does not have the authorization for FAX_ACCESS_MANAGE_CONFIG required for this operation.</td>
 </tr><tr>
  <td>ERROR_INVALID_PARAMETER 0x00000057</td>
  <td>The parameter is incorrect. This error code is returned if any of the following conditions are met: § The lpcwstrGuid parameter contains an invalid GUID. § The dwFSPIVersion parameter is set to a value other than 0x00010000. § The dwCapabilities parameter is set to a value other than 0. § The file path specified by the lpcwstrImageName parameter does not exist, or the fax server does not have access to the file.</td>
 </tr><tr>
  <td>ERROR_BUFFER_OVERFLOW 0x0000006F</td>
  <td>The length of the lpcwstrFriendlyName, lpcwstrImageName or lpcwstrTspName character strings exceeds MAX_FAX_STRING_LEN characters, excluding the length of the NULL string terminator.</td>
 </tr><tr>
  <td>ERROR_ALREADY_EXISTS 0x000000B7</td>
  <td>An FSP is already registered with the same GUID (specified by the lpcwstrGUID parameter) or with the same telephony service provider (specified by the lpcwstrTspName parameter).</td>
 </tr><tr>
  <td>ERROR_REGISTRY_CORRUPT 0x000003F7</td>
  <td>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.</td>
 </tr></tbody></table>
</dd></dl><p><b>Exceptions Thrown:</b> No exceptions are thrown
except those that are thrown by the underlying <a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a> protocol <a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a>.</p></div>