3.1.4.14 R_DnssrvQuery3 (Opnum 13)

The R_DnssrvQuery3 method queries the DNS server for information. The type of information queried for is specified by the client using the pszZone, pwszZoneScopeName, and pszOperation parameters. The DNS server SHOULD<288> implement R_DnssrvQuery3.

All the parameters are as specified by the R_DnssrvQuery2 method with the following exceptions:

 LONG R_DnssrvQuery3(
   [in]                               DWORD                 dwClientVersion,
   [in]                               DWORD                 dwSettingFlags,
   [in, unique, string]               LPCWSTR               pwszServerName,
   [in, unique, string]               LPCSTR                pszZone,
   [in, unique, string]               LPCWSTR               pszZoneScopeName,
   [in, unique, string]               LPCSTR                pszOperation,
   [out]                              PDWORD                pdwTypeId,
   [out, switch_is(*pdwTypeId)]       DNSSRV_RPC_UNION*     ppData
 );

pwszZoneScopeName: A pointer to a null-terminated character string that contains the name of the zone scope inside the zone or cache scope inside the cache zone to be queried or a server scope configured on the DNS server. For operations specific to a particular zone scope or cache scope, this field MUST contain the name of the zone scope or cache scope. If the value is NULL, then the API is as specified in R_DnssrvQuery2 (section 3.1.4.7).

If pszZone is not NULL and pwszZoneScopeName is not NULL, pszOperation MUST be set to one of the following values:

Value

Meaning

ScopeInfo

On output the value pointed to by pdwTypeId SHOULD be set to DNSSRV_TYPEID_ZONE_SCOPE_INFO and ppData MUST point to a structure of one of the types specified in DNS_RPC_ZONE_SCOPE_INFO_V1 (section 2.2.13.1.3.1), which contains full information about the zone pointed to by pszZone or cache if "..cache" is specified in pszZone.

  • If pszZone is not NULL and pwszZoneScopeName is not NULL, and pszOperation value is ScopeInfo:

    • On input, pdwTypeId MUST be set to DNSSRV_TYPEID_ZONE_SCOPE_INFO.

    • pwszZoneScopeName MUST be the pointer to the name of the zone scope or cache scope that is to be queried.

    • pszZone MUST be the name of the zone in which the zone scope information is queried, or, for cache scope, it MUST be "..cache".

    • ppData MUST be in the format of DNS_RPC_ZONE_SCOPE_INFO_V1.

If pszZone is NULL and pwszZoneScopeName is not NULL, pszOperation MUST be either a property name listed in section 3.1.1.3 or set to one of the following values:

Value

Meaning

"Forwarders" or "DynamicForwarders"

On output, the value pointed to by pdwTypeId SHOULD be set to DNSSRV_TYPEID_ADDRARRAY and ppData MUST point to a structure as specified in DNS_ADDR_ARRAY (section 2.2.3.2.3), which contains list of IP address.<289>

  • If pszZone is NULL and pwszZoneScopeName is not NULL, and pszOperation value is Forwarders or DynamicForwarders:

    • On input, pdwTypeId MUST be set to DNSSRV_TYPEID_ADDRARRAY.

    • pwszZoneScopeName MUST be the pointer to the name of the server scope that is to be queried.

    • pszZone MUST be NULL.

    • ppData MUST be in the format of DNS_ADDR_ARRAY.