3.1.4.13 R_DnssrvOperation3 (Opnum 12)
The R_DnssrvOperation3 method is used to invoke a set of server functions specified by the caller on the zone scope or cache scope if specified. The DNS server SHOULD<286> implement R_DnssrvOperation3.
All parameters are as specified by the methods R_DnssrvOperation (section 3.1.4.1) and R_DnssrvOperation2 (section 3.1.4.6) with the following exceptions.
-
LONG R_DnssrvOperation3( [in] handle_t hBindingHandle, [in] DWORD dwClientVersion, [in] DWORD dwSettingFlags, [in, unique, string] LPCWSTR pwszServerName, [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 );
pwszZoneScopeName: A pointer to a null-terminated character string that contains the name of the zone scope in the zone or cache scope in a cache zone, or a server scope configured on the DNS server in which the operation is to be performed. For operations specific to a particular zone scope, this field MUST contain the name of the zone scope. If the value is NULL then the API gives the same behavior as R_DnssrvOperation2 (section 3.1.4.6). 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, a non-reverse lookup zone, and a non-AD integrated zone. For operations specific to server scopes, this field MUST contain the name of the server scope and the pszZone field MUST be NULL. For operations specific to cache scopes, this field MUST contain the name of the cache scope, and the pszZone field MUST be "..cache."
-
If pszZone is not NULL and pwszZoneScopeName is not NULL, pszOperation MUST be set to one of the following values:
-
Value
Meaning
"DeleteNode"
Deletes a node from the given zone scope of a specified zone or a cache scope in a specified cache zone. On input, dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM (section 2.2.2.1.1), and pData MUST point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). That structure contains the name of the node to be deleted as pointed by pszNodeName, and a Boolean flag in dwParam that indicates if the node's subtree is to be deleted.
"DeleteRecordSet"
Deletes all the DNS records of a particular type at a particular node that is present in the given zone scope of a specified zone or a cache scope in a specified cache zone. On input, dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM (section 2.2.2.1.1). pData MUST point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). That structure contains the name of the node to be deleted and the DNS record type in the dwParam member. The type MUST be of value of either DNS_RECORD_TYPE (section 2.2.2.1.1) or 0x00FF, which specifies all types.
-
If pszZone is NULL and pwszZoneScopeName is not NULL, pszOperation MUST be set to one of the following values.
-
Value
Meaning
"Forwarders"
On input, dwTypeId SHOULD<287> be set to DNSSRV_TYPEID_FORWARDERS, and pData MUST point to a structure of one of the types specified in DNS_RPC_FORWARDERS (section 2.2.5.2.10), which contains information about new IP addresses to which the DNS server SHOULD forward queries. These IP addresses are part of the server scope as specified in the pwszZoneScopeName.
"ResetDwordProperty"
Update the value of a (name, value) pair in the DNS Server Configuration. On input, dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM, and pData MUST point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5) that specifies the name of a property listed in section 3.1.1.3.1 and a new value for that property.
When processing this call, the server MUST perform the same actions as for the R_DnssrvOperation2 method. Operations specific to this method are as described in the preceding table. These operations are processed as specified in R_DnssrvOperation, in the given zone scope or cache scope specified in pwszZoneScopeName of a zone or cache zone specified in pszZone or in the server scope specified in pwszZoneScopeName with pszZone being NULL.