2.2.1.1.1 DNS_RPC_TYPEID
The DNS Server Management Protocol RPC methods use a generic and extensible data structure of type DNSSRV_RPC_UNION structure (section 2.2.1.2.6), which is a union of pointers to different data types. A DNS_RPC_TYPEID enumeration value is used to specify what data is being stored in an instance of the DNSSRV_RPC_UNION structure. When combined with a DNSSRV_RPC_UNION structure, the DNS_RPC_TYPEID enumeration allows the DNS RPC interface to communicate many different types of DNS server configuration and data in a single structure.
-
typedef enum _DnssrvRpcTypeId { DNSSRV_TYPEID_ANY = (-1), DNSSRV_TYPEID_NULL = 0, DNSSRV_TYPEID_DWORD, DNSSRV_TYPEID_LPSTR, DNSSRV_TYPEID_LPWSTR, DNSSRV_TYPEID_IPARRAY, DNSSRV_TYPEID_BUFFER, // 5 DNSSRV_TYPEID_SERVER_INFO_W2K, DNSSRV_TYPEID_STATS, DNSSRV_TYPEID_FORWARDERS_W2K, DNSSRV_TYPEID_ZONE_W2K, DNSSRV_TYPEID_ZONE_INFO_W2K, // 10 DNSSRV_TYPEID_ZONE_SECONDARIES_W2K, DNSSRV_TYPEID_ZONE_DATABASE_W2K, DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K, DNSSRV_TYPEID_ZONE_CREATE_W2K, DNSSRV_TYPEID_NAME_AND_PARAM, // 15 DNSSRV_TYPEID_ZONE_LIST_W2K, DNSSRV_TYPEID_ZONE_RENAME, DNSSRV_TYPEID_ZONE_EXPORT, DNSSRV_TYPEID_SERVER_INFO_DOTNET, DNSSRV_TYPEID_FORWARDERS_DOTNET, // 20 DNSSRV_TYPEID_ZONE, DNSSRV_TYPEID_ZONE_INFO_DOTNET, DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET, DNSSRV_TYPEID_ZONE_DATABASE, DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET, // 25 DNSSRV_TYPEID_ZONE_CREATE_DOTNET, DNSSRV_TYPEID_ZONE_LIST, DNSSRV_TYPEID_DP_ENUM, DNSSRV_TYPEID_DP_INFO, DNSSRV_TYPEID_DP_LIST, // 30 DNSSRV_TYPEID_ENLIST_DP, DNSSRV_TYPEID_ZONE_CHANGE_DP, DNSSRV_TYPEID_ENUM_ZONES_FILTER, DNSSRV_TYPEID_ADDRARRAY, DNSSRV_TYPEID_SERVER_INFO, // 35 DNSSRV_TYPEID_ZONE_INFO, DNSSRV_TYPEID_FORWARDERS, DNSSRV_TYPEID_ZONE_SECONDARIES, DNSSRV_TYPEID_ZONE_TYPE_RESET, DNSSRV_TYPEID_ZONE_CREATE, // 40 DNSSRV_TYPEID_IP_VALIDATE, DNSSRV_TYPEID_AUTOCONFIGURE, DNSSRV_TYPEID_UTF8_STRING_LIST, DNSSRV_TYPEID_UNICODE_STRING_LIST, DNSSRV_TYPEID_SKD, // 45 DNSSRV_TYPEID_SKD_LIST, DNSSRV_TYPEID_SKD_STATE, DNSSRV_TYPEID_SIGNING_VALIDATION_ERROR, DNSSRV_TYPEID_TRUST_POINT_LIST, DNSSRV_TYPEID_TRUST_ANCHOR_LIST, // 50 DNSSRV_TYPEID_ZONE_SIGNING_SETTINGS, DNSSRV_TYPEID_ZONE_SCOPE_ENUM, DNSSRV_TYPEID_ZONE_STATS, DNSSRV_TYPEID_ZONE_SCOPE_CREATE, DNSSRV_TYPEID_ZONE_SCOPE_INFO, // 55 DNSSRV_TYPEID_SCOPE_ENUM, DNSSRV_TYPEID_CLIENT_SUBNET_RECORD, DNSSRV_TYPEID_POLICY, DNSSRV_TYPEID_POLICY_NAME, DNSSRV_TYPEID_POLICY_ENUM, // 60 DNSSRV_TYPEID_RRL, DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE, DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE_ENUM } DNS_RPC_TYPEID, *PDNS_RPC_TYPEID;
DNSSRV_TYPEID_ANY: Type is invalid.
DNSSRV_TYPEID_NULL: No data is provided.
DNSSRV_TYPEID_DWORD: A DWORD value.
DNSSRV_TYPEID_LPSTR: A pointer to a null-terminated UTF-8 [RFC3629] string.
DNSSRV_TYPEID_LPWSTR: A pointer to a null-terminated Unicode string.
DNSSRV_TYPEID_IPARRAY: A pointer to an IP4_ARRAY. This structure is used to specify a list of IPv4 addresses.
DNSSRV_TYPEID_BUFFER: A pointer to a DNS_RPC_BUFFER (section 2.2.1.2.2). This structure is used to hold a generic buffer of the DNS server information. Interpretation of the buffer depends upon the request.
DNSSRV_TYPEID_SERVER_INFO_W2K: 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 general DNS server state and configuration.
DNSSRV_TYPEID_STATS: A pointer to a structure of type DNSSRV_STATS (section 2.2.10.2.2). The structure exposes internal statistics and counters.
DNSSRV_TYPEID_FORWARDERS_W2K: 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.
DNSSRV_TYPEID_ZONE_W2K: 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.
DNSSRV_TYPEID_ZONE_INFO_W2K: 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.
DNSSRV_TYPEID_ZONE_SECONDARIES_W2K: 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.
DNSSRV_TYPEID_ZONE_DATABASE_W2K: 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.
DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K: This value is not used.
DNSSRV_TYPEID_ZONE_CREATE_W2K: 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 parameters required when creating a new DNS zone.
DNSSRV_TYPEID_NAME_AND_PARAM: 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.
DNSSRV_TYPEID_ZONE_LIST_W2K: 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.
DNSSRV_TYPEID_ZONE_RENAME: This value is not used.
DNSSRV_TYPEID_ZONE_EXPORT: 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 to export a zone to a file.
DNSSRV_TYPEID_SERVER_INFO_DOTNET: 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 general DNS server state and configuration.
DNSSRV_TYPEID_FORWARDERS_DOTNET: 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.
DNSSRV_TYPEID_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 and a DNS zone.
DNSSRV_TYPEID_ZONE_INFO_DOTNET: 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 information about a DNS zone.
DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET: 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.
DNSSRV_TYPEID_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.
DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET: This value is not used.
DNSSRV_TYPEID_ZONE_CREATE_DOTNET: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO_DOTNET. This structure is used to specify parameters required when creating a new DNS zone.
DNSSRV_TYPEID_ZONE_LIST: A pointer to a structure of type DNS_RPC_ZONE_LIST (section 2.2.5.2.3). This structure is used to enumerate zones.
DNSSRV_TYPEID_DP_ENUM: 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.
DNSSRV_TYPEID_DP_INFO: 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.
DNSSRV_TYPEID_DP_LIST: A pointer to a structure of type DNS_RPC_DP_LIST (section 2.2.7.2.4). This structure is used to enumerate application directory partitions.
DNSSRV_TYPEID_ENLIST_DP: 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.
DNSSRV_TYPEID_ZONE_CHANGE_DP: 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.
DNSSRV_TYPEID_ENUM_ZONES_FILTER: 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.
DNSSRV_TYPEID_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.
DNSSRV_TYPEID_SERVER_INFO: 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.
DNSSRV_TYPEID_ZONE_INFO: A pointer to a structure of type DNS_RPC_ZONE_INFO (section 2.2.5.2.4). This structure is used to specify detailed information about a DNS zone.
DNSSRV_TYPEID_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.
DNSSRV_TYPEID_ZONE_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.
DNSSRV_TYPEID_ZONE_TYPE_RESET: This value is not used.
DNSSRV_TYPEID_ZONE_CREATE: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO (section 2.2.5.2.7). This structure is used to specify parameters required when creating a new DNS zone.
DNSSRV_TYPEID_IP_VALIDATE: 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.
DNSSRV_TYPEID_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.
DNSSRV_TYPEID_UTF8_STRING_LIST: 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.
DNSSRV_TYPEID_UNICODE_STRING_LIST: 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.
DNSSRV_TYPEID_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.
DNSSRV_TYPEID_SKD_LIST: 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.
DNSSRV_TYPEID_SKD_STATE: 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.
DNSSRV_TYPEID_SIGNING_VALIDATION_ERROR: 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.
DNSSRV_TYPEID_TRUST_POINT_LIST: 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.
DNSSRV_TYPEID_TRUST_ANCHOR_LIST: 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.
DNSSRV_TYPEID_ZONE_SIGNING_SETTINGS: A pointer to a structure of type DNS_RPC_ZONE_DNSSEC_SETTINGS (section 2.2.6.2.9). This structure is used to specify the DNSSEC settings for file-backed zones.
DNSSRV_TYPEID_ZONE_SCOPE_ENUM: 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 or cache scopes.
DNSSRV_TYPEID_ZONE_STATS: 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.
DNSSRV_TYPEID_ZONE_SCOPE_CREATE: 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 the zone scope or cache scope.
DNSSRV_TYPEID_ZONE_SCOPE_INFO: 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 get the zone scope or cache scope information.
DNSSRV_TYPEID_SCOPE_ENUM: A pointer to a structure of type DNS_RPC_ENUM_SCOPE_LIST (section 2.2.14.1.1). The structure is used to enumerate the server scopes configured on the DNS server.
DNSSRV_TYPEID_CLIENT_SUBNET_RECORD: A pointer to a structure of type DNS_RPC_CLIENT_SUBNET_RECORD (section 2.2.15.2.1). The structure is used to enumerate the client subnet records configured on the DNS server.
DNSSRV_TYPEID_POLICY: A pointer to a structure of type DNS_RPC_POLICY (section 2.2.15.2.5).
DNSSRV_TYPEID_POLICY_NAME: A pointer to a structure of type DNS_RPC_POLICY_NAME (section 2.2.15.2.6).
DNSSRV_TYPEID_POLICY_ENUM: A pointer to a structure of type DNS_RPC_ENUMERATE_POLICY_LIST (section 2.2.15.2.7). The structure is used to enumerate the DNS policy configured on the DNS server.
DNSSRV_TYPEID_RRL: A pointer to a structure of type DNS_RPC_RRL_PARAMS (section 2.2.16.2.1). This structure is used to configure parameters for Response Rate Limiting (RRL).
DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE:A pointer to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE (section 2.2.17.1.1).
DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE_ENUM: 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 the virtualization instances in the DNS Server.
Clients and servers of the DNS Server Management Protocol SHOULD<5> support all values above.