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
*
605 DWORD dwRpcStructureVersion
;
608 [string, charset
(UTF8
)] char * pszDpFqdn
;
609 [string, charset
(UTF16
)] wchar_t * pszDpDn
;
610 [string, charset
(UTF16
)] wchar_t * pszCrDn
;
615 DWORD dwReserved
[ 3 ];
616 DNS_EXTENSION pwszReserved
[ 3 ];
617 [range(0,10000)] DWORD dwReplicaCount
;
618 [size_is(dwReplicaCount
)] PDNS_RPC_DP_REPLICA ReplicaArray
[];
623 DWORD dwRpcStructureVersion
;
626 [string, charset
(UTF8
)] char * pszDpFqdn
;
631 #define PDNS_RPC_DP_ENUM DNS_RPC_DP_ENUM
*
634 DWORD dwRpcStructureVersion
;
636 [range(0,5000)] DWORD dwDpCount
;
637 [size_is(dwDpCount
)] PDNS_RPC_DP_ENUM DpArray
[];
642 DWORD dwRpcStructureVersion
;
644 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 */
650 DWORD dwRpcStructureVersion
;
652 [string, charset
(UTF8
)] char * pszDestPartition
;
654 DNS_RPC_ZONE_CHANGE_DP
;
658 /* DNS Zone data types */
661 /* DNS_ZONE_TYPE defined in dnsp as dns_zone_type */
663 typedef [v1_enum] enum {
664 DNS_ZONE_SECSECURE_NO_SECURITY
= 0x00,
665 DNS_ZONE_SECSECURE_NS_ONLY
= 0x01,
666 DNS_ZONE_SECSECURE_LIST_ONLY
= 0x02,
667 DNS_ZONE_SECSECURE_NO_XFER
= 0x03
669 DNS_ZONE_SECONDARY_SECURITY
;
671 typedef [v1_enum] enum {
672 DNS_ZONE_NOTIFY_OFF
= 0x00,
673 DNS_ZONE_NOTIFY_ALL_SECONDARIES
= 0x01,
674 DNS_ZONE_NOTIFY_LIST_ONLY
= 0x02
676 DNS_ZONE_NOTIFY_LEVEL
;
678 typedef [v1_enum] enum {
679 DNS_ZONE_REQUEST_PRIMARY
= 0x00000001,
680 DNS_ZONE_REQUEST_SECONDARY
= 0x00000002,
681 DNS_ZONE_REQUEST_CACHE
= 0x00000004,
682 DNS_ZONE_REQUEST_AUTO
= 0x00000008,
683 DNS_ZONE_REQUEST_FORWARD
= 0x00000010,
684 DNS_ZONE_REQUEST_REVERSE
= 0x00000020,
685 DNS_ZONE_REQUEST_FORWARDER
= 0x00000040,
686 DNS_ZONE_REQUEST_STUB
= 0x00000080,
687 DNS_ZONE_REQUEST_DS
= 0x00000100,
688 DNS_ZONE_REQUEST_NON_DS
= 0x00000200,
689 DNS_ZONE_REQUEST_DOMAIN_DP
= 0x00000400,
690 DNS_ZONE_REQUEST_FOREST_DP
= 0x00000800,
691 DNS_ZONE_REQUEST_CUSTOM_DP
= 0x00001000,
692 DNS_ZONE_REQUEST_LEGACY_DP
= 0x00002000
694 DNS_ZONE_REQUEST_FILTERS
;
696 typedef [bitmap32bit
] bitmap
{
697 DNS_RPC_ZONE_PAUSED
= 0x0001,
698 DNS_RPC_ZONE_SHUTDOWN
= 0x0002,
699 DNS_RPC_ZONE_REVERSE
= 0x0004,
700 DNS_RPC_ZONE_AUTOCREATED
= 0x0008,
701 DNS_RPC_ZONE_DSINTEGRATED
= 0x0010,
702 DNS_RPC_ZONE_AGING
= 0x0020,
703 DNS_RPC_ZONE_UPDATE_UNSECURE
= 0x0040,
704 DNS_RPC_ZONE_UPDATE_SECURE
= 0x0080,
705 DNS_RPC_ZONE_READONLY
= 0x0100
706 } DNS_RPC_ZONE_FLAGS
;
709 [string, charset
(UTF16
)] uint16
* pszZoneName
;
710 DNS_RPC_ZONE_FLAGS Flags
;
715 #define PDNS_RPC_ZONE_W2K DNS_RPC_ZONE_W2K
*
718 DWORD dwRpcStructureVersion
;
720 [string, charset
(UTF16
)] wchar_t * pszZoneName
;
721 DNS_RPC_ZONE_FLAGS Flags
;
724 DNS_RPC_DP_FLAGS dwDpFlags
;
725 [string, charset
(UTF8
)] char * pszDpFqdn
;
728 #define DNS_RPC_ZONE DNS_RPC_ZONE_DOTNET
729 #define PDNS_RPC_ZONE_DOTNET DNS_RPC_ZONE_DOTNET
*
731 /* Zone enumeration */
733 [range(0,500000)] DWORD dwZoneCount
;
734 [size_is(dwZoneCount
)] PDNS_RPC_ZONE_W2K ZoneArray
[];
736 DNS_RPC_ZONE_LIST_W2K
;
739 DWORD dwRpcStructureVersion
;
741 [range(0,500000)] DWORD dwZoneCount
;
742 [size_is(dwZoneCount
)] PDNS_RPC_ZONE_DOTNET ZoneArray
[];
744 DNS_RPC_ZONE_LIST_DOTNET
;
745 #define DNS_RPC_ZONE_LIST DNS_RPC_ZONE_LIST_DOTNET
747 /* Zone information */
749 [string, charset
(UTF8
)] char * pszZoneName
;
752 dns_zone_update fAllowUpdate
;
759 [string, charset
(UTF8
)] char * pszDataFile
;
762 PIP4_ARRAY aipMasters
;
765 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
766 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
767 PIP4_ARRAY aipSecondaries
;
768 PIP4_ARRAY aipNotify
;
770 /* WINS or NetBIOS lookup */
776 DWORD dwNoRefreshInterval
;
777 DWORD dwRefreshInterval
;
778 DWORD dwAvailForScavengeTime
;
779 PIP4_ARRAY aipScavengeServers
;
781 /* save some space, just in case */
782 /* avoid versioning issues if possible */
788 DNS_RPC_ZONE_INFO_W2K
;
791 DWORD dwRpcStructureVersion
;
794 [string, charset
(UTF8
)] char * pszZoneName
;
797 dns_zone_update fAllowUpdate
;
804 [string, charset
(UTF8
)] char * pszDataFile
;
807 PIP4_ARRAY aipMasters
;
810 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
811 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
812 PIP4_ARRAY aipSecondaries
;
813 PIP4_ARRAY aipNotify
;
815 /* WINS or NetBIOS lookup */
821 DWORD dwNoRefreshInterval
;
822 DWORD dwRefreshInterval
;
823 DWORD dwAvailForScavengeTime
;
824 PIP4_ARRAY aipScavengeServers
;
826 /* Forwarder zones */
827 DWORD dwForwarderTimeout
;
828 DWORD fForwarderSlave
;
831 PIP4_ARRAY aipLocalMasters
;
833 /* Directory partition */
835 [string, charset
(UTF8
)] char * pszDpFqdn
;
836 [string, charset
(UTF16
)] wchar_t * pwszZoneDn
;
838 /* Xfr time information */
839 DWORD dwLastSuccessfulSoaCheck
;
840 DWORD dwLastSuccessfulXfr
;
842 /* save some space, just in case */
848 [string, charset
(UTF8
)] char * pReserved1
;
849 [string, charset
(UTF8
)] char * pReserved2
;
850 [string, charset
(UTF8
)] char * pReserved3
;
851 [string, charset
(UTF8
)] char * pReserved4
;
853 DNS_RPC_ZONE_INFO_DOTNET
;
856 DWORD dwRpcStructureVersion
;
859 [string, charset
(UTF8
)] char * pszZoneName
;
862 dns_zone_update fAllowUpdate
;
869 [string, charset
(UTF8
)] char * pszDataFile
;
872 PDNS_ADDR_ARRAY aipMasters
;
875 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
876 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
877 PDNS_ADDR_ARRAY aipSecondaries
;
878 PDNS_ADDR_ARRAY aipNotify
;
880 /* WINS or NetBIOS lookup */
886 DWORD dwNoRefreshInterval
;
887 DWORD dwRefreshInterval
;
888 DWORD dwAvailForScavengeTime
;
889 PDNS_ADDR_ARRAY aipScavengeServers
;
891 /* Forwarder zones */
892 DWORD dwForwarderTimeout
;
893 DWORD fForwarderSlave
;
896 PDNS_ADDR_ARRAY aipLocalMasters
;
898 /* Directory partition */
900 [string, charset
(UTF8
)] char * pszDpFqdn
;
901 [string, charset
(UTF16
)] wchar_t * pwszZoneDn
;
902 /* Xfr time information */
903 DWORD dwLastSuccessfulSoaCheck
;
904 DWORD dwLastSuccessfulXfr
;
906 DWORD fQueuedForBackgroundLoad
;
907 DWORD fBackgroundLoadInProgress
;
910 /* Additional zone transfer information */
911 DWORD dwLastXfrAttempt
;
912 DWORD dwLastXfrResult
;
914 DNS_RPC_ZONE_INFO_LONGHORN
;
915 #define DNS_RPC_ZONE_INFO DNS_RPC_ZONE_INFO_LONGHORN
917 /* Zone property data */
919 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
920 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
921 PIP4_ARRAY aipSecondaries
;
922 PIP4_ARRAY aipNotify
;
924 DNS_RPC_ZONE_SECONDARIES_W2K
;
927 DWORD dwRpcStructureVersion
;
930 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
931 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
932 PIP4_ARRAY aipSecondaries
;
933 PIP4_ARRAY aipNotify
;
935 DNS_RPC_ZONE_SECONDARIES_DOTNET
;
938 DWORD dwRpcStructureVersion
;
941 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
942 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
943 PDNS_ADDR_ARRAY aipSecondaries
;
944 PDNS_ADDR_ARRAY aipNotify
;
946 DNS_RPC_ZONE_SECONDARIES_LONGHORN
;
947 #define DNS_RPC_ZONE_SECONDARIES DNS_RPC_ZONE_SECONDARIES_LONGHORN
952 [string, charset
(UTF8
)] char * pszFileName
;
954 DNS_RPC_ZONE_DATABASE_W2K
;
957 DWORD dwRpcStructureVersion
;
961 [string, charset
(UTF8
)] char * pszFileName
;
963 DNS_RPC_ZONE_DATABASE_DOTNET
;
964 #define DNS_RPC_ZONE_DATABASE DNS_RPC_ZONE_DATABASE_DOTNET
966 /* Zone create data */
968 [string, charset
(UTF8
)] char * pszZoneName
;
970 dns_zone_update fAllowUpdate
;
976 [string, charset
(UTF8
)] char * pszDataFile
;
980 /* Admin name (if auto-create SOA) */
982 [string, charset
(UTF8
)] char * pszAdmin
;
984 /* Masters (if secondary) */
986 PIP4_ARRAY aipMasters
;
990 PIP4_ARRAY aipSecondaries
;
991 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
992 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
994 /* Reserve some space to avoid versioning issues */
996 [string, charset
(UTF8
)] char * pvReserved1
;
997 [string, charset
(UTF8
)] char * pvReserved2
;
998 [string, charset
(UTF8
)] char * pvReserved3
;
999 [string, charset
(UTF8
)] char * pvReserved4
;
1000 [string, charset
(UTF8
)] char * pvReserved5
;
1001 [string, charset
(UTF8
)] char * pvReserved6
;
1002 [string, charset
(UTF8
)] char * pvReserved7
;
1003 [string, charset
(UTF8
)] char * pvReserved8
;
1013 DNS_RPC_ZONE_CREATE_INFO_W2K
;
1016 DWORD dwRpcStructureVersion
;
1019 [string, charset
(UTF8
)] char * pszZoneName
;
1021 dns_zone_update fAllowUpdate
;
1027 [string, charset
(UTF8
)] char * pszDataFile
;
1028 DWORD fDsIntegrated
;
1029 DWORD fLoadExisting
;
1031 /* Admin name (if auto-create SOA) */
1033 [string, charset
(UTF8
)] char * pszAdmin
;
1035 /* Masters (if secondary) */
1037 PIP4_ARRAY aipMasters
;
1041 PIP4_ARRAY aipSecondaries
;
1042 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
1043 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1045 /* Forwarder zones */
1048 DWORD fRecurseAfterForwarding
;
1050 /* Directory partition */
1052 DWORD dwDpFlags
; /* specify built-in DP or */
1053 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 FQDN of partition */
1055 DWORD dwReserved
[ 32 ];
1057 DNS_RPC_ZONE_CREATE_INFO_DOTNET
;
1060 DWORD dwRpcStructureVersion
;
1063 [string, charset
(UTF8
)] char * pszZoneName
;
1065 dns_zone_update fAllowUpdate
;
1071 [string, charset
(UTF8
)] char * pszDataFile
;
1072 DWORD fDsIntegrated
;
1073 DWORD fLoadExisting
;
1075 /* Admin name (if auto-create SOA) */
1077 [string, charset
(UTF8
)] char * pszAdmin
;
1079 /* Masters (if secondary) */
1081 PDNS_ADDR_ARRAY aipMasters
;
1085 PDNS_ADDR_ARRAY aipSecondaries
;
1086 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
1087 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1089 /* Forwarder zones */
1092 DWORD fRecurseAfterForwarding
;
1094 /* Directory partition */
1096 DWORD dwDpFlags
; /* specify built-in DP or */
1097 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 FQDN of partition */
1099 DWORD dwReserved
[ 32 ];
1101 DNS_RPC_ZONE_CREATE_INFO_LONGHORN
;
1102 #define DNS_RPC_ZONE_CREATE_INFO DNS_RPC_ZONE_CREATE_INFO_LONGHORN
1106 DWORD dwRpcStructureVersion
;
1109 [string, charset
(UTF8
)] char * pszZoneExportFile
;
1111 DNS_RPC_ZONE_EXPORT_INFO
;
1114 DWORD dwRpcStructureVersion
;
1118 [string, charset
(UTF8
)] char * pszPartitionFqdn
;
1119 [string, charset
(UTF8
)] char * pszQueryString
;
1121 DNS_EXTENSION pszReserved
[ 6 ];
1123 DNS_RPC_ENUM_ZONES_FILTER
;
1125 /* Forwarders information */
1127 DWORD fRecurseAfterForwarding
;
1128 DWORD dwForwardTimeout
;
1129 PIP4_ARRAY aipForwarders
;
1131 DNS_RPC_FORWARDERS_W2K
;
1134 DWORD dwRpcStructureVersion
;
1136 DWORD fRecurseAfterForwarding
;
1137 DWORD dwForwardTimeout
;
1138 PIP4_ARRAY aipForwarders
;
1140 DNS_RPC_FORWARDERS_DOTNET
;
1143 DWORD dwRpcStructureVersion
;
1145 DWORD fRecurseAfterForwarding
;
1146 DWORD dwForwardTimeout
;
1147 PDNS_ADDR_ARRAY aipForwarders
;
1149 DNS_RPC_FORWARDERS_LONGHORN
;
1150 #define DNS_RPC_FORWARDERS DNS_RPC_FORWARDERS_LONGHORN
1154 /* DNS autoconfig data types */
1157 typedef [v1_enum] enum {
1158 DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS
= 0x00000001,
1159 DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS
= 0x00000002,
1160 DNS_RPC_AUTOCONFIG_INTERNAL_ZONES
= 0x00000004,
1161 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT
= 0x00000010,
1162 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND
= 0x00000020,
1163 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND
= 0x00000040,
1164 DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR
= 0x00008000,
1165 DNS_RPC_AUTOCONFIG_ALL
= 0xFFFFFFFF
1170 DWORD dwRpcStructureVersion
;
1172 DNS_RPC_AUTOCONFIG dwAutoConfigFlags
;
1174 [string, charset
(UTF8
)] char * pszNewDomainName
;
1176 DNS_RPC_AUTOCONFIGURE
;
1180 /* DNS logging data types */
1183 typedef [bitmap32bit
] bitmap
{
1184 DNS_EVENT_LOG_SUCCESS
= 0x00000000,
1185 DNS_EVENT_LOG_ERROR_TYPE
= 0x00000001,
1186 DNS_EVENT_LOG_WARNING_TYPE
= 0x00000002,
1187 DNS_EVENT_LOG_INFORMATION_TYPE
= 0x00000004
1189 DNS_EVENT_LOG_TYPES
;
1191 typedef [bitmap32bit
] bitmap
{
1192 DNS_RPC_VIEW_AUTHORITY_DATA
= 0x00000001,
1193 DNS_RPC_VIEW_CACHE_DATA
= 0x00000002,
1194 DNS_RPC_VIEW_GLUE_DATA
= 0x00000004,
1195 DNS_RPC_VIEW_ROOT_HINT_DATA
= 0x00000008,
1196 DNS_RPC_VIEW_ADDITIONAL_DATA
= 0x00000010,
1197 DNS_RPC_VIEW_NO_CHILDREN
= 0x00010000,
1198 DNS_RPC_VIEW_ONLY_CHILDREN
= 0x00020000
1204 /* DNS statistics data types */
1216 DNSSRV_STAT_HEADER Header
;
1223 /* DNS Typid and Union of all RPC data types */
1226 typedef [v1_enum] enum {
1227 DNSSRV_TYPEID_NULL
= 0,
1228 DNSSRV_TYPEID_DWORD
= 1,
1229 DNSSRV_TYPEID_LPSTR
= 2,
1230 DNSSRV_TYPEID_LPWSTR
= 3,
1231 DNSSRV_TYPEID_IPARRAY
= 4,
1232 DNSSRV_TYPEID_BUFFER
= 5,
1233 DNSSRV_TYPEID_SERVER_INFO_W2K
= 6,
1234 DNSSRV_TYPEID_STATS
= 7,
1235 DNSSRV_TYPEID_FORWARDERS_W2K
= 8,
1236 DNSSRV_TYPEID_ZONE_W2K
= 9,
1237 DNSSRV_TYPEID_ZONE_INFO_W2K
= 10,
1238 DNSSRV_TYPEID_ZONE_SECONDARIES_W2K
= 11,
1239 DNSSRV_TYPEID_ZONE_DATABASE_W2K
= 12,
1240 DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K
= 13,
1241 DNSSRV_TYPEID_ZONE_CREATE_W2K
= 14,
1242 DNSSRV_TYPEID_NAME_AND_PARAM
= 15,
1243 DNSSRV_TYPEID_ZONE_LIST_W2K
= 16,
1244 DNSSRV_TYPEID_ZONE_RENAME
= 17,
1245 DNSSRV_TYPEID_ZONE_EXPORT
= 18,
1246 DNSSRV_TYPEID_SERVER_INFO_DOTNET
= 19,
1247 DNSSRV_TYPEID_FORWARDERS_DOTNET
= 20,
1248 DNSSRV_TYPEID_ZONE
= 21,
1249 DNSSRV_TYPEID_ZONE_INFO_DOTNET
= 22,
1250 DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET
= 23,
1251 DNSSRV_TYPEID_ZONE_DATABASE
= 24,
1252 DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET
= 25,
1253 DNSSRV_TYPEID_ZONE_CREATE_DOTNET
= 26,
1254 DNSSRV_TYPEID_ZONE_LIST
= 27,
1255 DNSSRV_TYPEID_DP_ENUM
= 28,
1256 DNSSRV_TYPEID_DP_INFO
= 29,
1257 DNSSRV_TYPEID_DP_LIST
= 30,
1258 DNSSRV_TYPEID_ENLIST_DP
= 31,
1259 DNSSRV_TYPEID_ZONE_CHANGE_DP
= 32,
1260 DNSSRV_TYPEID_ENUM_ZONES_FILTER
= 33,
1261 DNSSRV_TYPEID_ADDRARRAY
= 34,
1262 DNSSRV_TYPEID_SERVER_INFO
= 35,
1263 DNSSRV_TYPEID_ZONE_INFO
= 36,
1264 DNSSRV_TYPEID_FORWARDERS
= 37,
1265 DNSSRV_TYPEID_ZONE_SECONDARIES
= 38,
1266 DNSSRV_TYPEID_ZONE_TYPE_RESET
= 39,
1267 DNSSRV_TYPEID_ZONE_CREATE
= 40,
1268 DNSSRV_TYPEID_IP_VALIDATE
= 41,
1269 DNSSRV_TYPEID_AUTOCONFIGURE
= 42,
1270 DNSSRV_TYPEID_UTF8_STRING_LIST
= 43,
1271 DNSSRV_TYPEID_UNICODE_STRING_LIST
= 44
1275 typedef [switch_type(uint3264
)] union {
1276 [case(DNSSRV_TYPEID_NULL
)] PBYTE Null
;
1278 [case(DNSSRV_TYPEID_DWORD
)] DWORD Dword
;
1280 [case(DNSSRV_TYPEID_LPSTR
)] [string, charset
(UTF8
)] char * String;
1282 [case(DNSSRV_TYPEID_LPWSTR
)] [string, charset
(UTF16
)] wchar_t * WideString
;
1284 [case(DNSSRV_TYPEID_IPARRAY
)] IP4_ARRAY
*IpArray
;
1286 [case(DNSSRV_TYPEID_BUFFER
)]
1287 DNS_RPC_BUFFER
*Buffer
;
1289 [case(DNSSRV_TYPEID_SERVER_INFO_W2K
)]
1290 DNS_RPC_SERVER_INFO_W2K
*ServerInfoW2K
;
1292 [case(DNSSRV_TYPEID_STATS
)]
1295 [case(DNSSRV_TYPEID_FORWARDERS_W2K
)]
1296 DNS_RPC_FORWARDERS_W2K
*ForwardersW2K
;
1298 [case(DNSSRV_TYPEID_ZONE_W2K
)]
1299 DNS_RPC_ZONE_W2K
*ZoneW2K
;
1301 [case(DNSSRV_TYPEID_ZONE_INFO_W2K
)]
1302 DNS_RPC_ZONE_INFO_W2K
*ZoneInfoW2K
;
1304 [case(DNSSRV_TYPEID_ZONE_SECONDARIES_W2K
)]
1305 DNS_RPC_ZONE_SECONDARIES_W2K
*SecondariesW2K
;
1307 [case(DNSSRV_TYPEID_ZONE_DATABASE_W2K
)]
1308 DNS_RPC_ZONE_DATABASE_W2K
*DatabaseW2K
;
1310 [case(DNSSRV_TYPEID_ZONE_CREATE_W2K
)]
1311 DNS_RPC_ZONE_CREATE_INFO_W2K
*ZoneCreateW2K
;
1313 [case(DNSSRV_TYPEID_NAME_AND_PARAM
)]
1314 DNS_RPC_NAME_AND_PARAM
*NameAndParam
;
1316 [case(DNSSRV_TYPEID_ZONE_LIST_W2K
)]
1317 DNS_RPC_ZONE_LIST_W2K
*ZoneListW2K
;
1319 [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET
)]
1320 DNS_RPC_SERVER_INFO_DOTNET
*ServerInfoDotNet
;
1322 [case(DNSSRV_TYPEID_FORWARDERS_DOTNET
)]
1323 DNS_RPC_FORWARDERS_DOTNET
*ForwardersDotNet
;
1325 [case(DNSSRV_TYPEID_ZONE
)]
1328 [case(DNSSRV_TYPEID_ZONE_INFO_DOTNET
)]
1329 DNS_RPC_ZONE_INFO_DOTNET
*ZoneInfoDotNet
;
1331 [case(DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET
)]
1332 DNS_RPC_ZONE_SECONDARIES_DOTNET
*SecondariesDotNet
;
1334 [case(DNSSRV_TYPEID_ZONE_DATABASE
)]
1335 DNS_RPC_ZONE_DATABASE
*Database
;
1337 [case(DNSSRV_TYPEID_ZONE_CREATE_DOTNET
)]
1338 DNS_RPC_ZONE_CREATE_INFO_DOTNET
*ZoneCreateDotNet
;
1340 [case(DNSSRV_TYPEID_ZONE_LIST
)]
1341 DNS_RPC_ZONE_LIST
*ZoneList
;
1343 [case(DNSSRV_TYPEID_ZONE_EXPORT
)]
1344 DNS_RPC_ZONE_EXPORT_INFO
*ZoneExport
;
1346 [case(DNSSRV_TYPEID_DP_INFO
)]
1347 DNS_RPC_DP_INFO
*DirectoryPartition
;
1349 [case(DNSSRV_TYPEID_DP_ENUM
)]
1350 DNS_RPC_DP_ENUM
*DirectoryPartitionEnum
;
1352 [case(DNSSRV_TYPEID_DP_LIST
)]
1353 DNS_RPC_DP_LIST
*DirectoryPartitionList
;
1355 [case(DNSSRV_TYPEID_ENLIST_DP
)]
1356 DNS_RPC_ENLIST_DP
*EnlistDirectoryPartition
;
1358 [case(DNSSRV_TYPEID_ZONE_CHANGE_DP
)]
1359 DNS_RPC_ZONE_CHANGE_DP
*ZoneChangeDirectoryPartition
;
1361 [case(DNSSRV_TYPEID_ENUM_ZONES_FILTER
)]
1362 DNS_RPC_ENUM_ZONES_FILTER
*EnumZonesFilter
;
1364 [case(DNSSRV_TYPEID_ADDRARRAY
)]
1365 DNS_ADDR_ARRAY
*AddrArray
;
1367 [case(DNSSRV_TYPEID_SERVER_INFO
)]
1368 DNS_RPC_SERVER_INFO
*ServerInfo
;
1370 [case(DNSSRV_TYPEID_ZONE_CREATE
)]
1371 DNS_RPC_ZONE_CREATE_INFO
*ZoneCreate
;
1373 [case(DNSSRV_TYPEID_FORWARDERS
)]
1374 DNS_RPC_FORWARDERS
*Forwarders
;
1376 [case(DNSSRV_TYPEID_ZONE_SECONDARIES
)]
1377 DNS_RPC_ZONE_SECONDARIES
*Secondaries
;
1379 [case(DNSSRV_TYPEID_IP_VALIDATE
)]
1380 DNS_RPC_IP_VALIDATE
*IpValidate
;
1382 [case(DNSSRV_TYPEID_ZONE_INFO
)]
1383 DNS_RPC_ZONE_INFO
*ZoneInfo
;
1385 [case(DNSSRV_TYPEID_AUTOCONFIGURE
)]
1386 DNS_RPC_AUTOCONFIGURE
*AutoConfigure
;
1388 [case(DNSSRV_TYPEID_UTF8_STRING_LIST
)]
1389 DNS_RPC_UTF8_STRING_LIST
*Utf8StringList
;
1394 /* DNS RPC interface */
1397 typedef [public,gensize
] struct {
1398 [value
((12+ndr_size_DNS_RPC_NAME
(&dnsNodeName
,0)+3) & ~
3)] uint16 wLength
;
1399 uint16 wRecordCount
;
1401 uint32 dwChildCount
;
1402 DNS_RPC_NAME dnsNodeName
;
1403 DNS_RPC_RECORD records
[wRecordCount
];
1406 typedef [public,nopull
,nopush
,gensize
] struct {
1408 DNS_RPC_RECORDS rec
[count
];
1409 } DNS_RPC_RECORDS_ARRAY
;
1411 WERROR DnssrvOperation
(
1412 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1413 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1414 [in] DWORD dwContext
,
1415 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1416 [in] DNS_RPC_TYPEID dwTypeId
,
1417 [in, switch_is(dwTypeId
)] DNSSRV_RPC_UNION pData
1421 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1422 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1423 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1424 [out] DNS_RPC_TYPEID
*pdwTypeId
,
1425 [out, switch_is(*pdwTypeId
)] DNSSRV_RPC_UNION
*ppData
1428 WERROR DnssrvComplexOperation
(
1429 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1430 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1431 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1432 [in] DNS_RPC_TYPEID dwTypeIn
,
1433 [in, switch_is(dwTypeIn
)] DNSSRV_RPC_UNION pDataIn
,
1434 [out] DNS_RPC_TYPEID
*pdwTypeOut
,
1435 [out, switch_is(*pdwTypeOut
)] DNSSRV_RPC_UNION
*ppDataOut
1438 WERROR DnssrvEnumRecords
(
1439 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1440 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1441 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1442 [in,unique,string,charset
(UTF8
)] uint8
*pszStartChild
,
1443 [in] dns_record_type wRecordType
,
1444 [in] DNS_SELECT_FLAGS fSelectFlag
,
1445 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStart
,
1446 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStop
,
1447 [out] DWORD
*pdwBufferLength
,
1448 [out,ref,subcontext
(4),subcontext_size
(*pdwBufferLength
)] DNS_RPC_RECORDS_ARRAY
**pBuffer
1451 WERROR DnssrvUpdateRecord
(
1452 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1453 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1454 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1455 [in, unique] DNS_RPC_RECORD_BUF
*pAddRecord
,
1456 [in, unique] DNS_RPC_RECORD_BUF
*pDeleteRecord
1459 WERROR DnssrvOperation2
(
1460 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1461 [in] uint32 dwSettingFlags
,
1462 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1463 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1464 [in] DWORD dwContext
,
1465 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1466 [in] DNS_RPC_TYPEID dwTypeId
,
1467 [in, switch_is(dwTypeId
)] DNSSRV_RPC_UNION pData
1470 WERROR DnssrvQuery2
(
1471 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1472 [in] uint32 dwSettingFlags
,
1473 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1474 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1475 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1476 [out] DNS_RPC_TYPEID
*pdwTypeId
,
1477 [out, switch_is(*pdwTypeId
)] DNSSRV_RPC_UNION
*ppData
1480 WERROR DnssrvComplexOperation2
(
1481 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1482 [in] uint32 dwSettingFlags
,
1483 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1484 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1485 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1486 [in] DNS_RPC_TYPEID dwTypeIn
,
1487 [in, switch_is(dwTypeIn
)] DNSSRV_RPC_UNION pDataIn
,
1488 [out] DNS_RPC_TYPEID
*pdwTypeOut
,
1489 [out, switch_is(*pdwTypeOut
)] DNSSRV_RPC_UNION
*ppDataOut
1492 WERROR DnssrvEnumRecords2
(
1493 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1494 [in] DWORD dwSettingFlags
,
1495 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1496 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1497 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1498 [in,unique,string,charset
(UTF8
)] uint8
*pszStartChild
,
1499 [in] dns_record_type wRecordType
,
1500 [in] DNS_SELECT_FLAGS fSelectFlag
,
1501 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStart
,
1502 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStop
,
1503 [out] uint32
*pdwBufferLength
,
1504 [out,ref,subcontext
(4),subcontext_size
(*pdwBufferLength
)] DNS_RPC_RECORDS_ARRAY
**pBuffer
1507 WERROR DnssrvUpdateRecord2
(
1508 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1509 [in] uint32 dwSettingFlags
,
1510 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1511 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1512 [in,string,charset
(UTF8
)] uint8
*pszNodeName
,
1513 [in, unique] DNS_RPC_RECORD_BUF
*pAddRecord
,
1514 [in, unique] DNS_RPC_RECORD_BUF
*pDeleteRecord