3 dnsserver interface definition
4 for a protocol descrition see [MS-DNSP].pdf
7 import
"misc.idl", "dnsp.idl";
9 [ uuid("50abc2a4-574d-40b3-9d66-ee4fd5fba076"),
11 pointer_default(unique),
12 endpoint("ncacn_ip_tcp:", "ncacn_np:[\\pipe\\dnsserver]"),
13 helper
("../librpc/ndr/ndr_dnsserver.h"),
14 helpstring("DNS Management Server")
18 #define
wchar_t uint16
19 #define
BOOLEAN boolean8
20 #define BOOL boolean32
26 #define PDWORD uint32
*
29 /* DNS RPC data types */
32 typedef [v1_enum] enum {
33 DNS_RPC_USE_TCPIP
= 0x00000001,
34 DNS_RPC_USE_NAMED_PIPE
= 0x00000002,
35 DNS_RPC_USE_LPC
= 0x00000004,
36 DNS_RPC_USE_ALL_PROTOCOLS
= 0xFFFFFFFF
40 typedef [v1_enum] enum {
41 DNS_CLIENT_VERSION_W2K
= 0x00000000,
42 DNS_CLIENT_VERSION_DOTNET
= 0x00060000,
43 DNS_CLIENT_VERSION_LONGHORN
= 0x00070000
45 DNS_RPC_CLIENT_VERSION
;
50 [size_is(dwLength
)] BYTE Buffer
[];
55 [range(0,10000)] DWORD dwCount
;
56 [size_is(dwCount
),string,charset
(UTF8
)] char * pszStrings
[];
57 } DNS_RPC_UTF8_STRING_LIST
;
59 /* Name and parameter value */
62 [string, charset
(UTF8
)] char * pszNodeName
;
64 DNS_RPC_NAME_AND_PARAM
;
68 /* DNS Resource Record data types */
71 /* DNS_RECORD_TYPE is defined in dnsp.idl as dns_record_type */
72 /* DNS_RPC_NODE_FLAGS is defined in dnsp.idl as dns_rpc_node_flags */
74 typedef [gensize
] struct {
75 [value
(strlen
(str
))] uint8 len
;
76 [charset
(UTF8
)] uint8 str
[len
];
85 DNS_RPC_NAME dnsNodeName
;
95 DNS_RPC_NAME NamePrimaryServer
;
96 DNS_RPC_NAME ZoneAdministratorEmail
;
102 DNS_RPC_NAME nameExchange
;
104 DNS_RPC_RECORD_NAME_PREFERENCE
;
110 DNS_RPC_NAME nameTarget
;
114 typedef [nodiscriminant
,gensize
,flag
(NDR_NOALIGN
)] union {
115 [case(DNS_TYPE_TOMBSTONE
)] NTTIME timestamp
;
116 [case(DNS_TYPE_A
)] [flag
(NDR_BIG_ENDIAN
)] ipv4address ipv4
;
117 [case(DNS_TYPE_NS
)] DNS_RPC_NAME name
;
118 [case(DNS_TYPE_MD
)] DNS_RPC_NAME name
;
119 [case(DNS_TYPE_MF
)] DNS_RPC_NAME name
;
120 [case(DNS_TYPE_CNAME
)] DNS_RPC_NAME name
;
121 [case(DNS_TYPE_SOA
)] DNS_RPC_RECORD_SOA soa
;
122 [case(DNS_TYPE_MB
)] DNS_RPC_NAME name
;
123 [case(DNS_TYPE_MG
)] DNS_RPC_NAME name
;
124 [case(DNS_TYPE_MR
)] DNS_RPC_NAME name
;
125 [case(DNS_TYPE_PTR
)] DNS_RPC_NAME
ptr;
126 [case(DNS_TYPE_HINFO
)] DNS_RPC_NAME hinfo
;
127 [case(DNS_TYPE_MX
)] DNS_RPC_RECORD_NAME_PREFERENCE mx
;
128 [case(DNS_TYPE_TXT
)] DNS_RPC_NAME name
;
129 [case(DNS_TYPE_AAAA
)] ipv6address ipv6
;
130 [case(DNS_TYPE_SRV
)] DNS_RPC_RECORD_SRV srv
;
131 [case(DNS_TYPE_DNAME
)] DNS_RPC_NAME name
;
135 typedef [public] struct {
136 [value
(ndr_size_DNS_RPC_DATA
(&data
,wType
,0))] uint16 wDataLength
;
137 dns_record_type wType
;
143 [subcontext
(0),subcontext_size
(wDataLength
),switch_is(wType
)] DNS_RPC_DATA data
;
148 [value
(ndr_size_DNS_RPC_DATA
(&rec.data
,rec.wType
,0))] uint3264 wContextLength
;
155 /* DNS Address Information data types */
158 typedef [v1_enum] enum {
159 DNS_IPVAL_DNS_SERVERS
= 0x00,
160 DNS_IPVAL_DNS_ROOTHINTS
= 0x01,
161 DNS_IPVAL_DNS_FORWARDERS
= 0x02,
162 DNS_IPVAL_DNS_ZONE_MASTERS
= 0x03,
163 DNS_IPVAL_DNS_DELEGATIONS
= 0x04
167 typedef [v1_enum] enum {
168 ERROR_SUCCESS
= 0x00,
169 DNS_IPVAL_INVALID_ADDR
= 0x01,
170 DNS_IPVAL_UNREACHABLE
= 0x02,
171 DNS_IPVAL_NO_RESPONSE
= 0x03,
172 DNS_IPVAL_NOT_AUTH_FOR_ZONE
= 0x04,
173 DNS_IPVAL_UNKNOWN_ERROR
= 0xFF,
174 DNS_IPVAL_NO_TCP
= 0x80000000
176 DNS_IP_VALIDATE_RETURN_FLAGS
;
180 [size_is( AddrCount
)] DWORD AddrArray
[];
182 #define PIP4_ARRAY IP4_ARRAY
*
186 DWORD DnsAddrUserDword
[8];
199 [size_is( AddrCount
)] DNS_ADDR AddrArray
[];
201 #define PDNS_ADDR_ARRAY DNS_ADDR_ARRAY
*
204 DWORD dwRpcStructureVersion
;
208 [string, charset
(UTF8
)] char * pszContextName
;
209 PDNS_ADDR_ARRAY aipValidateAddrs
;
215 /* DNS Server data types */
218 typedef [enum8bit
] enum {
219 DNS_BOOT_METHOD_UNINITIALIZED
= 0x00,
220 DNS_BOOT_METHOD_FILE
= 0x01,
221 DNS_BOOT_METHOD_REGISTRY
= 0x02,
222 DNS_BOOT_METHOD_DIRECTORY
= 0x03
226 typedef [v1_enum] enum {
227 DNS_ALLOW_RFC_NAMES_ONLY
= 0x00,
228 DNS_ALLOW_NONRFC_NAMES
= 0x01,
229 DNS_ALLOW_MULTIBYTE_NAMES
= 0x02,
230 DNS_ALLOW_ALL_NAMES
= 0x03
236 /* basic configuration flags */
239 DNS_BOOT_METHOD fBootMethod
;
240 BOOLEAN fAdminConfigured
;
241 BOOLEAN fAllowUpdate
;
242 BOOLEAN fDsAvailable
;
244 /* pointer section */
246 [string, charset
(UTF8
)] char * pszServerName
;
250 [string, charset
(UTF16
)] wchar_t * pszDsContainer
;
254 PIP4_ARRAY aipServerAddrs
;
255 PIP4_ARRAY aipListenAddrs
;
259 PIP4_ARRAY aipForwarders
;
261 /* future extensions */
276 /* configuration DWORDs */
278 DWORD dwForwardTimeout
;
280 DNS_NAME_CHECK_FLAG dwNameCheckFlag
;
281 DWORD cAddressAnswerLimit
;
282 DWORD dwRecursionRetry
;
283 DWORD dwRecursionTimeout
;
285 DWORD dwDsPollingInterval
;
287 /* aging / scavenging */
289 DWORD dwScavengingInterval
;
290 DWORD dwDefaultRefreshInterval
;
291 DWORD dwDefaultNoRefreshInterval
;
293 DWORD dwReserveArray
[10];
297 /* configuration flags */
299 BOOLEAN fAutoReverseZones
;
300 BOOLEAN fAutoCacheUpdate
;
302 /* recursion control */
304 BOOLEAN fRecurseAfterForwarding
;
305 BOOLEAN fForwardDelegations
;
306 BOOLEAN fNoRecursion
;
307 BOOLEAN fSecureResponses
;
312 BOOLEAN fLocalNetPriority
;
314 /* BIND compatibility and mimicking */
316 BOOLEAN fBindSecondaries
;
317 BOOLEAN fWriteAuthorityNs
;
319 /* Bells and whistles */
321 BOOLEAN fStrictFileParsing
;
322 BOOLEAN fLooseWildcarding
;
324 /* aging / scavenging */
326 BOOLEAN fDefaultAgingState
;
327 BOOLEAN fReserveArray
[15];
329 DNS_RPC_SERVER_INFO_W2K
;
332 [string, charset
(UTF8
)] uint8
*extension
;
335 typedef [public] struct {
336 DWORD dwRpcStructureVersion
;
339 /* basic configuration flags */
342 DNS_BOOT_METHOD fBootMethod
;
343 BOOLEAN fAdminConfigured
;
344 BOOLEAN fAllowUpdate
;
345 BOOLEAN fDsAvailable
;
347 /* pointer section */
349 [string, charset
(UTF8
)] char * pszServerName
;
353 [string, charset
(UTF16
)] wchar_t * pszDsContainer
;
357 PIP4_ARRAY aipServerAddrs
;
358 PIP4_ARRAY aipListenAddrs
;
362 PIP4_ARRAY aipForwarders
;
366 PIP4_ARRAY aipLogFilter
;
367 [string, charset
(UTF16
)] wchar_t * pwszLogFilePath
;
369 /* Server domain/forest */
371 [string, charset
(UTF8
)] char * pszDomainName
; /* UTF-8 FQDN */
372 [string, charset
(UTF8
)] char * pszForestName
; /* UTF-8 FQDN */
374 /* Built-in directory partitions */
376 [string, charset
(UTF8
)] char * pszDomainDirectoryPartition
; /* UTF-8 FQDN */
377 [string, charset
(UTF8
)] char * pszForestDirectoryPartition
; /* UTF-8 FQDN */
379 /* future extensions */
380 DNS_EXTENSION pExtensions
[6];
389 /* configuration DWORDs */
391 DWORD dwForwardTimeout
;
393 DNS_NAME_CHECK_FLAG dwNameCheckFlag
;
394 DWORD cAddressAnswerLimit
;
395 DWORD dwRecursionRetry
;
396 DWORD dwRecursionTimeout
;
398 DWORD dwDsPollingInterval
;
399 DWORD dwLocalNetPriorityNetMask
;
401 /* aging and scavenging */
403 DWORD dwScavengingInterval
;
404 DWORD dwDefaultRefreshInterval
;
405 DWORD dwDefaultNoRefreshInterval
;
406 DWORD dwLastScavengeTime
;
410 DWORD dwEventLogLevel
;
411 DWORD dwLogFileMaxSize
;
413 /* Active Directory information */
415 DWORD dwDsForestVersion
;
416 DWORD dwDsDomainVersion
;
417 DWORD dwDsDsaVersion
;
419 DWORD dwReserveArray
[ 4 ];
423 /* configuration flags */
425 BOOLEAN fAutoReverseZones
;
426 BOOLEAN fAutoCacheUpdate
;
428 /* recursion control */
430 BOOLEAN fRecurseAfterForwarding
;
431 BOOLEAN fForwardDelegations
;
432 BOOLEAN fNoRecursion
;
433 BOOLEAN fSecureResponses
;
438 BOOLEAN fLocalNetPriority
;
440 /* BIND compatibility and mimicking */
442 BOOLEAN fBindSecondaries
;
443 BOOLEAN fWriteAuthorityNs
;
445 /* Bells and whistles */
447 BOOLEAN fStrictFileParsing
;
448 BOOLEAN fLooseWildcarding
;
450 /* aging \ scavenging */
452 BOOLEAN fDefaultAgingState
;
454 BOOLEAN fReserveArray
[ 15 ];
456 DNS_RPC_SERVER_INFO_DOTNET
;
458 typedef [public] struct {
459 DWORD dwRpcStructureVersion
;
462 /* basic configuration flags */
465 DNS_BOOT_METHOD fBootMethod
;
466 BOOLEAN fAdminConfigured
;
467 BOOLEAN fAllowUpdate
;
468 BOOLEAN fDsAvailable
;
470 /* pointer section */
472 [string, charset
(UTF8
)] char * pszServerName
;
476 [string, charset
(UTF16
)] wchar_t * pszDsContainer
;
480 PDNS_ADDR_ARRAY aipServerAddrs
;
481 PDNS_ADDR_ARRAY aipListenAddrs
;
485 PDNS_ADDR_ARRAY aipForwarders
;
489 PDNS_ADDR_ARRAY aipLogFilter
;
490 [string, charset
(UTF16
)] wchar_t * pwszLogFilePath
;
492 /* Server domain/forest */
494 [string, charset
(UTF8
)] char * pszDomainName
; /* UTF-8 FQDN */
495 [string, charset
(UTF8
)] char * pszForestName
; /* UTF-8 FQDN */
497 /* Built-in directory partitions */
499 [string, charset
(UTF8
)] char * pszDomainDirectoryPartition
; /* UTF-8 FQDN */
500 [string, charset
(UTF8
)] char * pszForestDirectoryPartition
; /* UTF-8 FQDN */
502 /* future extensions */
503 DNS_EXTENSION pExtensions
[6];
512 /* configuration DWORDs */
514 DWORD dwForwardTimeout
;
516 DNS_NAME_CHECK_FLAG dwNameCheckFlag
;
517 DWORD cAddressAnswerLimit
;
518 DWORD dwRecursionRetry
;
519 DWORD dwRecursionTimeout
;
521 DWORD dwDsPollingInterval
;
522 DWORD dwLocalNetPriorityNetMask
;
524 /* aging and scavenging */
526 DWORD dwScavengingInterval
;
527 DWORD dwDefaultRefreshInterval
;
528 DWORD dwDefaultNoRefreshInterval
;
529 DWORD dwLastScavengeTime
;
533 DWORD dwEventLogLevel
;
534 DWORD dwLogFileMaxSize
;
536 /* Active Directory information */
538 DWORD dwDsForestVersion
;
539 DWORD dwDsDomainVersion
;
540 DWORD dwDsDsaVersion
;
543 DWORD dwReserveArray
[ 3 ];
547 /* configuration flags */
549 BOOLEAN fAutoReverseZones
;
550 BOOLEAN fAutoCacheUpdate
;
552 /* recursion control */
554 BOOLEAN fRecurseAfterForwarding
;
555 BOOLEAN fForwardDelegations
;
556 BOOLEAN fNoRecursion
;
557 BOOLEAN fSecureResponses
;
562 BOOLEAN fLocalNetPriority
;
564 /* BIND compatibility and mimicking */
566 BOOLEAN fBindSecondaries
;
567 BOOLEAN fWriteAuthorityNs
;
569 /* Bells and whistles */
571 BOOLEAN fStrictFileParsing
;
572 BOOLEAN fLooseWildcarding
;
574 /* aging \ scavenging */
576 BOOLEAN fDefaultAgingState
;
578 BOOLEAN fReserveArray
[ 15 ];
580 DNS_RPC_SERVER_INFO_LONGHORN
;
581 #define DNS_RPC_SERVER_INFO DNS_RPC_SERVER_INFO_LONGHORN
585 /* DNS Application directory partition data types */
588 typedef [bitmap32bit
] bitmap
{
589 DNS_DP_AUTOCREATED
= 0x00000001,
590 DNS_DP_LEGACY
= 0x00000002,
591 DNS_DP_DOMAIN_DEFAULT
= 0x00000004,
592 DNS_DP_FOREST_DEFAULT
= 0x00000008,
593 DNS_DP_ENLISTED
= 0x00000010,
594 DNS_DP_DELETED
= 0x00000020
599 [string, charset
(UTF16
)] wchar_t * pszReplicaDn
;
602 #define PDNS_RPC_DP_REPLICA DNS_RPC_DP_REPLICA
*
604 typedef [v1_enum] enum {
606 DNS_DP_STATE_REPL_INCOMING
= 0x01,
607 DNS_DP_STATE_REPL_OUTGOING
= 0x02,
608 DNS_DP_STATE_UNKNOWN
= 0x03
612 DWORD dwRpcStructureVersion
;
615 [string, charset
(UTF8
)] char * pszDpFqdn
;
616 [string, charset
(UTF16
)] wchar_t * pszDpDn
;
617 [string, charset
(UTF16
)] wchar_t * pszCrDn
;
620 DNS_DP_STATE dwState
;
622 DWORD dwReserved
[ 3 ];
623 DNS_EXTENSION pwszReserved
[ 3 ];
624 [range(0,10000)] DWORD dwReplicaCount
;
625 [size_is(dwReplicaCount
)] PDNS_RPC_DP_REPLICA ReplicaArray
[];
630 DWORD dwRpcStructureVersion
;
633 [string, charset
(UTF8
)] char * pszDpFqdn
;
638 #define PDNS_RPC_DP_ENUM DNS_RPC_DP_ENUM
*
641 DWORD dwRpcStructureVersion
;
643 [range(0,5000)] DWORD dwDpCount
;
644 [size_is(dwDpCount
)] PDNS_RPC_DP_ENUM DpArray
[];
649 DWORD dwRpcStructureVersion
;
651 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 */
657 DWORD dwRpcStructureVersion
;
659 [string, charset
(UTF8
)] char * pszDestPartition
;
661 DNS_RPC_ZONE_CHANGE_DP
;
665 /* DNS Zone data types */
668 /* DNS_ZONE_TYPE defined in dnsp as dns_zone_type */
670 typedef [v1_enum] enum {
671 DNS_ZONE_SECSECURE_NO_SECURITY
= 0x00,
672 DNS_ZONE_SECSECURE_NS_ONLY
= 0x01,
673 DNS_ZONE_SECSECURE_LIST_ONLY
= 0x02,
674 DNS_ZONE_SECSECURE_NO_XFER
= 0x03
676 DNS_ZONE_SECONDARY_SECURITY
;
678 typedef [v1_enum] enum {
679 DNS_ZONE_NOTIFY_OFF
= 0x00,
680 DNS_ZONE_NOTIFY_ALL_SECONDARIES
= 0x01,
681 DNS_ZONE_NOTIFY_LIST_ONLY
= 0x02
683 DNS_ZONE_NOTIFY_LEVEL
;
685 typedef [v1_enum] enum {
686 DNS_ZONE_REQUEST_PRIMARY
= 0x00000001,
687 DNS_ZONE_REQUEST_SECONDARY
= 0x00000002,
688 DNS_ZONE_REQUEST_CACHE
= 0x00000004,
689 DNS_ZONE_REQUEST_AUTO
= 0x00000008,
690 DNS_ZONE_REQUEST_FORWARD
= 0x00000010,
691 DNS_ZONE_REQUEST_REVERSE
= 0x00000020,
692 DNS_ZONE_REQUEST_FORWARDER
= 0x00000040,
693 DNS_ZONE_REQUEST_STUB
= 0x00000080,
694 DNS_ZONE_REQUEST_DS
= 0x00000100,
695 DNS_ZONE_REQUEST_NON_DS
= 0x00000200,
696 DNS_ZONE_REQUEST_DOMAIN_DP
= 0x00000400,
697 DNS_ZONE_REQUEST_FOREST_DP
= 0x00000800,
698 DNS_ZONE_REQUEST_CUSTOM_DP
= 0x00001000,
699 DNS_ZONE_REQUEST_LEGACY_DP
= 0x00002000
701 DNS_ZONE_REQUEST_FILTERS
;
703 typedef [bitmap32bit
] bitmap
{
704 DNS_RPC_ZONE_PAUSED
= 0x0001,
705 DNS_RPC_ZONE_SHUTDOWN
= 0x0002,
706 DNS_RPC_ZONE_REVERSE
= 0x0004,
707 DNS_RPC_ZONE_AUTOCREATED
= 0x0008,
708 DNS_RPC_ZONE_DSINTEGRATED
= 0x0010,
709 DNS_RPC_ZONE_AGING
= 0x0020,
710 DNS_RPC_ZONE_UPDATE_UNSECURE
= 0x0040,
711 DNS_RPC_ZONE_UPDATE_SECURE
= 0x0080,
712 DNS_RPC_ZONE_READONLY
= 0x0100
713 } DNS_RPC_ZONE_FLAGS
;
716 [string, charset
(UTF16
)] uint16
* pszZoneName
;
717 DNS_RPC_ZONE_FLAGS Flags
;
722 #define PDNS_RPC_ZONE_W2K DNS_RPC_ZONE_W2K
*
725 DWORD dwRpcStructureVersion
;
727 [string, charset
(UTF16
)] wchar_t * pszZoneName
;
728 DNS_RPC_ZONE_FLAGS Flags
;
731 DNS_RPC_DP_FLAGS dwDpFlags
;
732 [string, charset
(UTF8
)] char * pszDpFqdn
;
735 #define DNS_RPC_ZONE DNS_RPC_ZONE_DOTNET
736 #define PDNS_RPC_ZONE_DOTNET DNS_RPC_ZONE_DOTNET
*
738 /* Zone enumeration */
740 [range(0,500000)] DWORD dwZoneCount
;
741 [size_is(dwZoneCount
)] PDNS_RPC_ZONE_W2K ZoneArray
[];
743 DNS_RPC_ZONE_LIST_W2K
;
746 DWORD dwRpcStructureVersion
;
748 [range(0,500000)] DWORD dwZoneCount
;
749 [size_is(dwZoneCount
)] PDNS_RPC_ZONE_DOTNET ZoneArray
[];
751 DNS_RPC_ZONE_LIST_DOTNET
;
752 #define DNS_RPC_ZONE_LIST DNS_RPC_ZONE_LIST_DOTNET
754 /* Zone information */
756 [string, charset
(UTF8
)] char * pszZoneName
;
759 dns_zone_update fAllowUpdate
;
766 [string, charset
(UTF8
)] char * pszDataFile
;
769 PIP4_ARRAY aipMasters
;
772 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
773 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
774 PIP4_ARRAY aipSecondaries
;
775 PIP4_ARRAY aipNotify
;
777 /* WINS or NetBIOS lookup */
783 DWORD dwNoRefreshInterval
;
784 DWORD dwRefreshInterval
;
785 DWORD dwAvailForScavengeTime
;
786 PIP4_ARRAY aipScavengeServers
;
788 /* save some space, just in case */
789 /* avoid versioning issues if possible */
795 DNS_RPC_ZONE_INFO_W2K
;
798 DWORD dwRpcStructureVersion
;
801 [string, charset
(UTF8
)] char * pszZoneName
;
804 dns_zone_update fAllowUpdate
;
811 [string, charset
(UTF8
)] char * pszDataFile
;
814 PIP4_ARRAY aipMasters
;
817 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
818 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
819 PIP4_ARRAY aipSecondaries
;
820 PIP4_ARRAY aipNotify
;
822 /* WINS or NetBIOS lookup */
828 DWORD dwNoRefreshInterval
;
829 DWORD dwRefreshInterval
;
830 DWORD dwAvailForScavengeTime
;
831 PIP4_ARRAY aipScavengeServers
;
833 /* Forwarder zones */
834 DWORD dwForwarderTimeout
;
835 DWORD fForwarderSlave
;
838 PIP4_ARRAY aipLocalMasters
;
840 /* Directory partition */
842 [string, charset
(UTF8
)] char * pszDpFqdn
;
843 [string, charset
(UTF16
)] wchar_t * pwszZoneDn
;
845 /* Xfr time information */
846 DWORD dwLastSuccessfulSoaCheck
;
847 DWORD dwLastSuccessfulXfr
;
849 /* save some space, just in case */
855 [string, charset
(UTF8
)] char * pReserved1
;
856 [string, charset
(UTF8
)] char * pReserved2
;
857 [string, charset
(UTF8
)] char * pReserved3
;
858 [string, charset
(UTF8
)] char * pReserved4
;
860 DNS_RPC_ZONE_INFO_DOTNET
;
863 DWORD dwRpcStructureVersion
;
866 [string, charset
(UTF8
)] char * pszZoneName
;
869 dns_zone_update fAllowUpdate
;
876 [string, charset
(UTF8
)] char * pszDataFile
;
879 PDNS_ADDR_ARRAY aipMasters
;
882 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
883 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
884 PDNS_ADDR_ARRAY aipSecondaries
;
885 PDNS_ADDR_ARRAY aipNotify
;
887 /* WINS or NetBIOS lookup */
893 DWORD dwNoRefreshInterval
;
894 DWORD dwRefreshInterval
;
895 DWORD dwAvailForScavengeTime
;
896 PDNS_ADDR_ARRAY aipScavengeServers
;
898 /* Forwarder zones */
899 DWORD dwForwarderTimeout
;
900 DWORD fForwarderSlave
;
903 PDNS_ADDR_ARRAY aipLocalMasters
;
905 /* Directory partition */
907 [string, charset
(UTF8
)] char * pszDpFqdn
;
908 [string, charset
(UTF16
)] wchar_t * pwszZoneDn
;
909 /* Xfr time information */
910 DWORD dwLastSuccessfulSoaCheck
;
911 DWORD dwLastSuccessfulXfr
;
913 DWORD fQueuedForBackgroundLoad
;
914 DWORD fBackgroundLoadInProgress
;
917 /* Additional zone transfer information */
918 DWORD dwLastXfrAttempt
;
919 DWORD dwLastXfrResult
;
921 DNS_RPC_ZONE_INFO_LONGHORN
;
922 #define DNS_RPC_ZONE_INFO DNS_RPC_ZONE_INFO_LONGHORN
924 /* Zone property data */
926 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
927 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
928 PIP4_ARRAY aipSecondaries
;
929 PIP4_ARRAY aipNotify
;
931 DNS_RPC_ZONE_SECONDARIES_W2K
;
934 DWORD dwRpcStructureVersion
;
937 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
938 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
939 PIP4_ARRAY aipSecondaries
;
940 PIP4_ARRAY aipNotify
;
942 DNS_RPC_ZONE_SECONDARIES_DOTNET
;
945 DWORD dwRpcStructureVersion
;
948 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
949 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
950 PDNS_ADDR_ARRAY aipSecondaries
;
951 PDNS_ADDR_ARRAY aipNotify
;
953 DNS_RPC_ZONE_SECONDARIES_LONGHORN
;
954 #define DNS_RPC_ZONE_SECONDARIES DNS_RPC_ZONE_SECONDARIES_LONGHORN
959 [string, charset
(UTF8
)] char * pszFileName
;
961 DNS_RPC_ZONE_DATABASE_W2K
;
964 DWORD dwRpcStructureVersion
;
968 [string, charset
(UTF8
)] char * pszFileName
;
970 DNS_RPC_ZONE_DATABASE_DOTNET
;
971 #define DNS_RPC_ZONE_DATABASE DNS_RPC_ZONE_DATABASE_DOTNET
973 /* Zone create data */
975 [string, charset
(UTF8
)] char * pszZoneName
;
977 dns_zone_update fAllowUpdate
;
983 [string, charset
(UTF8
)] char * pszDataFile
;
987 /* Admin name (if auto-create SOA) */
989 [string, charset
(UTF8
)] char * pszAdmin
;
991 /* Masters (if secondary) */
993 PIP4_ARRAY aipMasters
;
997 PIP4_ARRAY aipSecondaries
;
998 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
999 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1001 /* Reserve some space to avoid versioning issues */
1003 [string, charset
(UTF8
)] char * pvReserved1
;
1004 [string, charset
(UTF8
)] char * pvReserved2
;
1005 [string, charset
(UTF8
)] char * pvReserved3
;
1006 [string, charset
(UTF8
)] char * pvReserved4
;
1007 [string, charset
(UTF8
)] char * pvReserved5
;
1008 [string, charset
(UTF8
)] char * pvReserved6
;
1009 [string, charset
(UTF8
)] char * pvReserved7
;
1010 [string, charset
(UTF8
)] char * pvReserved8
;
1020 DNS_RPC_ZONE_CREATE_INFO_W2K
;
1023 DWORD dwRpcStructureVersion
;
1026 [string, charset
(UTF8
)] char * pszZoneName
;
1028 dns_zone_update fAllowUpdate
;
1034 [string, charset
(UTF8
)] char * pszDataFile
;
1035 DWORD fDsIntegrated
;
1036 DWORD fLoadExisting
;
1038 /* Admin name (if auto-create SOA) */
1040 [string, charset
(UTF8
)] char * pszAdmin
;
1042 /* Masters (if secondary) */
1044 PIP4_ARRAY aipMasters
;
1048 PIP4_ARRAY aipSecondaries
;
1049 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
1050 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1052 /* Forwarder zones */
1055 DWORD fRecurseAfterForwarding
;
1057 /* Directory partition */
1059 DWORD dwDpFlags
; /* specify built-in DP or */
1060 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 FQDN of partition */
1062 DWORD dwReserved
[ 32 ];
1064 DNS_RPC_ZONE_CREATE_INFO_DOTNET
;
1067 DWORD dwRpcStructureVersion
;
1070 [string, charset
(UTF8
)] char * pszZoneName
;
1072 dns_zone_update fAllowUpdate
;
1078 [string, charset
(UTF8
)] char * pszDataFile
;
1079 DWORD fDsIntegrated
;
1080 DWORD fLoadExisting
;
1082 /* Admin name (if auto-create SOA) */
1084 [string, charset
(UTF8
)] char * pszAdmin
;
1086 /* Masters (if secondary) */
1088 PDNS_ADDR_ARRAY aipMasters
;
1092 PDNS_ADDR_ARRAY aipSecondaries
;
1093 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
1094 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1096 /* Forwarder zones */
1099 DWORD fRecurseAfterForwarding
;
1101 /* Directory partition */
1103 DWORD dwDpFlags
; /* specify built-in DP or */
1104 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 FQDN of partition */
1106 DWORD dwReserved
[ 32 ];
1108 DNS_RPC_ZONE_CREATE_INFO_LONGHORN
;
1109 #define DNS_RPC_ZONE_CREATE_INFO DNS_RPC_ZONE_CREATE_INFO_LONGHORN
1113 DWORD dwRpcStructureVersion
;
1116 [string, charset
(UTF8
)] char * pszZoneExportFile
;
1118 DNS_RPC_ZONE_EXPORT_INFO
;
1121 DWORD dwRpcStructureVersion
;
1125 [string, charset
(UTF8
)] char * pszPartitionFqdn
;
1126 [string, charset
(UTF8
)] char * pszQueryString
;
1128 DNS_EXTENSION pszReserved
[ 6 ];
1130 DNS_RPC_ENUM_ZONES_FILTER
;
1132 /* Forwarders information */
1134 DWORD fRecurseAfterForwarding
;
1135 DWORD dwForwardTimeout
;
1136 PIP4_ARRAY aipForwarders
;
1138 DNS_RPC_FORWARDERS_W2K
;
1141 DWORD dwRpcStructureVersion
;
1143 DWORD fRecurseAfterForwarding
;
1144 DWORD dwForwardTimeout
;
1145 PIP4_ARRAY aipForwarders
;
1147 DNS_RPC_FORWARDERS_DOTNET
;
1150 DWORD dwRpcStructureVersion
;
1152 DWORD fRecurseAfterForwarding
;
1153 DWORD dwForwardTimeout
;
1154 PDNS_ADDR_ARRAY aipForwarders
;
1156 DNS_RPC_FORWARDERS_LONGHORN
;
1157 #define DNS_RPC_FORWARDERS DNS_RPC_FORWARDERS_LONGHORN
1161 /* DNS autoconfig data types */
1164 typedef [v1_enum] enum {
1165 DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS
= 0x00000001,
1166 DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS
= 0x00000002,
1167 DNS_RPC_AUTOCONFIG_INTERNAL_ZONES
= 0x00000004,
1168 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT
= 0x00000010,
1169 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND
= 0x00000020,
1170 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND
= 0x00000040,
1171 DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR
= 0x00008000,
1172 DNS_RPC_AUTOCONFIG_ALL
= 0xFFFFFFFF
1177 DWORD dwRpcStructureVersion
;
1179 DNS_RPC_AUTOCONFIG dwAutoConfigFlags
;
1181 [string, charset
(UTF8
)] char * pszNewDomainName
;
1183 DNS_RPC_AUTOCONFIGURE
;
1187 /* DNS logging data types */
1190 typedef [bitmap32bit
] bitmap
{
1191 DNS_EVENT_LOG_SUCCESS
= 0x00000000,
1192 DNS_EVENT_LOG_ERROR_TYPE
= 0x00000001,
1193 DNS_EVENT_LOG_WARNING_TYPE
= 0x00000002,
1194 DNS_EVENT_LOG_INFORMATION_TYPE
= 0x00000004
1196 DNS_EVENT_LOG_TYPES
;
1198 typedef [bitmap32bit
] bitmap
{
1199 DNS_RPC_VIEW_AUTHORITY_DATA
= 0x00000001,
1200 DNS_RPC_VIEW_CACHE_DATA
= 0x00000002,
1201 DNS_RPC_VIEW_GLUE_DATA
= 0x00000004,
1202 DNS_RPC_VIEW_ROOT_HINT_DATA
= 0x00000008,
1203 DNS_RPC_VIEW_ADDITIONAL_DATA
= 0x00000010,
1204 DNS_RPC_VIEW_NO_CHILDREN
= 0x00010000,
1205 DNS_RPC_VIEW_ONLY_CHILDREN
= 0x00020000
1211 /* DNS statistics data types */
1223 DNSSRV_STAT_HEADER Header
;
1230 /* DNS Typid and Union of all RPC data types */
1233 typedef [v1_enum] enum {
1234 DNSSRV_TYPEID_NULL
= 0,
1235 DNSSRV_TYPEID_DWORD
= 1,
1236 DNSSRV_TYPEID_LPSTR
= 2,
1237 DNSSRV_TYPEID_LPWSTR
= 3,
1238 DNSSRV_TYPEID_IPARRAY
= 4,
1239 DNSSRV_TYPEID_BUFFER
= 5,
1240 DNSSRV_TYPEID_SERVER_INFO_W2K
= 6,
1241 DNSSRV_TYPEID_STATS
= 7,
1242 DNSSRV_TYPEID_FORWARDERS_W2K
= 8,
1243 DNSSRV_TYPEID_ZONE_W2K
= 9,
1244 DNSSRV_TYPEID_ZONE_INFO_W2K
= 10,
1245 DNSSRV_TYPEID_ZONE_SECONDARIES_W2K
= 11,
1246 DNSSRV_TYPEID_ZONE_DATABASE_W2K
= 12,
1247 DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K
= 13,
1248 DNSSRV_TYPEID_ZONE_CREATE_W2K
= 14,
1249 DNSSRV_TYPEID_NAME_AND_PARAM
= 15,
1250 DNSSRV_TYPEID_ZONE_LIST_W2K
= 16,
1251 DNSSRV_TYPEID_ZONE_RENAME
= 17,
1252 DNSSRV_TYPEID_ZONE_EXPORT
= 18,
1253 DNSSRV_TYPEID_SERVER_INFO_DOTNET
= 19,
1254 DNSSRV_TYPEID_FORWARDERS_DOTNET
= 20,
1255 DNSSRV_TYPEID_ZONE
= 21,
1256 DNSSRV_TYPEID_ZONE_INFO_DOTNET
= 22,
1257 DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET
= 23,
1258 DNSSRV_TYPEID_ZONE_DATABASE
= 24,
1259 DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET
= 25,
1260 DNSSRV_TYPEID_ZONE_CREATE_DOTNET
= 26,
1261 DNSSRV_TYPEID_ZONE_LIST
= 27,
1262 DNSSRV_TYPEID_DP_ENUM
= 28,
1263 DNSSRV_TYPEID_DP_INFO
= 29,
1264 DNSSRV_TYPEID_DP_LIST
= 30,
1265 DNSSRV_TYPEID_ENLIST_DP
= 31,
1266 DNSSRV_TYPEID_ZONE_CHANGE_DP
= 32,
1267 DNSSRV_TYPEID_ENUM_ZONES_FILTER
= 33,
1268 DNSSRV_TYPEID_ADDRARRAY
= 34,
1269 DNSSRV_TYPEID_SERVER_INFO
= 35,
1270 DNSSRV_TYPEID_ZONE_INFO
= 36,
1271 DNSSRV_TYPEID_FORWARDERS
= 37,
1272 DNSSRV_TYPEID_ZONE_SECONDARIES
= 38,
1273 DNSSRV_TYPEID_ZONE_TYPE_RESET
= 39,
1274 DNSSRV_TYPEID_ZONE_CREATE
= 40,
1275 DNSSRV_TYPEID_IP_VALIDATE
= 41,
1276 DNSSRV_TYPEID_AUTOCONFIGURE
= 42,
1277 DNSSRV_TYPEID_UTF8_STRING_LIST
= 43,
1278 DNSSRV_TYPEID_UNICODE_STRING_LIST
= 44
1282 typedef [switch_type(uint3264
)] union {
1283 [case(DNSSRV_TYPEID_NULL
)] PBYTE Null
;
1285 [case(DNSSRV_TYPEID_DWORD
)] DWORD Dword
;
1287 [case(DNSSRV_TYPEID_LPSTR
)] [string, charset
(UTF8
)] char * String;
1289 [case(DNSSRV_TYPEID_LPWSTR
)] [string, charset
(UTF16
)] wchar_t * WideString
;
1291 [case(DNSSRV_TYPEID_IPARRAY
)] IP4_ARRAY
*IpArray
;
1293 [case(DNSSRV_TYPEID_BUFFER
)]
1294 DNS_RPC_BUFFER
*Buffer
;
1296 [case(DNSSRV_TYPEID_SERVER_INFO_W2K
)]
1297 DNS_RPC_SERVER_INFO_W2K
*ServerInfoW2K
;
1299 [case(DNSSRV_TYPEID_STATS
)]
1302 [case(DNSSRV_TYPEID_FORWARDERS_W2K
)]
1303 DNS_RPC_FORWARDERS_W2K
*ForwardersW2K
;
1305 [case(DNSSRV_TYPEID_ZONE_W2K
)]
1306 DNS_RPC_ZONE_W2K
*ZoneW2K
;
1308 [case(DNSSRV_TYPEID_ZONE_INFO_W2K
)]
1309 DNS_RPC_ZONE_INFO_W2K
*ZoneInfoW2K
;
1311 [case(DNSSRV_TYPEID_ZONE_SECONDARIES_W2K
)]
1312 DNS_RPC_ZONE_SECONDARIES_W2K
*SecondariesW2K
;
1314 [case(DNSSRV_TYPEID_ZONE_DATABASE_W2K
)]
1315 DNS_RPC_ZONE_DATABASE_W2K
*DatabaseW2K
;
1317 [case(DNSSRV_TYPEID_ZONE_CREATE_W2K
)]
1318 DNS_RPC_ZONE_CREATE_INFO_W2K
*ZoneCreateW2K
;
1320 [case(DNSSRV_TYPEID_NAME_AND_PARAM
)]
1321 DNS_RPC_NAME_AND_PARAM
*NameAndParam
;
1323 [case(DNSSRV_TYPEID_ZONE_LIST_W2K
)]
1324 DNS_RPC_ZONE_LIST_W2K
*ZoneListW2K
;
1326 [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET
)]
1327 DNS_RPC_SERVER_INFO_DOTNET
*ServerInfoDotNet
;
1329 [case(DNSSRV_TYPEID_FORWARDERS_DOTNET
)]
1330 DNS_RPC_FORWARDERS_DOTNET
*ForwardersDotNet
;
1332 [case(DNSSRV_TYPEID_ZONE
)]
1335 [case(DNSSRV_TYPEID_ZONE_INFO_DOTNET
)]
1336 DNS_RPC_ZONE_INFO_DOTNET
*ZoneInfoDotNet
;
1338 [case(DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET
)]
1339 DNS_RPC_ZONE_SECONDARIES_DOTNET
*SecondariesDotNet
;
1341 [case(DNSSRV_TYPEID_ZONE_DATABASE
)]
1342 DNS_RPC_ZONE_DATABASE
*Database
;
1344 [case(DNSSRV_TYPEID_ZONE_CREATE_DOTNET
)]
1345 DNS_RPC_ZONE_CREATE_INFO_DOTNET
*ZoneCreateDotNet
;
1347 [case(DNSSRV_TYPEID_ZONE_LIST
)]
1348 DNS_RPC_ZONE_LIST
*ZoneList
;
1350 [case(DNSSRV_TYPEID_ZONE_EXPORT
)]
1351 DNS_RPC_ZONE_EXPORT_INFO
*ZoneExport
;
1353 [case(DNSSRV_TYPEID_DP_INFO
)]
1354 DNS_RPC_DP_INFO
*DirectoryPartition
;
1356 [case(DNSSRV_TYPEID_DP_ENUM
)]
1357 DNS_RPC_DP_ENUM
*DirectoryPartitionEnum
;
1359 [case(DNSSRV_TYPEID_DP_LIST
)]
1360 DNS_RPC_DP_LIST
*DirectoryPartitionList
;
1362 [case(DNSSRV_TYPEID_ENLIST_DP
)]
1363 DNS_RPC_ENLIST_DP
*EnlistDirectoryPartition
;
1365 [case(DNSSRV_TYPEID_ZONE_CHANGE_DP
)]
1366 DNS_RPC_ZONE_CHANGE_DP
*ZoneChangeDirectoryPartition
;
1368 [case(DNSSRV_TYPEID_ENUM_ZONES_FILTER
)]
1369 DNS_RPC_ENUM_ZONES_FILTER
*EnumZonesFilter
;
1371 [case(DNSSRV_TYPEID_ADDRARRAY
)]
1372 DNS_ADDR_ARRAY
*AddrArray
;
1374 [case(DNSSRV_TYPEID_SERVER_INFO
)]
1375 DNS_RPC_SERVER_INFO
*ServerInfo
;
1377 [case(DNSSRV_TYPEID_ZONE_CREATE
)]
1378 DNS_RPC_ZONE_CREATE_INFO
*ZoneCreate
;
1380 [case(DNSSRV_TYPEID_FORWARDERS
)]
1381 DNS_RPC_FORWARDERS
*Forwarders
;
1383 [case(DNSSRV_TYPEID_ZONE_SECONDARIES
)]
1384 DNS_RPC_ZONE_SECONDARIES
*Secondaries
;
1386 [case(DNSSRV_TYPEID_IP_VALIDATE
)]
1387 DNS_RPC_IP_VALIDATE
*IpValidate
;
1389 [case(DNSSRV_TYPEID_ZONE_INFO
)]
1390 DNS_RPC_ZONE_INFO
*ZoneInfo
;
1392 [case(DNSSRV_TYPEID_AUTOCONFIGURE
)]
1393 DNS_RPC_AUTOCONFIGURE
*AutoConfigure
;
1395 [case(DNSSRV_TYPEID_UTF8_STRING_LIST
)]
1396 DNS_RPC_UTF8_STRING_LIST
*Utf8StringList
;
1401 /* DNS RPC interface */
1404 typedef [public,gensize
] struct {
1405 [value
((12+ndr_size_DNS_RPC_NAME
(&dnsNodeName
,0)+3) & ~
3)] uint16 wLength
;
1406 uint16 wRecordCount
;
1408 uint32 dwChildCount
;
1409 DNS_RPC_NAME dnsNodeName
;
1410 DNS_RPC_RECORD records
[wRecordCount
];
1413 typedef [public,nopull
,nopush
,gensize
] struct {
1415 DNS_RPC_RECORDS rec
[count
];
1416 } DNS_RPC_RECORDS_ARRAY
;
1418 WERROR DnssrvOperation
(
1419 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1420 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1421 [in] DWORD dwContext
,
1422 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1423 [in] DNS_RPC_TYPEID dwTypeId
,
1424 [in, switch_is(dwTypeId
)] DNSSRV_RPC_UNION pData
1428 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1429 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1430 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1431 [out] DNS_RPC_TYPEID
*pdwTypeId
,
1432 [out, switch_is(*pdwTypeId
)] DNSSRV_RPC_UNION
*ppData
1435 WERROR DnssrvComplexOperation
(
1436 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1437 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1438 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1439 [in] DNS_RPC_TYPEID dwTypeIn
,
1440 [in, switch_is(dwTypeIn
)] DNSSRV_RPC_UNION pDataIn
,
1441 [out] DNS_RPC_TYPEID
*pdwTypeOut
,
1442 [out, switch_is(*pdwTypeOut
)] DNSSRV_RPC_UNION
*ppDataOut
1445 WERROR DnssrvEnumRecords
(
1446 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1447 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1448 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1449 [in,unique,string,charset
(UTF8
)] uint8
*pszStartChild
,
1450 [in] dns_record_type wRecordType
,
1451 [in] DNS_SELECT_FLAGS fSelectFlag
,
1452 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStart
,
1453 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStop
,
1454 [out] DWORD
*pdwBufferLength
,
1455 [out,ref,subcontext
(4),subcontext_size
(*pdwBufferLength
)] DNS_RPC_RECORDS_ARRAY
**pBuffer
1458 WERROR DnssrvUpdateRecord
(
1459 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1460 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1461 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1462 [in, unique] DNS_RPC_RECORD_BUF
*pAddRecord
,
1463 [in, unique] DNS_RPC_RECORD_BUF
*pDeleteRecord
1466 WERROR DnssrvOperation2
(
1467 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1468 [in] uint32 dwSettingFlags
,
1469 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1470 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1471 [in] DWORD dwContext
,
1472 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1473 [in] DNS_RPC_TYPEID dwTypeId
,
1474 [in, switch_is(dwTypeId
)] DNSSRV_RPC_UNION pData
1477 WERROR DnssrvQuery2
(
1478 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1479 [in] uint32 dwSettingFlags
,
1480 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1481 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1482 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1483 [out] DNS_RPC_TYPEID
*pdwTypeId
,
1484 [out, switch_is(*pdwTypeId
)] DNSSRV_RPC_UNION
*ppData
1487 WERROR DnssrvComplexOperation2
(
1488 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1489 [in] uint32 dwSettingFlags
,
1490 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1491 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1492 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1493 [in] DNS_RPC_TYPEID dwTypeIn
,
1494 [in, switch_is(dwTypeIn
)] DNSSRV_RPC_UNION pDataIn
,
1495 [out] DNS_RPC_TYPEID
*pdwTypeOut
,
1496 [out, switch_is(*pdwTypeOut
)] DNSSRV_RPC_UNION
*ppDataOut
1499 WERROR DnssrvEnumRecords2
(
1500 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1501 [in] DWORD dwSettingFlags
,
1502 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1503 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1504 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1505 [in,unique,string,charset
(UTF8
)] uint8
*pszStartChild
,
1506 [in] dns_record_type wRecordType
,
1507 [in] DNS_SELECT_FLAGS fSelectFlag
,
1508 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStart
,
1509 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStop
,
1510 [out] uint32
*pdwBufferLength
,
1511 [out,ref,subcontext
(4),subcontext_size
(*pdwBufferLength
)] DNS_RPC_RECORDS_ARRAY
**pBuffer
1514 WERROR DnssrvUpdateRecord2
(
1515 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1516 [in] uint32 dwSettingFlags
,
1517 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1518 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1519 [in,string,charset
(UTF8
)] uint8
*pszNodeName
,
1520 [in, unique] DNS_RPC_RECORD_BUF
*pAddRecord
,
1521 [in, unique] DNS_RPC_RECORD_BUF
*pDeleteRecord