2.2.1.2.6 DNSSRV_RPC_UNION
The DNSSRV_RPC_UNION specifies a collection of all possible messages structures that can be exchanged between a client and server communicating using the DNS Server Management Protocol. This is used by the R_DnssrvOperation2 (section 3.1.4.6), R_DnssrvQuery2 (section 3.1.4.7) and R_DnssrvComplexOperation2 (section 3.1.4.8) method calls. The exact message format inside DNSSRV_RPC_UNION is identified by an accompanying DNS_RPC_TYPEID (section 2.2.1.1.1) value. Clients and servers of the DNS Server Management Protocol SHOULD<7> support all members of DNSSRV_RPC_UNION.
-
typedef [switch_type(DWORD)] union _DnssrvSrvRpcUnion { [case(DNSSRV_TYPEID_NULL)] PBYTE Null; [case(DNSSRV_TYPEID_DWORD)] DWORD Dword; [case(DNSSRV_TYPEID_LPSTR)] [string] char* String; [case(DNSSRV_TYPEID_LPWSTR)] [string] wchar_t* WideString; [case(DNSSRV_TYPEID_IPARRAY)] PIP4_ARRAY IpArray; [case(DNSSRV_TYPEID_BUFFER)] PDNS_RPC_BUFFER Buffer; [case(DNSSRV_TYPEID_SERVER_INFO_W2K)] PDNS_RPC_SERVER_INFO_W2K ServerInfoW2K; [case(DNSSRV_TYPEID_STATS)] PDNSSRV_STATS Stats; [case(DNSSRV_TYPEID_FORWARDERS_W2K)] PDNS_RPC_FORWARDERS_W2K ForwardersW2K; [case(DNSSRV_TYPEID_ZONE_W2K)] PDNS_RPC_ZONE_W2K ZoneW2K; [case(DNSSRV_TYPEID_ZONE_INFO_W2K)] PDNS_RPC_ZONE_INFO_W2K ZoneInfoW2K; [case(DNSSRV_TYPEID_ZONE_SECONDARIES_W2K)] PDNS_RPC_ZONE_SECONDARIES_W2K SecondariesW2K; [case(DNSSRV_TYPEID_ZONE_DATABASE_W2K)] PDNS_RPC_ZONE_DATABASE_W2K DatabaseW2K; [case(DNSSRV_TYPEID_ZONE_CREATE_W2K)] PDNS_RPC_ZONE_CREATE_INFO_W2K ZoneCreateW2K; [case(DNSSRV_TYPEID_NAME_AND_PARAM)] PDNS_RPC_NAME_AND_PARAM NameAndParam; [case(DNSSRV_TYPEID_ZONE_LIST_W2K)] PDNS_RPC_ZONE_LIST_W2K ZoneListW2K; [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET)] PDNS_RPC_SERVER_INFO_DOTNET ServerInfoDotNet; [case(DNSSRV_TYPEID_FORWARDERS_DOTNET)] PDNS_RPC_FORWARDERS_DOTNET ForwardersDotNet; [case(DNSSRV_TYPEID_ZONE)] PDNS_RPC_ZONE Zone; [case(DNSSRV_TYPEID_ZONE_INFO_DOTNET)] PDNS_RPC_ZONE_INFO_DOTNET ZoneInfoDotNet; [case(DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET)] PDNS_RPC_ZONE_SECONDARIES_DOTNET SecondariesDotNet; [case(DNSSRV_TYPEID_ZONE_DATABASE)] PDNS_RPC_ZONE_DATABASE Database; [case(DNSSRV_TYPEID_ZONE_CREATE_DOTNET)] PDNS_RPC_ZONE_CREATE_INFO_DOTNET ZoneCreateDotNet; [case(DNSSRV_TYPEID_ZONE_LIST)] PDNS_RPC_ZONE_LIST ZoneList; [case(DNSSRV_TYPEID_ZONE_EXPORT)] PDNS_RPC_ZONE_EXPORT_INFO ZoneExport; [case(DNSSRV_TYPEID_DP_INFO)] PDNS_RPC_DP_INFO DirectoryPartition; [case(DNSSRV_TYPEID_DP_ENUM)] PDNS_RPC_DP_ENUM DirectoryPartitionEnum; [case(DNSSRV_TYPEID_DP_LIST)] PDNS_RPC_DP_LIST DirectoryPartitionList; [case(DNSSRV_TYPEID_ENLIST_DP)] PDNS_RPC_ENLIST_DP EnlistDirectoryPartition; [case(DNSSRV_TYPEID_ZONE_CHANGE_DP)] PDNS_RPC_ZONE_CHANGE_DP ZoneChangeDirectoryPartition; [case(DNSSRV_TYPEID_ENUM_ZONES_FILTER)] PDNS_RPC_ENUM_ZONES_FILTER EnumZonesFilter; [case(DNSSRV_TYPEID_ADDRARRAY)] PDNS_ADDR_ARRAY AddrArray; [case(DNSSRV_TYPEID_SERVER_INFO)] PDNS_RPC_SERVER_INFO ServerInfo; [case(DNSSRV_TYPEID_ZONE_CREATE)] PDNS_RPC_ZONE_CREATE_INFO ZoneCreate; [case(DNSSRV_TYPEID_FORWARDERS)] PDNS_RPC_FORWARDERS Forwarders; [case(DNSSRV_TYPEID_ZONE_SECONDARIES)] PDNS_RPC_ZONE_SECONDARIES Secondaries; [case(DNSSRV_TYPEID_IP_VALIDATE)] PDNS_RPC_IP_VALIDATE IpValidate; [case(DNSSRV_TYPEID_ZONE_INFO)] PDNS_RPC_ZONE_INFO ZoneInfo; [case(DNSSRV_TYPEID_AUTOCONFIGURE)] PDNS_RPC_AUTOCONFIGURE AutoConfigure; [case(DNSSRV_TYPEID_UTF8_STRING_LIST)] PDNS_RPC_UTF8_STRING_LIST Utf8StringList; [case(DNSSRV_TYPEID_UNICODE_STRING_LIST)] PDNS_RPC_UNICODE_STRING_LIST UnicodeStringList; [case(DNSSRV_TYPEID_SKD)] PDNS_RPC_SKD Skd; [case(DNSSRV_TYPEID_SKD_LIST)] PDNS_RPC_SKD_LIST SkdList; [case(DNSSRV_TYPEID_SKD_STATE)] PDNS_RPC_SKD_STATE SkdState; [case(DNSSRV_TYPEID_SIGNING_VALIDATION_ERROR)] PDNS_RPC_SIGNING_VALIDATION_ERROR SigningValidationError; [case(DNSSRV_TYPEID_TRUST_POINT_LIST)] PDNS_RPC_TRUST_POINT_LIST TrustPointList; [case(DNSSRV_TYPEID_TRUST_ANCHOR_LIST)] PDNS_RPC_TRUST_ANCHOR_LIST TrustAnchorList; [case(DNSSRV_TYPEID_ZONE_SIGNING_SETTINGS)] PDNS_RPC_ZONE_DNSSEC_SETTINGS ZoneDnsSecSettings; [case(DNSSRV_TYPEID_ZONE_SCOPE_ENUM)] PDNS_RPC_ENUM_ZONE_SCOPE_LIST ZoneScopeList; [case(DNSSRV_TYPEID_ZONE_STATS)] PDNS_RPC_ZONE_STATS ZoneStats; [case(DNSSRV_TYPEID_ZONE_SCOPE_CREATE)] PDNS_RPC_ZONE_SCOPE_CREATE_INFO ScopeCreate; [case(DNSSRV_TYPEID_ZONE_SCOPE_INFO)] PDNS_RPC_ZONE_SCOPE_INFO ScopeInfo; [case(DNSSRV_TYPEID_SCOPE_ENUM)] PDNS_RPC_ENUM_SCOPE_LIST ScopeList; [case(DNSSRV_TYPEID_CLIENT_SUBNET_RECORD)] PDNS_RPC_CLIENT_SUBNET_RECORD SubnetList; [case(DNSSRV_TYPEID_POLICY)] PDNS_RPC_POLICY pPolicy; [case(DNSSRV_TYPEID_POLICY_NAME)] PDNS_RPC_POLICY_NAME pPolicyName; [case(DNSSRV_TYPEID_POLICY_ENUM)] PDNS_RPC_ENUMERATE_POLICY_LIST pPolicyList; [case(DNSSRV_TYPEID_RRL)] PDNS_RPC_RRL_PARAMS pRRLParams; [case(DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE)] PDNS_RPC_VIRTUALIZATION_INSTANCE VirtualizationInstance; [case(DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE_ENUM)] PDNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST VirtualizationInstanceList; } DNSSRV_RPC_UNION;
Null: No data is provided.
Dword: Data is a DWORD value.
String: A pointer to a null-terminated UTF-8 string or a NULL pointer.
WideString: A pointer to a null-terminated Unicode string or a NULL pointer.
IpArray: An array of IPv4 addresses in IP4_ARRAY (section 2.2.3.2.1) format.
Buffer: A pointer to a DNS_RPC_BUFFER (section 2.2.1.2.2).
ServerInfoW2K: A pointer to a structure of type DNS_RPC_SERVER_INFO_W2K (section 2.2.4.2.2.1). This structure is used to specify the general DNS server state and configuration.
Stats: A pointer to a structure of type DNSSRV_STATS (section 2.2.10.2.2). The structure exposes internal statistics and counters.
ForwardersW2K: A pointer to a structure of type DNS_RPC_FORWARDERS_W2K (section 2.2.5.2.10.1). This structure specifies the set of DNS servers this DNS server will forward unresolved queries to.
ZoneW2K: A pointer to a structure of type DNS_RPC_ZONE_W2K (section 2.2.5.2.1.1). This structure is used to specify basic information about a DNS zone.
ZoneInfoW2K: A pointer to a structure of type DNS_RPC_ZONE_INFO_W2K (section 2.2.5.2.4.1). This structure is used to specify detailed DNS zone information.
SecondariesW2K: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES_W2K (section 2.2.5.2.5.1). This structure is used to specify information about the secondary servers for a primary DNS zone.
DatabaseW2K: A pointer to a structure of type DNS_RPC_ZONE_DATABASE_W2K (section 2.2.5.2.6.1). This structure specifies how a DNS zone is stored in persistent storage.
ZoneCreateW2K: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO_W2K (section 2.2.5.2.7.1). This structure is used to specify the parameters required when creating a new DNS zone.
NameAndParam: A pointer to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). This is a general purpose structure used to associate a parameter name with a DWORD value.
ZoneListW2K: A pointer to a structure of type DNS_RPC_ZONE_LIST_W2K (section 2.2.5.2.3.1). This structure is used to enumerate zones.
ServerInfoDotNet: A pointer to a structure of type DNS_RPC_SERVER_INFO_DOTNET (section 2.2.4.2.2.2). This structure is used to specify the general DNS server state and configuration.
ForwardersDotNet: A pointer to a structure of type DNS_RPC_FORWARDERS_DOTNET (section 2.2.5.2.10.2). This structure specifies the set of DNS servers this DNS server will forward unresolved queries to.
Zone: A pointer to a structure of type DNS_RPC_ZONE (section 2.2.5.2.1). This structure is used to specify basic information about a DNS zone.
ZoneInfoDotNet: A pointer to a structure of type DNS_RPC_ZONE_INFO_DOTNET (section 2.2.5.2.4.2). This structure is used to specify detailed DNS zone information.
SecondariesDotNet: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES_DOTNET (section 2.2.5.2.5.2). This structure is used to specify information about the secondary servers for a primary DNS zone.
Database: A pointer to a structure of type DNS_RPC_ZONE_DATABASE (section 2.2.5.2.6). This structure specifies how a DNS zone is stored in persistent storage.
ZoneCreateDotNet: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO_DOTNET (section 2.2.5.2.7.2). This structure is used to specify the parameters required when creating a new DNS zone.
ZoneList: A pointer to a structure of type DNS_RPC_ZONE_LIST (section 2.2.5.2.3). This structure is used to enumerate zones.
ZoneExport: A pointer to a structure of type DNS_RPC_ZONE_EXPORT_INFO (section 2.2.5.2.8). This structure is used to specify how a zone is exported to file.
DirectoryPartition: A pointer to a structure of type DNS_RPC_DP_INFO (section 2.2.7.2.1). This structure specifies detailed information about a single application directory partition.
DirectoryPartitionEnum: A pointer to a structure of type DNS_RPC_DP_ENUM (section 2.2.7.2.3). This structure is used to specify basic information about an application directory partition.
DirectoryPartitionList: A pointer to a structure of type DNS_RPC_DP_LIST (section 2.2.7.2.4). This structure is used to enumerate the Application Directory Partition Table.
EnlistDirectoryPartition: A pointer to a structure of type DNS_RPC_ENLIST_DP (section 2.2.7.2.5). This structure is used to request enlistment changes for an application directory partition.
ZoneChangeDirectoryPartition: A pointer to a structure of type DNS_RPC_ZONE_CHANGE_DP (section 2.2.7.2.6). This structure is used to request that a DNS zone be moved from one application directory partition to another.
EnumZonesFilter: A pointer to a structure of type DNS_RPC_ENUM_ZONES_FILTER (section 2.2.5.2.9). This structure is used to filter DNS zones during enumeration.
AddrArray: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3). This structure is used to specify a list of IPv4 or IPv6 addresses.
ServerInfo: A pointer to a structure of type DNS_RPC_SERVER_INFO (section 2.2.4.2.2). This structure is used to specify general DNS server state and configuration.
ZoneCreate: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO (section 2.2.5.2.7). This structure is used to specify the parameters required when creating a new DNS zone.
Forwarders: A pointer to a structure of type DNS_RPC_FORWARDERS (section 2.2.5.2.10). This structure specifies the set of DNS servers this DNS server will forward unresolved queries to.
Secondaries: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES (section 2.2.5.2.5). This structure is used to specify information about the secondary servers for a primary DNS zone.
IpValidate: A pointer to a structure of type DNS_RPC_IP_VALIDATE (section 2.2.3.2.4). This structure is used to request IP validation and to return the results of IP validation.
ZoneInfo: A pointer to a structure of type DNS_RPC_ZONE_INFO (section 2.2.5.2.4). This structure is used to specify detailed DNS zone information.
AutoConfigure: A pointer to a structure of type DNS_RPC_AUTOCONFIGURE (section 2.2.8.2.1). This structure is used to request DNS server autoconfiguration.
Utf8StringList: A pointer to a structure of type DNS_RPC_UTF8_STRING_LIST (section 2.2.1.2.3). This structure is used to represent a list of UTF-8 [RFC3629] strings.
UnicodeStringList: A pointer to a structure of type DNS_RPC_UNICODE_STRING_LIST (section 2.2.1.2.4). This structure is used to represent a list of Unicode strings.
Skd: A pointer to a structure of type DNS_RPC_SKD (section 2.2.6.2.1). This structure is used to specify detailed signing key descriptor (SKD) information.
SkdList: A pointer to a structure of type DNS_RPC_SKD_LIST (section 2.2.6.2.2). This structure is used to enumerate signing key descriptors.
SkdState: A pointer to a structure of type DNS_RPC_SKD_STATE (section 2.2.6.2.3). This structure is used to specify detailed signing key descriptor state information.
SigningValidationError: A pointer to a structure of type DNS_RPC_SIGNING_VALIDATION_ERROR (section 2.2.6.2.8). This structure is used to specify signing key descriptor validation error information.
TrustPointList: A pointer to a structure of type DNS_RPC_TRUST_POINT_LIST (section 2.2.6.2.5). This structure is used to enumerate trust points.
TrustAnchorList: A pointer to a structure of type DNS_RPC_TRUST_ANCHOR_LIST (section 2.2.6.2.7). This structure is used to enumerate trust anchors.
ZoneDnsSecSettings: A pointer to a structure of type DNS_RPC_ZONE_DNSSEC_SETTINGS (section 2.2.6.2.9). This structure is used to list the DNSSEC settings of a zone.
ZoneScopeList: A pointer to a structure of type DNS_RPC_ENUM_ZONE_SCOPE_LIST (section 2.2.13.1.1). This structure is used to enumerate zone scopes in a specified zone or cache scopes in a cache zone.
ZoneStats: A pointer to a structure of type DNS_RPC_ZONE_STATS_V1 (section 2.2.12.2.5). This structure is used to enumerate the zone statistics.
ScopeCreate: A pointer to a structure of type DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 (section 2.2.13.1.2.1). This structure is used to create a zone scope or cache scope.
ScopeInfo: A pointer to a structure of type DNS_RPC_ZONE_SCOPE_INFO_V1 (section 2.2.13.1.3.1). This structure is used to specify detailed DNS zone scope or cache scope information.
ScopeList: A pointer to a structure of type DNS_RPC_ENUM_SCOPE_LIST (section 2.2.14.1.1). This structure is used to retrieve all the server scopes configured on the DNS server.
SubnetList: A pointer to a structure of type DNS_RPC_CLIENT_SUBNET_RECORD (section 2.2.15.2.1). This structure is used to retrieve details of a client subnet record in the DNS server.
pPolicy: A pointer to a structure of type DNS_RPC_POLICY (section 2.2.15.2.5). This structure is used to retrieve details of a DNS Policy in the DNS server.
pPolicyName: A pointer to a structure of type DNS_RPC_POLICY_NAME (section 2.2.15.2.6). This structure is used while enumerating DNS Policies in a DNS server per level.
pPolicyList: A pointer to a structure of type DNS_RPC_ENUMERATE_POLICY_LIST (section 2.2.15.2.7). This structure contains a list of DNS_RPC_POLICY_NAME structures.
pRRLParams: A pointer to a structure of type DNS_RPC_RRL_PARAMS (section 2.2.16.2.1). This structure contains the configuration parameters for Response Rate Limiting (RRL).
VirtualizationInstance: A pointer to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE (section 2.2.17.1.1). This structure is used to retrieve details of a virtualization instance in the DNS server.
VirtualizationInstanceList: A pointer to a structure of type DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST (section 2.2.17.1.3). This structure is used to enumerate virtualization instances in a DNS server.