<div class="content" name="FAX_CreateAccount" uuid="e0fd2035-1162-4282-81fd-c5d8f7fc2dfa"><p>The <b>FAX_CreateAccount (Opnum 93</b>) method is called by
the client to request a new fax user account to be created based on an existing
valid operating system user account.</p><p>Protocol version FAX_API_VERSION_0 (0x00000000),
FAX_API_VERSION_1 (0x00010000), and FAX_API_VERSION_2 (0x00020000) fax servers
SHOULD NOT implement this call. The fax client MUST NOT call this method if the
protocol version reported by the server is FAX_API_VERSION_0 (0x00000000),
FAX_API_VERSION_1 (0x00010000), or FAX_API_VERSION_2 (0x00020000). For more
information, see <b>FAX_ConnectFaxServer</b> (section <a href="5cbfd38d-7a14-4560-ad24-9ed78f19a3bb" data-linktype="relative-path">3.1.4.1.10</a>).</p><p>The server MUST validate that the client&#39;s fax user account
has access to create an account. On success, the server MUST create a new fax
account. The server SHOULD apply the following default fax access rights,
depending on the <a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_916785d4-dee1-4e63-99a7-ba30240ae3d8" data-linktype="relative-path">authenticated
user identity</a> of the <a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_cf5f0db4-5dac-4410-9a32-46b4a4942a3b" data-linktype="relative-path">user
account</a> described by the <b>FAX_ACCOUNT_INFO_0</b> (section <a href="b9b642f1-8b22-48e2-bc93-0570458c165a" data-linktype="relative-path">2.2.24</a>) structure,<a id="Appendix_A_Target_77"></a><a aria-label="Product behavior note 77" href="056171e7-80bc-45ff-8107-66ba3abb2023#Appendix_A_77" data-linktype="relative-path">&lt;77&gt;</a> and return ERROR_SUCCESS. The
function MUST return ERROR_ALREADY_EXISTS if the account already exists.</p><table><thead>
  <tr>
   <th>
   <p>Authenticated user identity</p>
   </th>
   <th>
   <p>Default fax user access rights</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>Administrator</td>
  <td>WRITE_OWNER | WRITE_DAC | READ_CONTROL | FAX_ACCESS_SUBMIT | FAX_ACCESS_SUBMIT_NORMAL | FAX_ACCESS_SUBMIT_HIGH | FAX_ACCESS_QUERY_CONFIG | FAX_ACCESS_MANAGE_CONFIG | FAX_ACCESS_QUERY_ARCHIVES</td>
 </tr><tr>
  <td>Standard user</td>
  <td>READ_CONTROL | FAX_ACCESS_SUBMIT | FAX_ACCESS_SUBMIT_NORMAL</td>
 </tr><tr>
  <td>Interactive logon user</td>
  <td>READ_CONTROL | FAX_ACCESS_SUBMIT | FAX_ACCESS_SUBMIT_NORMAL | FAX_ACCESS_SUBMIT_HIGH | FAX_ACCESS_QUERY_CONFIG | FAX_ACCESS_MANAGE_RECEIVE_FOLDER</td>
 </tr></tbody></table><p>The client SHOULD free the returned <i>Buffer</i>.</p><dl>
<dd>
<div><pre> error_status_t FAX_CreateAccount(
   [in] handle_t hBinding,
   [in] DWORD level,
   [in, ref, size_is(BufferSize)] const LPBYTE Buffer,
   [in, range(0,FAX_MAX_RPC_BUFFER)] 
     DWORD BufferSize
 );
</pre></div>
</dd></dl><p><b>hBinding: </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> or <b>FAX_ConnectionRefCoun</b>t
(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>level: </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 indicates the type of structure to return in <i>Buffer</i>. The
value passed in this parameter MUST be zero.</p><p><b>Buffer: </b>A pointer to a <b>FAX_ACCOUNT_INFO_0</b>
that contains fax account information. The <b>lpcwstrAccountName</b> member of
the <b>FAX_ACCOUNT_INFO_0</b> MUST be set to the name of the operating system
user account for which the new fax user account is to be created, using the
same account name. The format of the user account name string is described in
section 2.2.24 (<b>FAX_ACCOUNT_INFO_0</b>).</p><p><b>BufferSize:</b> A <b>DWORD</b> value that
indicates the return size, in bytes, of the buffer that is pointed to by the <i>Buffer</i>
parameter. The maximum size is <b>FAX_MAX_RPC_BUFFER</b>(section <a href="8bb4ba82-db45-44ea-9caa-af64d7448e6d" data-linktype="relative-path">2.2.82</a>).</p><p><b>Return Values: </b>This method MUST return 0
(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 that are 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 FAX_ACCESS_MANAGE_CONFIG access right.</td>
 </tr><tr>
  <td>ERROR_INVALID_PARAMETER 0x00000057</td>
  <td>The parameter is incorrect. This value is returned when any of the following conditions are true: § The Buffer parameter is NULL. § The BufferSize parameter is 0. § The level parameter is greater than zero. § The account name, as pointed to by the account information contained in Buffer, is NULL or is specified using an invalid format.</td>
 </tr><tr>
  <td>ERROR_ALREADY_EXISTS 0x000000B7</td>
  <td>The fax account already exists.</td>
 </tr><tr>
  <td>ERROR_INVALID_HANDLE_STATE 0x00000649</td>
  <td>The handle is in an invalid state.</td>
 </tr></tbody></table>
</dd>
<dd>
<p>The account name contained in the <b>lpcwstrAccountName</b>
member of the <b>FAX_ACCOUNT_INFO_0</b>, as pointed to by the <i>Buffer</i>
parameter, MUST be in one of the following formats. Any other format is
invalid.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Format</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>&lt;machine_name&gt;\&lt;user_name&gt;</td>
  <td>For a local user with machine_name as the local machine&#39;s name.</td>
 </tr><tr>
  <td>&lt;domain_name&gt;\&lt;user_name&gt;</td>
  <td>For a nonlocal user.</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>