3 dnsserver interface definition
4 for a protocol description 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 [public,gensize
] struct {
75 [value
(strlen
(str
))] uint8 len
;
76 [charset
(UNIX
)] 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
;
106 typedef [nopull
,nopush
] struct {
108 DNS_RPC_NAME str
[count
];
110 DNS_RPC_RECORD_STRING
;
116 DNS_RPC_NAME nameTarget
;
120 typedef [nodiscriminant
,gensize
,flag
(NDR_NOALIGN
)] union {
121 [case(DNS_TYPE_TOMBSTONE
)] NTTIME timestamp
;
122 [case(DNS_TYPE_A
)] [flag
(NDR_BIG_ENDIAN
)] ipv4address ipv4
;
123 [case(DNS_TYPE_NS
)] DNS_RPC_NAME name
;
124 [case(DNS_TYPE_MD
)] DNS_RPC_NAME name
;
125 [case(DNS_TYPE_MF
)] DNS_RPC_NAME name
;
126 [case(DNS_TYPE_CNAME
)] DNS_RPC_NAME name
;
127 [case(DNS_TYPE_SOA
)] DNS_RPC_RECORD_SOA soa
;
128 [case(DNS_TYPE_MB
)] DNS_RPC_NAME name
;
129 [case(DNS_TYPE_MG
)] DNS_RPC_NAME name
;
130 [case(DNS_TYPE_MR
)] DNS_RPC_NAME name
;
131 [case(DNS_TYPE_PTR
)] DNS_RPC_NAME
ptr;
132 [case(DNS_TYPE_HINFO
)] DNS_RPC_NAME hinfo
;
133 [case(DNS_TYPE_MX
)] DNS_RPC_RECORD_NAME_PREFERENCE mx
;
134 [case(DNS_TYPE_TXT
)] DNS_RPC_RECORD_STRING txt
;
135 [case(DNS_TYPE_AAAA
)] ipv6address ipv6
;
136 [case(DNS_TYPE_SRV
)] DNS_RPC_RECORD_SRV srv
;
137 [case(DNS_TYPE_DNAME
)] DNS_RPC_NAME name
;
141 typedef [public] struct {
142 [value
(ndr_size_DNS_RPC_DATA
(&data
,wType
,0))] uint16 wDataLength
;
143 dns_record_type wType
;
149 [subcontext
(0),subcontext_size
(wDataLength
),switch_is(wType
)] DNS_RPC_DATA data
;
154 [value
(ndr_size_DNS_RPC_DATA
(&rec.data
,rec.wType
,0))] uint3264 wContextLength
;
161 /* DNS Address Information data types */
164 typedef [v1_enum] enum {
165 DNS_IPVAL_DNS_SERVERS
= 0x00,
166 DNS_IPVAL_DNS_ROOTHINTS
= 0x01,
167 DNS_IPVAL_DNS_FORWARDERS
= 0x02,
168 DNS_IPVAL_DNS_ZONE_MASTERS
= 0x03,
169 DNS_IPVAL_DNS_DELEGATIONS
= 0x04
173 typedef [v1_enum] enum {
174 ERROR_SUCCESS
= 0x00,
175 DNS_IPVAL_INVALID_ADDR
= 0x01,
176 DNS_IPVAL_UNREACHABLE
= 0x02,
177 DNS_IPVAL_NO_RESPONSE
= 0x03,
178 DNS_IPVAL_NOT_AUTH_FOR_ZONE
= 0x04,
179 DNS_IPVAL_UNKNOWN_ERROR
= 0xFF,
180 DNS_IPVAL_NO_TCP
= 0x80000000
182 DNS_IP_VALIDATE_RETURN_FLAGS
;
186 [size_is( AddrCount
)] DWORD AddrArray
[];
188 #define PIP4_ARRAY IP4_ARRAY
*
192 DWORD DnsAddrUserDword
[8];
205 [size_is( AddrCount
)] DNS_ADDR AddrArray
[];
207 #define PDNS_ADDR_ARRAY DNS_ADDR_ARRAY
*
210 DWORD dwRpcStructureVersion
;
214 [string, charset
(UTF8
)] char * pszContextName
;
215 PDNS_ADDR_ARRAY aipValidateAddrs
;
221 /* DNS Server data types */
224 typedef [enum8bit
] enum {
225 DNS_BOOT_METHOD_UNINITIALIZED
= 0x00,
226 DNS_BOOT_METHOD_FILE
= 0x01,
227 DNS_BOOT_METHOD_REGISTRY
= 0x02,
228 DNS_BOOT_METHOD_DIRECTORY
= 0x03
232 typedef [v1_enum] enum {
233 DNS_ALLOW_RFC_NAMES_ONLY
= 0x00,
234 DNS_ALLOW_NONRFC_NAMES
= 0x01,
235 DNS_ALLOW_MULTIBYTE_NAMES
= 0x02,
236 DNS_ALLOW_ALL_NAMES
= 0x03
242 /* basic configuration flags */
245 DNS_BOOT_METHOD fBootMethod
;
246 BOOLEAN fAdminConfigured
;
247 BOOLEAN fAllowUpdate
;
248 BOOLEAN fDsAvailable
;
250 /* pointer section */
252 [string, charset
(UTF8
)] char * pszServerName
;
256 [string, charset
(UTF16
)] wchar_t * pszDsContainer
;
260 PIP4_ARRAY aipServerAddrs
;
261 PIP4_ARRAY aipListenAddrs
;
265 PIP4_ARRAY aipForwarders
;
267 /* future extensions */
282 /* configuration DWORDs */
284 DWORD dwForwardTimeout
;
286 DNS_NAME_CHECK_FLAG dwNameCheckFlag
;
287 DWORD cAddressAnswerLimit
;
288 DWORD dwRecursionRetry
;
289 DWORD dwRecursionTimeout
;
291 DWORD dwDsPollingInterval
;
293 /* aging / scavenging */
295 DWORD dwScavengingInterval
;
296 DWORD dwDefaultRefreshInterval
;
297 DWORD dwDefaultNoRefreshInterval
;
299 DWORD dwReserveArray
[10];
303 /* configuration flags */
305 BOOLEAN fAutoReverseZones
;
306 BOOLEAN fAutoCacheUpdate
;
308 /* recursion control */
310 BOOLEAN fRecurseAfterForwarding
;
311 BOOLEAN fForwardDelegations
;
312 BOOLEAN fNoRecursion
;
313 BOOLEAN fSecureResponses
;
318 BOOLEAN fLocalNetPriority
;
320 /* BIND compatibility and mimicking */
322 BOOLEAN fBindSecondaries
;
323 BOOLEAN fWriteAuthorityNs
;
325 /* Bells and whistles */
327 BOOLEAN fStrictFileParsing
;
328 BOOLEAN fLooseWildcarding
;
330 /* aging / scavenging */
332 BOOLEAN fDefaultAgingState
;
333 BOOLEAN fReserveArray
[15];
335 DNS_RPC_SERVER_INFO_W2K
;
338 [string, charset
(UTF8
)] uint8
*extension
;
341 typedef [public] struct {
342 DWORD dwRpcStructureVersion
;
345 /* basic configuration flags */
348 DNS_BOOT_METHOD fBootMethod
;
349 BOOLEAN fAdminConfigured
;
350 BOOLEAN fAllowUpdate
;
351 BOOLEAN fDsAvailable
;
353 /* pointer section */
355 [string, charset
(UTF8
)] char * pszServerName
;
359 [string, charset
(UTF16
)] wchar_t * pszDsContainer
;
363 PIP4_ARRAY aipServerAddrs
;
364 PIP4_ARRAY aipListenAddrs
;
368 PIP4_ARRAY aipForwarders
;
372 PIP4_ARRAY aipLogFilter
;
373 [string, charset
(UTF16
)] wchar_t * pwszLogFilePath
;
375 /* Server domain/forest */
377 [string, charset
(UTF8
)] char * pszDomainName
; /* UTF-8 FQDN */
378 [string, charset
(UTF8
)] char * pszForestName
; /* UTF-8 FQDN */
380 /* Built-in directory partitions */
382 [string, charset
(UTF8
)] char * pszDomainDirectoryPartition
; /* UTF-8 FQDN */
383 [string, charset
(UTF8
)] char * pszForestDirectoryPartition
; /* UTF-8 FQDN */
385 /* future extensions */
386 DNS_EXTENSION pExtensions
[6];
395 /* configuration DWORDs */
397 DWORD dwForwardTimeout
;
399 DNS_NAME_CHECK_FLAG dwNameCheckFlag
;
400 DWORD cAddressAnswerLimit
;
401 DWORD dwRecursionRetry
;
402 DWORD dwRecursionTimeout
;
404 DWORD dwDsPollingInterval
;
405 DWORD dwLocalNetPriorityNetMask
;
407 /* aging and scavenging */
409 DWORD dwScavengingInterval
;
410 DWORD dwDefaultRefreshInterval
;
411 DWORD dwDefaultNoRefreshInterval
;
412 DWORD dwLastScavengeTime
;
416 DWORD dwEventLogLevel
;
417 DWORD dwLogFileMaxSize
;
419 /* Active Directory information */
421 DWORD dwDsForestVersion
;
422 DWORD dwDsDomainVersion
;
423 DWORD dwDsDsaVersion
;
425 DWORD dwReserveArray
[ 4 ];
429 /* configuration flags */
431 BOOLEAN fAutoReverseZones
;
432 BOOLEAN fAutoCacheUpdate
;
434 /* recursion control */
436 BOOLEAN fRecurseAfterForwarding
;
437 BOOLEAN fForwardDelegations
;
438 BOOLEAN fNoRecursion
;
439 BOOLEAN fSecureResponses
;
444 BOOLEAN fLocalNetPriority
;
446 /* BIND compatibility and mimicking */
448 BOOLEAN fBindSecondaries
;
449 BOOLEAN fWriteAuthorityNs
;
451 /* Bells and whistles */
453 BOOLEAN fStrictFileParsing
;
454 BOOLEAN fLooseWildcarding
;
456 /* aging \ scavenging */
458 BOOLEAN fDefaultAgingState
;
460 BOOLEAN fReserveArray
[ 15 ];
462 DNS_RPC_SERVER_INFO_DOTNET
;
464 typedef [public] struct {
465 DWORD dwRpcStructureVersion
;
468 /* basic configuration flags */
471 DNS_BOOT_METHOD fBootMethod
;
472 BOOLEAN fAdminConfigured
;
473 BOOLEAN fAllowUpdate
;
474 BOOLEAN fDsAvailable
;
476 /* pointer section */
478 [string, charset
(UTF8
)] char * pszServerName
;
482 [string, charset
(UTF16
)] wchar_t * pszDsContainer
;
486 PDNS_ADDR_ARRAY aipServerAddrs
;
487 PDNS_ADDR_ARRAY aipListenAddrs
;
491 PDNS_ADDR_ARRAY aipForwarders
;
495 PDNS_ADDR_ARRAY aipLogFilter
;
496 [string, charset
(UTF16
)] wchar_t * pwszLogFilePath
;
498 /* Server domain/forest */
500 [string, charset
(UTF8
)] char * pszDomainName
; /* UTF-8 FQDN */
501 [string, charset
(UTF8
)] char * pszForestName
; /* UTF-8 FQDN */
503 /* Built-in directory partitions */
505 [string, charset
(UTF8
)] char * pszDomainDirectoryPartition
; /* UTF-8 FQDN */
506 [string, charset
(UTF8
)] char * pszForestDirectoryPartition
; /* UTF-8 FQDN */
508 /* future extensions */
509 DNS_EXTENSION pExtensions
[6];
518 /* configuration DWORDs */
520 DWORD dwForwardTimeout
;
522 DNS_NAME_CHECK_FLAG dwNameCheckFlag
;
523 DWORD cAddressAnswerLimit
;
524 DWORD dwRecursionRetry
;
525 DWORD dwRecursionTimeout
;
527 DWORD dwDsPollingInterval
;
528 DWORD dwLocalNetPriorityNetMask
;
530 /* aging and scavenging */
532 DWORD dwScavengingInterval
;
533 DWORD dwDefaultRefreshInterval
;
534 DWORD dwDefaultNoRefreshInterval
;
535 DWORD dwLastScavengeTime
;
539 DWORD dwEventLogLevel
;
540 DWORD dwLogFileMaxSize
;
542 /* Active Directory information */
544 DWORD dwDsForestVersion
;
545 DWORD dwDsDomainVersion
;
546 DWORD dwDsDsaVersion
;
549 DWORD dwReserveArray
[ 3 ];
553 /* configuration flags */
555 BOOLEAN fAutoReverseZones
;
556 BOOLEAN fAutoCacheUpdate
;
558 /* recursion control */
560 BOOLEAN fRecurseAfterForwarding
;
561 BOOLEAN fForwardDelegations
;
562 BOOLEAN fNoRecursion
;
563 BOOLEAN fSecureResponses
;
568 BOOLEAN fLocalNetPriority
;
570 /* BIND compatibility and mimicking */
572 BOOLEAN fBindSecondaries
;
573 BOOLEAN fWriteAuthorityNs
;
575 /* Bells and whistles */
577 BOOLEAN fStrictFileParsing
;
578 BOOLEAN fLooseWildcarding
;
580 /* aging \ scavenging */
582 BOOLEAN fDefaultAgingState
;
584 BOOLEAN fReserveArray
[ 15 ];
586 DNS_RPC_SERVER_INFO_LONGHORN
;
587 #define DNS_RPC_SERVER_INFO DNS_RPC_SERVER_INFO_LONGHORN
591 /* DNS Application directory partition data types */
594 typedef [bitmap32bit
] bitmap
{
595 DNS_DP_AUTOCREATED
= 0x00000001,
596 DNS_DP_LEGACY
= 0x00000002,
597 DNS_DP_DOMAIN_DEFAULT
= 0x00000004,
598 DNS_DP_FOREST_DEFAULT
= 0x00000008,
599 DNS_DP_ENLISTED
= 0x00000010,
600 DNS_DP_DELETED
= 0x00000020
605 [string, charset
(UTF16
)] wchar_t * pszReplicaDn
;
608 #define PDNS_RPC_DP_REPLICA DNS_RPC_DP_REPLICA
*
610 typedef [v1_enum] enum {
612 DNS_DP_STATE_REPL_INCOMING
= 0x01,
613 DNS_DP_STATE_REPL_OUTGOING
= 0x02,
614 DNS_DP_STATE_UNKNOWN
= 0x03
618 DWORD dwRpcStructureVersion
;
621 [string, charset
(UTF8
)] char * pszDpFqdn
;
622 [string, charset
(UTF16
)] wchar_t * pszDpDn
;
623 [string, charset
(UTF16
)] wchar_t * pszCrDn
;
626 DNS_DP_STATE dwState
;
628 DWORD dwReserved
[ 3 ];
629 DNS_EXTENSION pwszReserved
[ 3 ];
630 [range(0,10000)] DWORD dwReplicaCount
;
631 [size_is(dwReplicaCount
)] PDNS_RPC_DP_REPLICA ReplicaArray
[];
636 DWORD dwRpcStructureVersion
;
639 [string, charset
(UTF8
)] char * pszDpFqdn
;
644 #define PDNS_RPC_DP_ENUM DNS_RPC_DP_ENUM
*
647 DWORD dwRpcStructureVersion
;
649 [range(0,5000)] DWORD dwDpCount
;
650 [size_is(dwDpCount
)] PDNS_RPC_DP_ENUM DpArray
[];
655 DWORD dwRpcStructureVersion
;
657 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 */
663 DWORD dwRpcStructureVersion
;
665 [string, charset
(UTF8
)] char * pszDestPartition
;
667 DNS_RPC_ZONE_CHANGE_DP
;
671 /* DNS Zone data types */
674 /* DNS_ZONE_TYPE defined in dnsp as dns_zone_type */
676 typedef [v1_enum] enum {
677 DNS_ZONE_SECSECURE_NO_SECURITY
= 0x00,
678 DNS_ZONE_SECSECURE_NS_ONLY
= 0x01,
679 DNS_ZONE_SECSECURE_LIST_ONLY
= 0x02,
680 DNS_ZONE_SECSECURE_NO_XFER
= 0x03
682 DNS_ZONE_SECONDARY_SECURITY
;
684 typedef [v1_enum] enum {
685 DNS_ZONE_NOTIFY_OFF
= 0x00,
686 DNS_ZONE_NOTIFY_ALL_SECONDARIES
= 0x01,
687 DNS_ZONE_NOTIFY_LIST_ONLY
= 0x02
689 DNS_ZONE_NOTIFY_LEVEL
;
691 typedef [v1_enum] enum {
692 DNS_ZONE_REQUEST_PRIMARY
= 0x00000001,
693 DNS_ZONE_REQUEST_SECONDARY
= 0x00000002,
694 DNS_ZONE_REQUEST_CACHE
= 0x00000004,
695 DNS_ZONE_REQUEST_AUTO
= 0x00000008,
696 DNS_ZONE_REQUEST_FORWARD
= 0x00000010,
697 DNS_ZONE_REQUEST_REVERSE
= 0x00000020,
698 DNS_ZONE_REQUEST_FORWARDER
= 0x00000040,
699 DNS_ZONE_REQUEST_STUB
= 0x00000080,
700 DNS_ZONE_REQUEST_DS
= 0x00000100,
701 DNS_ZONE_REQUEST_NON_DS
= 0x00000200,
702 DNS_ZONE_REQUEST_DOMAIN_DP
= 0x00000400,
703 DNS_ZONE_REQUEST_FOREST_DP
= 0x00000800,
704 DNS_ZONE_REQUEST_CUSTOM_DP
= 0x00001000,
705 DNS_ZONE_REQUEST_LEGACY_DP
= 0x00002000
707 DNS_ZONE_REQUEST_FILTERS
;
709 typedef [bitmap32bit
] bitmap
{
710 DNS_RPC_ZONE_PAUSED
= 0x0001,
711 DNS_RPC_ZONE_SHUTDOWN
= 0x0002,
712 DNS_RPC_ZONE_REVERSE
= 0x0004,
713 DNS_RPC_ZONE_AUTOCREATED
= 0x0008,
714 DNS_RPC_ZONE_DSINTEGRATED
= 0x0010,
715 DNS_RPC_ZONE_AGING
= 0x0020,
716 DNS_RPC_ZONE_UPDATE_UNSECURE
= 0x0040,
717 DNS_RPC_ZONE_UPDATE_SECURE
= 0x0080,
718 DNS_RPC_ZONE_READONLY
= 0x0100
719 } DNS_RPC_ZONE_FLAGS
;
722 [string, charset
(UTF16
)] uint16
* pszZoneName
;
723 DNS_RPC_ZONE_FLAGS Flags
;
728 #define PDNS_RPC_ZONE_W2K DNS_RPC_ZONE_W2K
*
731 DWORD dwRpcStructureVersion
;
733 [string, charset
(UTF16
)] wchar_t * pszZoneName
;
734 DNS_RPC_ZONE_FLAGS Flags
;
737 DNS_RPC_DP_FLAGS dwDpFlags
;
738 [string, charset
(UTF8
)] char * pszDpFqdn
;
741 #define DNS_RPC_ZONE DNS_RPC_ZONE_DOTNET
742 #define PDNS_RPC_ZONE_DOTNET DNS_RPC_ZONE_DOTNET
*
744 /* Zone enumeration */
746 [range(0,500000)] DWORD dwZoneCount
;
747 [size_is(dwZoneCount
)] PDNS_RPC_ZONE_W2K ZoneArray
[];
749 DNS_RPC_ZONE_LIST_W2K
;
752 DWORD dwRpcStructureVersion
;
754 [range(0,500000)] DWORD dwZoneCount
;
755 [size_is(dwZoneCount
)] PDNS_RPC_ZONE_DOTNET ZoneArray
[];
757 DNS_RPC_ZONE_LIST_DOTNET
;
758 #define DNS_RPC_ZONE_LIST DNS_RPC_ZONE_LIST_DOTNET
760 /* Zone information */
762 [string, charset
(UTF8
)] char * pszZoneName
;
765 dns_zone_update fAllowUpdate
;
772 [string, charset
(UTF8
)] char * pszDataFile
;
775 PIP4_ARRAY aipMasters
;
778 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
779 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
780 PIP4_ARRAY aipSecondaries
;
781 PIP4_ARRAY aipNotify
;
783 /* WINS or NetBIOS lookup */
789 DWORD dwNoRefreshInterval
;
790 DWORD dwRefreshInterval
;
791 DWORD dwAvailForScavengeTime
;
792 PIP4_ARRAY aipScavengeServers
;
794 /* save some space, just in case */
795 /* avoid versioning issues if possible */
801 DNS_RPC_ZONE_INFO_W2K
;
804 DWORD dwRpcStructureVersion
;
807 [string, charset
(UTF8
)] char * pszZoneName
;
810 dns_zone_update fAllowUpdate
;
817 [string, charset
(UTF8
)] char * pszDataFile
;
820 PIP4_ARRAY aipMasters
;
823 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
824 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
825 PIP4_ARRAY aipSecondaries
;
826 PIP4_ARRAY aipNotify
;
828 /* WINS or NetBIOS lookup */
834 DWORD dwNoRefreshInterval
;
835 DWORD dwRefreshInterval
;
836 DWORD dwAvailForScavengeTime
;
837 PIP4_ARRAY aipScavengeServers
;
839 /* Forwarder zones */
840 DWORD dwForwarderTimeout
;
841 DWORD fForwarderSlave
;
844 PIP4_ARRAY aipLocalMasters
;
846 /* Directory partition */
848 [string, charset
(UTF8
)] char * pszDpFqdn
;
849 [string, charset
(UTF16
)] wchar_t * pwszZoneDn
;
851 /* Xfr time information */
852 DWORD dwLastSuccessfulSoaCheck
;
853 DWORD dwLastSuccessfulXfr
;
855 /* save some space, just in case */
861 [string, charset
(UTF8
)] char * pReserved1
;
862 [string, charset
(UTF8
)] char * pReserved2
;
863 [string, charset
(UTF8
)] char * pReserved3
;
864 [string, charset
(UTF8
)] char * pReserved4
;
866 DNS_RPC_ZONE_INFO_DOTNET
;
869 DWORD dwRpcStructureVersion
;
872 [string, charset
(UTF8
)] char * pszZoneName
;
875 dns_zone_update fAllowUpdate
;
882 [string, charset
(UTF8
)] char * pszDataFile
;
885 PDNS_ADDR_ARRAY aipMasters
;
888 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
889 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
890 PDNS_ADDR_ARRAY aipSecondaries
;
891 PDNS_ADDR_ARRAY aipNotify
;
893 /* WINS or NetBIOS lookup */
899 DWORD dwNoRefreshInterval
;
900 DWORD dwRefreshInterval
;
901 DWORD dwAvailForScavengeTime
;
902 PDNS_ADDR_ARRAY aipScavengeServers
;
904 /* Forwarder zones */
905 DWORD dwForwarderTimeout
;
906 DWORD fForwarderSlave
;
909 PDNS_ADDR_ARRAY aipLocalMasters
;
911 /* Directory partition */
913 [string, charset
(UTF8
)] char * pszDpFqdn
;
914 [string, charset
(UTF16
)] wchar_t * pwszZoneDn
;
915 /* Xfr time information */
916 DWORD dwLastSuccessfulSoaCheck
;
917 DWORD dwLastSuccessfulXfr
;
919 DWORD fQueuedForBackgroundLoad
;
920 DWORD fBackgroundLoadInProgress
;
923 /* Additional zone transfer information */
924 DWORD dwLastXfrAttempt
;
925 DWORD dwLastXfrResult
;
927 DNS_RPC_ZONE_INFO_LONGHORN
;
928 #define DNS_RPC_ZONE_INFO DNS_RPC_ZONE_INFO_LONGHORN
930 /* Zone property data */
932 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
933 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
934 PIP4_ARRAY aipSecondaries
;
935 PIP4_ARRAY aipNotify
;
937 DNS_RPC_ZONE_SECONDARIES_W2K
;
940 DWORD dwRpcStructureVersion
;
943 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
944 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
945 PIP4_ARRAY aipSecondaries
;
946 PIP4_ARRAY aipNotify
;
948 DNS_RPC_ZONE_SECONDARIES_DOTNET
;
951 DWORD dwRpcStructureVersion
;
954 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
955 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
956 PDNS_ADDR_ARRAY aipSecondaries
;
957 PDNS_ADDR_ARRAY aipNotify
;
959 DNS_RPC_ZONE_SECONDARIES_LONGHORN
;
960 #define DNS_RPC_ZONE_SECONDARIES DNS_RPC_ZONE_SECONDARIES_LONGHORN
965 [string, charset
(UTF8
)] char * pszFileName
;
967 DNS_RPC_ZONE_DATABASE_W2K
;
970 DWORD dwRpcStructureVersion
;
974 [string, charset
(UTF8
)] char * pszFileName
;
976 DNS_RPC_ZONE_DATABASE_DOTNET
;
977 #define DNS_RPC_ZONE_DATABASE DNS_RPC_ZONE_DATABASE_DOTNET
979 /* Zone create data */
981 [string, charset
(UTF8
)] char * pszZoneName
;
983 dns_zone_update fAllowUpdate
;
989 [string, charset
(UTF8
)] char * pszDataFile
;
993 /* Admin name (if auto-create SOA) */
995 [string, charset
(UTF8
)] char * pszAdmin
;
997 /* Masters (if secondary) */
999 PIP4_ARRAY aipMasters
;
1003 PIP4_ARRAY aipSecondaries
;
1004 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
1005 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1007 /* Reserve some space to avoid versioning issues */
1009 [string, charset
(UTF8
)] char * pvReserved1
;
1010 [string, charset
(UTF8
)] char * pvReserved2
;
1011 [string, charset
(UTF8
)] char * pvReserved3
;
1012 [string, charset
(UTF8
)] char * pvReserved4
;
1013 [string, charset
(UTF8
)] char * pvReserved5
;
1014 [string, charset
(UTF8
)] char * pvReserved6
;
1015 [string, charset
(UTF8
)] char * pvReserved7
;
1016 [string, charset
(UTF8
)] char * pvReserved8
;
1026 DNS_RPC_ZONE_CREATE_INFO_W2K
;
1029 DWORD dwRpcStructureVersion
;
1032 [string, charset
(UTF8
)] char * pszZoneName
;
1034 dns_zone_update fAllowUpdate
;
1040 [string, charset
(UTF8
)] char * pszDataFile
;
1041 DWORD fDsIntegrated
;
1042 DWORD fLoadExisting
;
1044 /* Admin name (if auto-create SOA) */
1046 [string, charset
(UTF8
)] char * pszAdmin
;
1048 /* Masters (if secondary) */
1050 PIP4_ARRAY aipMasters
;
1054 PIP4_ARRAY aipSecondaries
;
1055 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
1056 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1058 /* Forwarder zones */
1061 DWORD fRecurseAfterForwarding
;
1063 /* Directory partition */
1065 DWORD dwDpFlags
; /* specify built-in DP or */
1066 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 FQDN of partition */
1068 DWORD dwReserved
[ 32 ];
1070 DNS_RPC_ZONE_CREATE_INFO_DOTNET
;
1073 DWORD dwRpcStructureVersion
;
1076 [string, charset
(UTF8
)] char * pszZoneName
;
1078 dns_zone_update fAllowUpdate
;
1084 [string, charset
(UTF8
)] char * pszDataFile
;
1085 DWORD fDsIntegrated
;
1086 DWORD fLoadExisting
;
1088 /* Admin name (if auto-create SOA) */
1090 [string, charset
(UTF8
)] char * pszAdmin
;
1092 /* Masters (if secondary) */
1094 PDNS_ADDR_ARRAY aipMasters
;
1098 PDNS_ADDR_ARRAY aipSecondaries
;
1099 DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries
;
1100 DNS_ZONE_NOTIFY_LEVEL fNotifyLevel
;
1102 /* Forwarder zones */
1105 DWORD fRecurseAfterForwarding
;
1107 /* Directory partition */
1109 DWORD dwDpFlags
; /* specify built-in DP or */
1110 [string, charset
(UTF8
)] char * pszDpFqdn
; /* UTF8 FQDN of partition */
1112 DWORD dwReserved
[ 32 ];
1114 DNS_RPC_ZONE_CREATE_INFO_LONGHORN
;
1115 #define DNS_RPC_ZONE_CREATE_INFO DNS_RPC_ZONE_CREATE_INFO_LONGHORN
1119 DWORD dwRpcStructureVersion
;
1122 [string, charset
(UTF8
)] char * pszZoneExportFile
;
1124 DNS_RPC_ZONE_EXPORT_INFO
;
1127 DWORD dwRpcStructureVersion
;
1131 [string, charset
(UTF8
)] char * pszPartitionFqdn
;
1132 [string, charset
(UTF8
)] char * pszQueryString
;
1134 DNS_EXTENSION pszReserved
[ 6 ];
1136 DNS_RPC_ENUM_ZONES_FILTER
;
1138 /* Forwarders information */
1140 DWORD fRecurseAfterForwarding
;
1141 DWORD dwForwardTimeout
;
1142 PIP4_ARRAY aipForwarders
;
1144 DNS_RPC_FORWARDERS_W2K
;
1147 DWORD dwRpcStructureVersion
;
1149 DWORD fRecurseAfterForwarding
;
1150 DWORD dwForwardTimeout
;
1151 PIP4_ARRAY aipForwarders
;
1153 DNS_RPC_FORWARDERS_DOTNET
;
1156 DWORD dwRpcStructureVersion
;
1158 DWORD fRecurseAfterForwarding
;
1159 DWORD dwForwardTimeout
;
1160 PDNS_ADDR_ARRAY aipForwarders
;
1162 DNS_RPC_FORWARDERS_LONGHORN
;
1163 #define DNS_RPC_FORWARDERS DNS_RPC_FORWARDERS_LONGHORN
1167 /* DNS autoconfig data types */
1170 typedef [v1_enum] enum {
1171 DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS
= 0x00000001,
1172 DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS
= 0x00000002,
1173 DNS_RPC_AUTOCONFIG_INTERNAL_ZONES
= 0x00000004,
1174 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT
= 0x00000010,
1175 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND
= 0x00000020,
1176 DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND
= 0x00000040,
1177 DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR
= 0x00008000,
1178 DNS_RPC_AUTOCONFIG_ALL
= 0xFFFFFFFF
1183 DWORD dwRpcStructureVersion
;
1185 DNS_RPC_AUTOCONFIG dwAutoConfigFlags
;
1187 [string, charset
(UTF8
)] char * pszNewDomainName
;
1189 DNS_RPC_AUTOCONFIGURE
;
1193 /* DNS logging data types */
1196 typedef [bitmap32bit
] bitmap
{
1197 DNS_EVENT_LOG_SUCCESS
= 0x00000000,
1198 DNS_EVENT_LOG_ERROR_TYPE
= 0x00000001,
1199 DNS_EVENT_LOG_WARNING_TYPE
= 0x00000002,
1200 DNS_EVENT_LOG_INFORMATION_TYPE
= 0x00000004
1202 DNS_EVENT_LOG_TYPES
;
1204 typedef [bitmap32bit
] bitmap
{
1205 DNS_RPC_VIEW_AUTHORITY_DATA
= 0x00000001,
1206 DNS_RPC_VIEW_CACHE_DATA
= 0x00000002,
1207 DNS_RPC_VIEW_GLUE_DATA
= 0x00000004,
1208 DNS_RPC_VIEW_ROOT_HINT_DATA
= 0x00000008,
1209 DNS_RPC_VIEW_ADDITIONAL_DATA
= 0x00000010,
1210 DNS_RPC_VIEW_NO_CHILDREN
= 0x00010000,
1211 DNS_RPC_VIEW_ONLY_CHILDREN
= 0x00020000
1217 /* DNS statistics data types */
1229 DNSSRV_STAT_HEADER Header
;
1236 /* DNS Typid and Union of all RPC data types */
1239 typedef [v1_enum] enum {
1240 DNSSRV_TYPEID_NULL
= 0,
1241 DNSSRV_TYPEID_DWORD
= 1,
1242 DNSSRV_TYPEID_LPSTR
= 2,
1243 DNSSRV_TYPEID_LPWSTR
= 3,
1244 DNSSRV_TYPEID_IPARRAY
= 4,
1245 DNSSRV_TYPEID_BUFFER
= 5,
1246 DNSSRV_TYPEID_SERVER_INFO_W2K
= 6,
1247 DNSSRV_TYPEID_STATS
= 7,
1248 DNSSRV_TYPEID_FORWARDERS_W2K
= 8,
1249 DNSSRV_TYPEID_ZONE_W2K
= 9,
1250 DNSSRV_TYPEID_ZONE_INFO_W2K
= 10,
1251 DNSSRV_TYPEID_ZONE_SECONDARIES_W2K
= 11,
1252 DNSSRV_TYPEID_ZONE_DATABASE_W2K
= 12,
1253 DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K
= 13,
1254 DNSSRV_TYPEID_ZONE_CREATE_W2K
= 14,
1255 DNSSRV_TYPEID_NAME_AND_PARAM
= 15,
1256 DNSSRV_TYPEID_ZONE_LIST_W2K
= 16,
1257 DNSSRV_TYPEID_ZONE_RENAME
= 17,
1258 DNSSRV_TYPEID_ZONE_EXPORT
= 18,
1259 DNSSRV_TYPEID_SERVER_INFO_DOTNET
= 19,
1260 DNSSRV_TYPEID_FORWARDERS_DOTNET
= 20,
1261 DNSSRV_TYPEID_ZONE
= 21,
1262 DNSSRV_TYPEID_ZONE_INFO_DOTNET
= 22,
1263 DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET
= 23,
1264 DNSSRV_TYPEID_ZONE_DATABASE
= 24,
1265 DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET
= 25,
1266 DNSSRV_TYPEID_ZONE_CREATE_DOTNET
= 26,
1267 DNSSRV_TYPEID_ZONE_LIST
= 27,
1268 DNSSRV_TYPEID_DP_ENUM
= 28,
1269 DNSSRV_TYPEID_DP_INFO
= 29,
1270 DNSSRV_TYPEID_DP_LIST
= 30,
1271 DNSSRV_TYPEID_ENLIST_DP
= 31,
1272 DNSSRV_TYPEID_ZONE_CHANGE_DP
= 32,
1273 DNSSRV_TYPEID_ENUM_ZONES_FILTER
= 33,
1274 DNSSRV_TYPEID_ADDRARRAY
= 34,
1275 DNSSRV_TYPEID_SERVER_INFO
= 35,
1276 DNSSRV_TYPEID_ZONE_INFO
= 36,
1277 DNSSRV_TYPEID_FORWARDERS
= 37,
1278 DNSSRV_TYPEID_ZONE_SECONDARIES
= 38,
1279 DNSSRV_TYPEID_ZONE_TYPE_RESET
= 39,
1280 DNSSRV_TYPEID_ZONE_CREATE
= 40,
1281 DNSSRV_TYPEID_IP_VALIDATE
= 41,
1282 DNSSRV_TYPEID_AUTOCONFIGURE
= 42,
1283 DNSSRV_TYPEID_UTF8_STRING_LIST
= 43,
1284 DNSSRV_TYPEID_UNICODE_STRING_LIST
= 44
1288 typedef [switch_type(uint3264
)] union {
1289 [case(DNSSRV_TYPEID_NULL
)] PBYTE Null
;
1291 [case(DNSSRV_TYPEID_DWORD
)] DWORD Dword
;
1293 [case(DNSSRV_TYPEID_LPSTR
)] [string, charset
(UTF8
)] char * String;
1295 [case(DNSSRV_TYPEID_LPWSTR
)] [string, charset
(UTF16
)] wchar_t * WideString
;
1297 [case(DNSSRV_TYPEID_IPARRAY
)] IP4_ARRAY
*IpArray
;
1299 [case(DNSSRV_TYPEID_BUFFER
)]
1300 DNS_RPC_BUFFER
*Buffer
;
1302 [case(DNSSRV_TYPEID_SERVER_INFO_W2K
)]
1303 DNS_RPC_SERVER_INFO_W2K
*ServerInfoW2K
;
1305 [case(DNSSRV_TYPEID_STATS
)]
1308 [case(DNSSRV_TYPEID_FORWARDERS_W2K
)]
1309 DNS_RPC_FORWARDERS_W2K
*ForwardersW2K
;
1311 [case(DNSSRV_TYPEID_ZONE_W2K
)]
1312 DNS_RPC_ZONE_W2K
*ZoneW2K
;
1314 [case(DNSSRV_TYPEID_ZONE_INFO_W2K
)]
1315 DNS_RPC_ZONE_INFO_W2K
*ZoneInfoW2K
;
1317 [case(DNSSRV_TYPEID_ZONE_SECONDARIES_W2K
)]
1318 DNS_RPC_ZONE_SECONDARIES_W2K
*SecondariesW2K
;
1320 [case(DNSSRV_TYPEID_ZONE_DATABASE_W2K
)]
1321 DNS_RPC_ZONE_DATABASE_W2K
*DatabaseW2K
;
1323 [case(DNSSRV_TYPEID_ZONE_CREATE_W2K
)]
1324 DNS_RPC_ZONE_CREATE_INFO_W2K
*ZoneCreateW2K
;
1326 [case(DNSSRV_TYPEID_NAME_AND_PARAM
)]
1327 DNS_RPC_NAME_AND_PARAM
*NameAndParam
;
1329 [case(DNSSRV_TYPEID_ZONE_LIST_W2K
)]
1330 DNS_RPC_ZONE_LIST_W2K
*ZoneListW2K
;
1332 [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET
)]
1333 DNS_RPC_SERVER_INFO_DOTNET
*ServerInfoDotNet
;
1335 [case(DNSSRV_TYPEID_FORWARDERS_DOTNET
)]
1336 DNS_RPC_FORWARDERS_DOTNET
*ForwardersDotNet
;
1338 [case(DNSSRV_TYPEID_ZONE
)]
1341 [case(DNSSRV_TYPEID_ZONE_INFO_DOTNET
)]
1342 DNS_RPC_ZONE_INFO_DOTNET
*ZoneInfoDotNet
;
1344 [case(DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET
)]
1345 DNS_RPC_ZONE_SECONDARIES_DOTNET
*SecondariesDotNet
;
1347 [case(DNSSRV_TYPEID_ZONE_DATABASE
)]
1348 DNS_RPC_ZONE_DATABASE
*Database
;
1350 [case(DNSSRV_TYPEID_ZONE_CREATE_DOTNET
)]
1351 DNS_RPC_ZONE_CREATE_INFO_DOTNET
*ZoneCreateDotNet
;
1353 [case(DNSSRV_TYPEID_ZONE_LIST
)]
1354 DNS_RPC_ZONE_LIST
*ZoneList
;
1356 [case(DNSSRV_TYPEID_ZONE_EXPORT
)]
1357 DNS_RPC_ZONE_EXPORT_INFO
*ZoneExport
;
1359 [case(DNSSRV_TYPEID_DP_INFO
)]
1360 DNS_RPC_DP_INFO
*DirectoryPartition
;
1362 [case(DNSSRV_TYPEID_DP_ENUM
)]
1363 DNS_RPC_DP_ENUM
*DirectoryPartitionEnum
;
1365 [case(DNSSRV_TYPEID_DP_LIST
)]
1366 DNS_RPC_DP_LIST
*DirectoryPartitionList
;
1368 [case(DNSSRV_TYPEID_ENLIST_DP
)]
1369 DNS_RPC_ENLIST_DP
*EnlistDirectoryPartition
;
1371 [case(DNSSRV_TYPEID_ZONE_CHANGE_DP
)]
1372 DNS_RPC_ZONE_CHANGE_DP
*ZoneChangeDirectoryPartition
;
1374 [case(DNSSRV_TYPEID_ENUM_ZONES_FILTER
)]
1375 DNS_RPC_ENUM_ZONES_FILTER
*EnumZonesFilter
;
1377 [case(DNSSRV_TYPEID_ADDRARRAY
)]
1378 DNS_ADDR_ARRAY
*AddrArray
;
1380 [case(DNSSRV_TYPEID_SERVER_INFO
)]
1381 DNS_RPC_SERVER_INFO
*ServerInfo
;
1383 [case(DNSSRV_TYPEID_ZONE_CREATE
)]
1384 DNS_RPC_ZONE_CREATE_INFO
*ZoneCreate
;
1386 [case(DNSSRV_TYPEID_FORWARDERS
)]
1387 DNS_RPC_FORWARDERS
*Forwarders
;
1389 [case(DNSSRV_TYPEID_ZONE_SECONDARIES
)]
1390 DNS_RPC_ZONE_SECONDARIES
*Secondaries
;
1392 [case(DNSSRV_TYPEID_IP_VALIDATE
)]
1393 DNS_RPC_IP_VALIDATE
*IpValidate
;
1395 [case(DNSSRV_TYPEID_ZONE_INFO
)]
1396 DNS_RPC_ZONE_INFO
*ZoneInfo
;
1398 [case(DNSSRV_TYPEID_AUTOCONFIGURE
)]
1399 DNS_RPC_AUTOCONFIGURE
*AutoConfigure
;
1401 [case(DNSSRV_TYPEID_UTF8_STRING_LIST
)]
1402 DNS_RPC_UTF8_STRING_LIST
*Utf8StringList
;
1407 /* DNS RPC interface */
1410 typedef [public,gensize
] struct {
1411 [value
((12+ndr_size_DNS_RPC_NAME
(&dnsNodeName
,0)+3) & ~
3)] uint16 wLength
;
1412 uint16 wRecordCount
;
1414 uint32 dwChildCount
;
1415 DNS_RPC_NAME dnsNodeName
;
1416 DNS_RPC_RECORD records
[wRecordCount
];
1419 typedef [public,nopull
,nopush
,gensize
] struct {
1421 DNS_RPC_RECORDS rec
[count
];
1422 } DNS_RPC_RECORDS_ARRAY
;
1424 WERROR DnssrvOperation
(
1425 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1426 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1427 [in] DWORD dwContext
,
1428 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1429 [in] DNS_RPC_TYPEID dwTypeId
,
1430 [in, switch_is(dwTypeId
)] DNSSRV_RPC_UNION pData
1434 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1435 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1436 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1437 [out] DNS_RPC_TYPEID
*pdwTypeId
,
1438 [out, switch_is(*pdwTypeId
)] DNSSRV_RPC_UNION
*ppData
1441 WERROR DnssrvComplexOperation
(
1442 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1443 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1444 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1445 [in] DNS_RPC_TYPEID dwTypeIn
,
1446 [in, switch_is(dwTypeIn
)] DNSSRV_RPC_UNION pDataIn
,
1447 [out] DNS_RPC_TYPEID
*pdwTypeOut
,
1448 [out, switch_is(*pdwTypeOut
)] DNSSRV_RPC_UNION
*ppDataOut
1451 WERROR DnssrvEnumRecords
(
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,string,charset
(UTF8
)] uint8
*pszStartChild
,
1456 [in] dns_record_type wRecordType
,
1457 [in] DNS_SELECT_FLAGS fSelectFlag
,
1458 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStart
,
1459 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStop
,
1460 [out] DWORD
*pdwBufferLength
,
1461 [out,ref,subcontext
(4),subcontext_size
(*pdwBufferLength
)] DNS_RPC_RECORDS_ARRAY
**pBuffer
1464 WERROR DnssrvUpdateRecord
(
1465 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1466 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1467 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1468 [in, unique] DNS_RPC_RECORD_BUF
*pAddRecord
,
1469 [in, unique] DNS_RPC_RECORD_BUF
*pDeleteRecord
1472 WERROR DnssrvOperation2
(
1473 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1474 [in] uint32 dwSettingFlags
,
1475 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1476 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1477 [in] DWORD dwContext
,
1478 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1479 [in] DNS_RPC_TYPEID dwTypeId
,
1480 [in, switch_is(dwTypeId
)] DNSSRV_RPC_UNION pData
1483 WERROR DnssrvQuery2
(
1484 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1485 [in] uint32 dwSettingFlags
,
1486 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1487 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1488 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1489 [out] DNS_RPC_TYPEID
*pdwTypeId
,
1490 [out, switch_is(*pdwTypeId
)] DNSSRV_RPC_UNION
*ppData
1493 WERROR DnssrvComplexOperation2
(
1494 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1495 [in] uint32 dwSettingFlags
,
1496 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1497 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1498 [in,unique,string,charset
(UTF8
)] uint8
*pszOperation
,
1499 [in] DNS_RPC_TYPEID dwTypeIn
,
1500 [in, switch_is(dwTypeIn
)] DNSSRV_RPC_UNION pDataIn
,
1501 [out] DNS_RPC_TYPEID
*pdwTypeOut
,
1502 [out, switch_is(*pdwTypeOut
)] DNSSRV_RPC_UNION
*ppDataOut
1505 WERROR DnssrvEnumRecords2
(
1506 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1507 [in] DWORD dwSettingFlags
,
1508 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1509 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1510 [in,unique,string,charset
(UTF8
)] uint8
*pszNodeName
,
1511 [in,unique,string,charset
(UTF8
)] uint8
*pszStartChild
,
1512 [in] dns_record_type wRecordType
,
1513 [in] DNS_SELECT_FLAGS fSelectFlag
,
1514 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStart
,
1515 [in,unique,string,charset
(UTF8
)] uint8
*pszFilterStop
,
1516 [out] uint32
*pdwBufferLength
,
1517 [out,ref,subcontext
(4),subcontext_size
(*pdwBufferLength
)] DNS_RPC_RECORDS_ARRAY
**pBuffer
1520 WERROR DnssrvUpdateRecord2
(
1521 [in] DNS_RPC_CLIENT_VERSION dwClientVersion
,
1522 [in] uint32 dwSettingFlags
,
1523 [in,unique,string,charset
(UTF16
)] uint16
*pwszServerName
,
1524 [in,unique,string,charset
(UTF8
)] uint8
*pszZone
,
1525 [in,string,charset
(UTF8
)] uint8
*pszNodeName
,
1526 [in, unique] DNS_RPC_RECORD_BUF
*pAddRecord
,
1527 [in, unique] DNS_RPC_RECORD_BUF
*pDeleteRecord