add initial dnsserver dcerpc implementation
svn path=/trunk/; revision=25943
This commit is contained in:
parent
d261400dea
commit
88d3b24a4e
|
@ -0,0 +1,97 @@
|
|||
#
|
||||
# DNS_RPC_NAME
|
||||
#
|
||||
MANUAL dnsserver_dissect_struct_DNS_RPC_NAME
|
||||
HF_FIELD hf_dnsserver_DNS_RPC_NAME_name "Name" "dnsserver.DNS_RPC_NAME.name" FT_STRING BASE_NONE NULL 0 "" "" ""
|
||||
|
||||
|
||||
#
|
||||
# DNS_RPC_NODE
|
||||
#
|
||||
MANUAL dnsserver_dissect_element_DNS_RPC_NODE_RecordCount
|
||||
MANUAL dnsserver_dissect_element_DNS_RPC_NODE_records
|
||||
|
||||
CODE START
|
||||
|
||||
#include "packet-smb-common.h"
|
||||
|
||||
int
|
||||
dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
|
||||
{
|
||||
proto_item *item = NULL;
|
||||
proto_tree *tree = NULL;
|
||||
int old_offset;
|
||||
dcerpc_info *di = NULL;
|
||||
guint8 len;
|
||||
const char *dn;
|
||||
int dn_len;
|
||||
guint16 bc;
|
||||
|
||||
di=pinfo->private_data;
|
||||
if(di->conformant_run){
|
||||
/*just a run to handle conformant arrays, nothing to dissect */
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
|
||||
old_offset = offset;
|
||||
|
||||
if (parent_tree) {
|
||||
item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
|
||||
tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NAME);
|
||||
}
|
||||
|
||||
offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NAME_NameLength, &len);
|
||||
bc = tvb_length_remaining(tvb, offset);
|
||||
dn = get_unicode_or_ascii_string(tvb, &offset,
|
||||
TRUE, &dn_len, TRUE, TRUE, &bc);
|
||||
if (dn) {
|
||||
proto_tree_add_string(tree, hf_dnsserver_DNS_RPC_NAME_name, tvb,
|
||||
offset, dn_len,dn);
|
||||
offset += dn_len;
|
||||
}
|
||||
|
||||
proto_item_set_len(item, offset-old_offset);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static guint16 node_record_count;
|
||||
|
||||
static int
|
||||
dnsserver_dissect_element_DNS_RPC_NODE_RecordCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
|
||||
{
|
||||
dcerpc_info *di = NULL;
|
||||
|
||||
di=pinfo->private_data;
|
||||
if(di->conformant_run){
|
||||
/*just a run to handle conformant arrays, nothing to dissect */
|
||||
return offset;
|
||||
}
|
||||
|
||||
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NODE_RecordCount, &node_record_count);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int
|
||||
dnsserver_dissect_element_DNS_RPC_NODE_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
|
||||
{
|
||||
dcerpc_info *di = NULL;
|
||||
|
||||
di=pinfo->private_data;
|
||||
if(di->conformant_run){
|
||||
/*just a run to handle conformant arrays, nothing to dissect */
|
||||
return offset;
|
||||
}
|
||||
|
||||
while(node_record_count--){
|
||||
offset = dnsserver_dissect_element_DNS_RPC_NODE_records_(tvb, offset, pinfo, tree, drep);
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
CODE END
|
|
@ -0,0 +1,402 @@
|
|||
/*
|
||||
dnsserver interface definition
|
||||
*/
|
||||
|
||||
[ uuid("50abc2a4-574d-40b3-9d66-ee4fd5fba076"),
|
||||
version(5.0),
|
||||
pointer_default(unique),
|
||||
helpstring("DNS Server")
|
||||
] interface dnsserver
|
||||
{
|
||||
|
||||
typedef [v1_enum] enum {
|
||||
DNS_CLIENT_VERSION_W2K = 0x00000000,
|
||||
DNS_CLIENT_VERSION_DOTNET = 0x00000006,
|
||||
DNS_CLIENT_VERSION_LONGHORN = 0x00000007
|
||||
} DNS_RPC_CLIENT_VERSION;
|
||||
|
||||
typedef [flag(NDR_ALIGN4)] struct {
|
||||
uint8 OSMajorVersion;
|
||||
uint8 OSMinorVersion;
|
||||
uint16 ServicePackVersion;
|
||||
} DNS_RPC_VERSION;
|
||||
|
||||
typedef [enum8bit] enum {
|
||||
DNS_RPC_BOOT_METHOD_FILE = 0x01,
|
||||
DNS_RPC_BOOT_METHOD_REGISTRY = 0x02,
|
||||
DNS_RPC_BOOT_METHOD_DIRECTORY = 0x03
|
||||
} DNS_RPC_BOOT_METHOD;
|
||||
|
||||
|
||||
const uint32 DNS_LOG_LEVEL_ALL_PACKETS = 0x0000ffff;
|
||||
const uint32 DNS_LOG_LEVEL_NON_QUERY = 0x000000fe;
|
||||
typedef [bitmap32bit] bitmap {
|
||||
DNS_LOG_LEVEL_QUERY = 0x00000001,
|
||||
DNS_LOG_LEVEL_NOTIFY = 0x00000010,
|
||||
DNS_LOG_LEVEL_UPDATE = 0x00000020,
|
||||
DNS_LOG_LEVEL_QUESTIONS = 0x00000100,
|
||||
DNS_LOG_LEVEL_ANSWERS = 0x00000200,
|
||||
DNS_LOG_LEVEL_SEND = 0x00001000,
|
||||
DNS_LOG_LEVEL_RECV = 0x00002000,
|
||||
DNS_LOG_LEVEL_UDP = 0x00004000,
|
||||
DNS_LOG_LEVEL_TCP = 0x00008000,
|
||||
DNS_LOG_LEVEL_FULL_PACKETS = 0x01000000,
|
||||
DNS_LOG_LEVEL_WRITE_THROUGH = 0x80000000
|
||||
} DNS_LOG_LEVELS;
|
||||
|
||||
const uint32 DNS_RPC_USE_ALL_PROTOCOLS = 0xffffffff;
|
||||
typedef [bitmap32bit] bitmap {
|
||||
DNS_RPC_USE_TCPIP = 0x00000001,
|
||||
DNS_RPC_USE_NAMED_PIPE = 0x00000002,
|
||||
DNS_RPC_USE_LPC = 0x00000004
|
||||
} DNS_RPC_PROTOCOLS;
|
||||
|
||||
typedef [v1_enum] enum {
|
||||
DNS_ALLOW_RFC_NAMES_ONLY = 0x00000000,
|
||||
DNS_ALLOW_NONRFC_NAMES = 0x00000001,
|
||||
DNS_ALLOW_MULTIBYTE_NAMES = 0x00000002,
|
||||
DNS_ALLOW_ALL_NAMES = 0x00000003
|
||||
} DNS_NAME_CHECK_FLAGS;
|
||||
|
||||
typedef [enum16bit] enum {
|
||||
DNS_TYPE_ZERO = 0x0000,
|
||||
DNS_TYPE_A = 0x0001,
|
||||
DNS_TYPE_NS = 0x0002,
|
||||
DNS_TYPE_MD = 0x0003,
|
||||
DNS_TYPE_MF = 0x0004,
|
||||
DNS_TYPE_CNAME = 0x0005,
|
||||
DNS_TYPE_SOA = 0x0006,
|
||||
DNS_TYPE_MB = 0x0007,
|
||||
DNS_TYPE_MG = 0x0008,
|
||||
DNS_TYPE_MR = 0x0009,
|
||||
DNS_TYPE_NULL = 0x000a,
|
||||
DNS_TYPE_WKS = 0x000b,
|
||||
DNS_TYPE_PTR = 0x000c,
|
||||
DNS_TYPE_HINFO = 0x000d,
|
||||
DNS_TYPE_MINFO = 0x000e,
|
||||
DNS_TYPE_MX = 0x000f,
|
||||
DNS_TYPE_TXT = 0x0010,
|
||||
DNS_TYPE_RP = 0x0011,
|
||||
DNS_TYPE_AFSDB = 0x0012,
|
||||
DNS_TYPE_X25 = 0x0013,
|
||||
DNS_TYPE_ISDN = 0x0014,
|
||||
DNS_TYPE_RT = 0x0015,
|
||||
DNS_TYPE_NSAP = 0x0016,
|
||||
DNS_TYPE_NSAPPTR = 0x0017,
|
||||
DNS_TYPE_SIG = 0x0018,
|
||||
DNS_TYPE_KEY = 0x0019,
|
||||
DNS_TYPE_PX = 0x001a,
|
||||
DNS_TYPE_GPOS = 0x001b,
|
||||
DNS_TYPE_AAAA = 0x001c,
|
||||
DNS_TYPE_LOC = 0x001d,
|
||||
DNS_TYPE_NXT = 0x001e,
|
||||
DNS_TYPE_SRV = 0x0021,
|
||||
DNS_TYPE_ATMA = 0x0022,
|
||||
DNS_TYPE_NAPTR = 0x0023,
|
||||
DNS_TYPE_DNAME = 0x0024,
|
||||
DNS_TYPE_ALL = 0x00ff,
|
||||
DNS_TYPE_WINS = 0xff01,
|
||||
DNS_TYPE_WINSR = 0xff02
|
||||
} DNS_RECORD_TYPE;
|
||||
|
||||
typedef [bitmap32bit] bitmap {
|
||||
DNS_RPC_VIEW_AUTHORITY_DATA = 0x00000001,
|
||||
DNS_RPC_VIEW_CACHE_DATA = 0x00000002,
|
||||
DNS_RPC_VIEW_GLUE_DATA = 0x00000004,
|
||||
DNS_RPC_VIEW_ROOT_HINT_DATA = 0x00000008,
|
||||
DNS_RPC_VIEW_ADDITIONAL_DATA = 0x00000010,
|
||||
DNS_RPC_VIEW_NO_CHILDREN = 0x00010000,
|
||||
DNS_RPC_VIEW_ONLY_CHILDREN = 0x00020000
|
||||
} DNS_SELECT_FLAGS;
|
||||
|
||||
typedef [bitmap32bit] bitmap {
|
||||
DNS_RPC_FLAG_CACHE_DATA = 0x80000000,
|
||||
DNS_RPC_FLAG_ZONE_ROOT = 0x40000000,
|
||||
DNS_RPC_FLAG_AUTH_ZONE_ROOT = 0x20000000,
|
||||
DNS_RPC_FLAG_ZONE_DELEGATION = 0x10000000,
|
||||
DNS_RPC_FLAG_RECOR_DEFAULT_TTL = 0x08000000,
|
||||
DNS_RPC_FLAG_RECORD_TTL_CHANGE = 0x04000000,
|
||||
DNS_RPC_FLAG_RECORD_CREATE_PTR = 0x02000000,
|
||||
DNS_RPC_FLAG_NODE_STICKY = 0x01000000,
|
||||
DNS_RPC_FLAG_NODE_COMPLETE = 0x00800000,
|
||||
DNS_RPC_FLAG_OPEN_ACL = 0x00040000,
|
||||
DNS_RPC_FLAG_AGING_ON = 0x00020000,
|
||||
DNS_RPC_FLAG_SUPPRESS_NOTIFY = 0x00010000
|
||||
} DNS_RPC_NODE_FLAGS;
|
||||
|
||||
/* 2.2.2.2.1 this cant really be described in IDL :-( */
|
||||
typedef struct {
|
||||
uint8 NameLength;
|
||||
uint8 Name[NameLength];
|
||||
} DNS_RPC_NAME;
|
||||
|
||||
typedef struct {
|
||||
DNS_RPC_NAME Name;
|
||||
} DNS_RPC_RECORD_NODE_NAME;
|
||||
|
||||
// typedef [nodiscriminant] union {
|
||||
typedef union {
|
||||
[case(2)] DNS_RPC_RECORD_NODE_NAME NodeName;
|
||||
} DNS_RPC_RECORD_UNION;
|
||||
|
||||
typedef struct {
|
||||
uint16 DataLength; // size of
|
||||
DNS_RECORD_TYPE Type;
|
||||
uint32 Flags;
|
||||
uint32 Serial;
|
||||
uint32 TtlSeconds;
|
||||
uint32 TimeStamp;
|
||||
uint32 reserved;
|
||||
[switch_is(Type)] DNS_RPC_RECORD_UNION record;
|
||||
} DNS_RPC_RECORD;
|
||||
|
||||
typedef struct {
|
||||
uint16 Length;
|
||||
uint16 RecordCount;
|
||||
DNS_RPC_NODE_FLAGS Flags;
|
||||
uint32 Childcount;
|
||||
DNS_RPC_NAME NodeName;
|
||||
DNS_RPC_RECORD records[RecordCount];
|
||||
} DNS_RPC_NODE;
|
||||
/* XXX */
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint32 AddrCount;
|
||||
[size_is(AddrCount)] uint32 AddrArray[];
|
||||
} IP4_ARRAY;
|
||||
|
||||
/* XXX */
|
||||
typedef struct {
|
||||
uint32 RpcStructureVersion;
|
||||
uint32 reserved0;
|
||||
DNS_RPC_VERSION Version;
|
||||
DNS_RPC_BOOT_METHOD BootMethod;
|
||||
boolean8 AdminConfigured;
|
||||
boolean8 AllowUpdate;
|
||||
boolean8 DsAvailable;
|
||||
[unique, string] uint8 *ServerName;
|
||||
[unique, string, charset(UTF16)] uint16 *DsContainer;
|
||||
[unique] IP4_ARRAY *ServerAddrs;
|
||||
[unique] IP4_ARRAY *ListenAddrs;
|
||||
[unique] IP4_ARRAY *Forwarders;
|
||||
[unique] IP4_ARRAY *LogFilter;
|
||||
[unique, string, charset(UTF16)] uint16 *LogFilePath;
|
||||
[unique, string] uint8 *DomainName;
|
||||
[unique, string] uint8 *ForestName;
|
||||
[unique, string] uint8 *DomainDirectoryPartition;
|
||||
[unique, string] uint8 *ForestDirectoryPartition;
|
||||
[unique, string] uint8 *extension0;
|
||||
[unique, string] uint8 *extension1;
|
||||
[unique, string] uint8 *extension2;
|
||||
[unique, string] uint8 *extension3;
|
||||
[unique, string] uint8 *extension4;
|
||||
[unique, string] uint8 *extension5;
|
||||
DNS_LOG_LEVELS LogLevel;
|
||||
uint32 DebugLevel;
|
||||
uint32 ForwardTimeout;
|
||||
DNS_RPC_PROTOCOLS RpcProtocol;
|
||||
DNS_NAME_CHECK_FLAGS NameCheckFlag;
|
||||
uint32 AddressAnswerLimit;
|
||||
uint32 RecursionRetry;
|
||||
uint32 RecursionTimeout;
|
||||
uint32 MaxCacheTtl;
|
||||
uint32 DsPollingInterval;
|
||||
uint32 LocalNetPriorityNetmask;
|
||||
uint32 ScavengingInterval;
|
||||
uint32 DefaultRefreshInterval;
|
||||
uint32 DefaultNoRefreshInterval;
|
||||
uint32 LastScavengeTime;
|
||||
uint32 EventLogLevel;
|
||||
uint32 LogFileMaxSize;
|
||||
uint32 DsForestVersion;
|
||||
uint32 DsDomainVersion;
|
||||
uint32 DsDsaVersion;
|
||||
uint32 reserve_array[4];
|
||||
boolean8 AutoReverseZones;
|
||||
boolean8 AutoCacheUpdate;
|
||||
boolean8 RecurseAfterForwarding;
|
||||
boolean8 ForwardDelegations;
|
||||
boolean8 NoRecursion;
|
||||
boolean8 SecureResponses;
|
||||
boolean8 RoundRobin;
|
||||
boolean8 LocalNetPriority;
|
||||
boolean8 BindSecondaries;
|
||||
boolean8 WriteAuthorityNs;
|
||||
boolean8 StrictFileParsing;
|
||||
boolean8 LooseWildcarding;
|
||||
boolean8 DefaultAgingState;
|
||||
boolean8 reserve_array2[15];
|
||||
} DNS_RPC_SERVER_INFO_DOTNET;
|
||||
/* XXX */
|
||||
|
||||
typedef [v1_enum, flag(NDR_PAHEX)] enum {
|
||||
DNSSRV_TYPEID_NULL = 0,
|
||||
DNSSRV_TYPEID_DWORD = 1,
|
||||
DNSSRV_TYPEID_LPSTR = 2,
|
||||
DNSSRV_TYPEID_LPWSTR = 3,
|
||||
DNSSRV_TYPEID_IPARRAY = 4,
|
||||
DNSSRV_TYPEID_BUFFER = 5,
|
||||
DNSSRV_TYPEID_SERVER_INFO_W2K = 6,
|
||||
DNSSRV_TYPEID_STATS = 7,
|
||||
DNSSRV_TYPEID_FORWARDERS_W2K = 8,
|
||||
DNSSRV_TYPEID_ZONE_W2K = 9,
|
||||
DNSSRV_TYPEID_ZONE_INFO_W2K = 10,
|
||||
DNSSRV_TYPEID_ZONE_SECONDARIES_W2K = 11,
|
||||
DNSSRV_TYPEID_ZONE_DATABASE_W2K = 12,
|
||||
DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K = 13,
|
||||
DNSSRV_TYPEID_ZONE_CREATE_W2K = 14,
|
||||
DNSSRV_TYPEID_NAME_AND_PARAM = 15,
|
||||
DNSSRV_TYPEID_ZONE_LIST_W2K = 16,
|
||||
DNSSRV_TYPEID_ZONE_RENAME = 17,
|
||||
DNSSRV_TYPEID_ZONE_EXPORT = 18,
|
||||
DNSSRV_TYPEID_SERVER_INFO_DOTNET = 19,
|
||||
DNSSRV_TYPEID_FORWARDERS_DOTNET = 20,
|
||||
DNSSRV_TYPEID_ZONE = 21,
|
||||
DNSSRV_TYPEID_ZONE_INFO_DOTNET = 22,
|
||||
DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET = 23,
|
||||
DNSSRV_TYPEID_ZONE_DATABASE = 24,
|
||||
DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET = 25,
|
||||
DNSSRV_TYPEID_ZONE_CREATE_DOTNET = 26,
|
||||
DNSSRV_TYPEID_ZONE_LIST = 27,
|
||||
DNSSRV_TYPEID_DP_ENUM = 28,
|
||||
DNSSRV_TYPEID_DP_INFO = 29,
|
||||
DNSSRV_TYPEID_DP_LIST = 30,
|
||||
DNSSRV_TYPEID_ENLIST_DP = 31,
|
||||
DNSSRV_TYPEID_ZONE_CHANGE_DP = 32,
|
||||
DNSSRV_TYPEID_ENUM_ZONES_FILTER = 33,
|
||||
DNSSRV_TYPEID_ADDARRAY = 34,
|
||||
DNSSRV_TYPEID_SERVER_INFO = 35,
|
||||
DNSSRV_TYPEID_ZONE_INFO = 36,
|
||||
DNSSRV_TYPEID_FORWARDERS = 37,
|
||||
DNSSRV_TYPEID_ZONE_SECONDARIES = 38,
|
||||
DNSSRV_TYPEID_ZONE_TYPE_RESET = 39,
|
||||
DNSSRV_TYPEID_ZONE_CREATE = 40,
|
||||
DNSSRV_TYPEID_IP_VALIDATE = 41,
|
||||
DNSSRV_TYPEID_AUTOCONFIGURE = 42,
|
||||
DNSSRV_TYPEID_UTF8_STRING_LIST = 43,
|
||||
DNSSRV_TYPEID_UNICODE_STRING_LIST = 44
|
||||
} DnssrvRpcTypeId;
|
||||
|
||||
typedef union {
|
||||
[case(DNSSRV_TYPEID_NULL)] uint8 *null;
|
||||
[case(DNSSRV_TYPEID_DWORD)] uint32 dword;
|
||||
/* DNSSRV_TYPEID_LPSTR = 2,*/
|
||||
/* DNSSRV_TYPEID_LPWSTR = 3,*/
|
||||
/* DNSSRV_TYPEID_IPARRAY = 4,*/
|
||||
/* DNSSRV_TYPEID_BUFFER = 5,*/
|
||||
/* DNSSRV_TYPEID_SERVER_INFO_W2K = 6,*/
|
||||
/* DNSSRV_TYPEID_STATS = 7,*/
|
||||
/* DNSSRV_TYPEID_FORWARDERS_W2K = 8,*/
|
||||
/* DNSSRV_TYPEID_ZONE_W2K = 9,*/
|
||||
/* DNSSRV_TYPEID_ZONE_INFO_W2K = 10,*/
|
||||
/* DNSSRV_TYPEID_ZONE_SECONDARIES_W2K = 11,*/
|
||||
/* DNSSRV_TYPEID_ZONE_DATABASE_W2K = 12,*/
|
||||
/* DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K = 13,*/
|
||||
/* DNSSRV_TYPEID_ZONE_CREATE_W2K = 14,*/
|
||||
/* DNSSRV_TYPEID_NAME_AND_PARAM = 15,*/
|
||||
/* DNSSRV_TYPEID_ZONE_LIST_W2K = 16,*/
|
||||
/* DNSSRV_TYPEID_ZONE_RENAME = 17,*/
|
||||
/* DNSSRV_TYPEID_ZONE_EXPORT = 18,*/
|
||||
[case(DNSSRV_TYPEID_SERVER_INFO_DOTNET)] DNS_RPC_SERVER_INFO_DOTNET *ServerInfoDotnet;
|
||||
/* DNSSRV_TYPEID_FORWARDERS_DOTNET = 20,*/
|
||||
/* DNSSRV_TYPEID_ZONE = 21,*/
|
||||
/* DNSSRV_TYPEID_ZONE_INFO_DOTNET = 22,*/
|
||||
/* DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET = 23,*/
|
||||
/* DNSSRV_TYPEID_ZONE_DATABASE = 24,*/
|
||||
/* DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET = 25,*/
|
||||
/* DNSSRV_TYPEID_ZONE_CREATE_DOTNET = 26,*/
|
||||
/* DNSSRV_TYPEID_ZONE_LIST = 27,*/
|
||||
/* DNSSRV_TYPEID_DP_ENUM = 28,*/
|
||||
/* DNSSRV_TYPEID_DP_INFO = 29,*/
|
||||
/* DNSSRV_TYPEID_DP_LIST = 30,*/
|
||||
/* DNSSRV_TYPEID_ENLIST_DP = 31,*/
|
||||
/* DNSSRV_TYPEID_ZONE_CHANGE_DP = 32,*/
|
||||
/* DNSSRV_TYPEID_ENUM_ZONES_FILTER = 33,*/
|
||||
/* DNSSRV_TYPEID_ADDARRAY = 34,*/
|
||||
/* DNSSRV_TYPEID_SERVER_INFO = 35,*/
|
||||
/* DNSSRV_TYPEID_ZONE_INFO = 36,*/
|
||||
/* DNSSRV_TYPEID_FORWARDERS = 37,*/
|
||||
/* DNSSRV_TYPEID_ZONE_SECONDARIES = 38,*/
|
||||
/* DNSSRV_TYPEID_ZONE_TYPE_RESET = 39,*/
|
||||
/* DNSSRV_TYPEID_ZONE_CREATE = 40,*/
|
||||
/* DNSSRV_TYPEID_IP_VALIDATE = 41,*/
|
||||
/* DNSSRV_TYPEID_AUTOCONFIGURE = 42,*/
|
||||
/* DNSSRV_TYPEID_UTF8_STRING_LIST = 43,*/
|
||||
/* DNSSRV_TYPEID_UNICODE_STRING_LIST = 44*/
|
||||
} DNSSRV_RPC_UNION;
|
||||
|
||||
|
||||
/******************/
|
||||
/* Function: 0x00 */
|
||||
NTSTATUS DnssrvOperation (
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x01 */
|
||||
NTSTATUS DnssrvQuery (
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x02 */
|
||||
NTSTATUS DnssrvComplexOperation (
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x03 */
|
||||
NTSTATUS DnssrvEnumRecords (
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x04 */
|
||||
NTSTATUS DnssrvUpdateRecord (
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x05 */
|
||||
NTSTATUS DnssrvOperation2 (
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x06 */
|
||||
NTSTATUS DnssrvQuery2 (
|
||||
[in] DNS_RPC_CLIENT_VERSION client_version,
|
||||
[in] uint32 setting_flags,
|
||||
[in, unique, string, charset(UTF16)] uint16 *server_name,
|
||||
[in, unique, string] uint8 *zone,
|
||||
[in, unique, string] uint8 *operation,
|
||||
[out, ref] DnssrvRpcTypeId *type_id,
|
||||
[out, ref, switch_is(*type_id)] DNSSRV_RPC_UNION *data
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x07 */
|
||||
NTSTATUS DnssrvComplexOperation2 (
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
DNS_RPC_NODE rpc_node;
|
||||
} DNS_RECORD_BUFFER;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x08 */
|
||||
NTSTATUS DnssrvEnumRecords2 (
|
||||
[in] DNS_RPC_CLIENT_VERSION client_version,
|
||||
[in] uint32 setting_flags,
|
||||
[in, unique, string, charset(UTF16)] uint16 *server_name,
|
||||
[in, unique, string] uint8 *zone,
|
||||
[in, unique, string] uint8 *node_name,
|
||||
[in, unique, string] uint8 *start_child,
|
||||
[in] DNS_RECORD_TYPE record_type,
|
||||
[in] DNS_SELECT_FLAGS select_flag,
|
||||
[in, unique, string] uint8 *filter_start,
|
||||
[in, unique, string] uint8 *filter_stop,
|
||||
[out,ref] uint32 *buffer_length,
|
||||
[out, unique, subcontext(4)] DNS_RPC_NODE *record_buffer
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x09 */
|
||||
NTSTATUS DnssrvUpdateRecord2 (
|
||||
);
|
||||
}
|
Loading…
Reference in New Issue