<div class="content"><p> </p><p>The <b>R_DnssrvOperation4 </b>method is used to invoke a set
of server functions specified by the caller on the <span><a href="a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_1b9d3eb9-dad0-4d1d-acb7-4597e5db641c" data-linktype="relative-path">virtualization instance</a></span>,
if specified. The DNS server SHOULD<a id="Appendix_A_Target_290"></a><a aria-label="Product behavior note 290" href="4a9a3ba3-10eb-430e-b157-1fed0aaf85a5#Appendix_A_290" data-linktype="relative-path">&lt;290&gt;</a>
implement <b>R_DnssrvOperation4</b>.</p><p>All parameters are as specified by the <span><a href="54044c36-4e9e-44fb-80df-ffb026939b8b" data-linktype="relative-path">R_DnssrvOperation3
(section 3.1.4.13)</a></span> method with the following exceptions.</p><dl>
<dd>
<div><pre>    LONG R_DnssrvOperation4(
      [in]                       handle_t            hBindingHandle,
      [in]                       DWORD               dwClientVersion,
      [in]                       DWORD               dwSettingFlags,
      [in, unique, string]       LPCWSTR             pwszServerName,
      [in, unique, string]       LPCWSTR             pwszVirtualizationInstanceID,
      [in, unique, string]       LPCSTR              pszZone,
      [in, unique, string]       LPCWSTR             pwszZoneScopeName,
      [in]                       DWORD               dwContext,
      [in, unique, string]       LPCSTR              pszOperation,
      [in]                       DWORD               dwTypeId,
      [in, switch_is(dwTypeId)]  DNSSRV_RPC_UNION    pData
    );
</pre></div>
</dd></dl><p><b>pwszVirtualizationInstanceID:</b> A pointer to a
null-terminated Unicode string that contains the name of the virtualization
instance configured on the DNS server in which the operation is to be
performed. For operations specific to a particular virtualization instance,
this field MUST contain the name of the virtualization instance. If the value
is NULL then the API gives the same behavior as R_DnssrvOperation3. If the
value is not NULL then <b>pszZone</b> MUST point to a null-terminated character
string that contains the name of the zone in UTF-8 format. In this case the
type of the zone pointed to by <b>pszZone</b> MUST be a primary zone. It MUST
also be a non-autocreated zone, and a non-AD integrated zone. Apart from the <b>CreateVirtualizationInstance</b>,
<b>DeleteVirtualizationInstance,</b> and <b>UpdateVirtualizationInstance</b>
operations (section <span><a href="9500a7e8-165d-4b13-be86-0ddc43100eef" data-linktype="relative-path">3.1.4.1</a>)</span>,
R_DnssrvComplexOperation4 changes the behavior of the following operations:<b>
WriteDirtyZones</b>, <b>ZoneCreate</b>, <b>DeleteNode</b>, <b>DeleteRecordSet</b>,
<b>WriteBackFile</b>, <b>PauseZone</b>, <b>ResumeZone</b>, <b>DeleteZone</b>, <b>ReloadZone</b>,
<b>RefreshZone</b>, <b>CreateZoneScope</b>, and <b>DeleteZoneScope</b> (section
3.1.4.1<span>)</span>. If these operations are called with
R_DnssrvOperation4 and a non-NULL <i>pwszVirtualizationInstanceID</i>, they are
performed under the given virtualization instance.</p><p><b>Return Values:</b> The method MUST return
ERROR_SUCCESS (0x00000000) on success or a nonzero Win32 error code value if an
error occurred. If unable to perform the operation, returns error
EPT_S_CANT_PERFORM_OP (0x000006D8). See <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>
or section <span><a href="aa521c99-3e44-4b75-9faa-c0c1ebcca5b6" data-linktype="relative-path">2.2.1.1.5</a></span>. All
error values MUST be treated the same.</p><p>When processing this call, the server MUST perform the same
actions as for the R_DnssrvOperation3 method (section 3.1.4.13) except in the
event that the dwClientVersion is greater than the server version, in which
case the server MUST return the highest version number.</p></div>