3.1.4.16 R_DnssrvOperation4 (Opnum: 15)
The R_DnssrvOperation4 method is used to invoke a set of server functions specified by the caller on the virtualization instance, if specified. The DNS server SHOULD<291> implement R_DnssrvOperation4.
All parameters are as specified by the R_DnssrvOperation3 (section 3.1.4.13) method with the following exceptions.
-
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 );
pwszVirtualizationInstanceID: 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 pszZone 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 pszZone MUST be a primary zone. It MUST also be a non-autocreated zone, and a non-AD integrated zone. Apart from the CreateVirtualizationInstance, DeleteVirtualizationInstance, and UpdateVirtualizationInstance operations (section 3.1.4.1), R_DnssrvComplexOperation4 changes the behavior of the following operations: WriteDirtyZones, ZoneCreate, DeleteNode, DeleteRecordSet, WriteBackFile, PauseZone, ResumeZone, DeleteZone, ReloadZone, RefreshZone, CreateZoneScope, and DeleteZoneScope (section 3.1.4.1). If these operations are called with R_DnssrvOperation4 and a non-NULL pwszVirtualizationInstanceID, they are performed under the given virtualization instance.
Return Values: 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 [MS-ERREF] section 2.2 or section 2.2.1.1.5. All error values MUST be treated the same.
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.