windows-nt/Source/XPSP1/NT/ds/dns/resolver/idl/dnsrslvr.idl
2020-09-26 16:20:57 +08:00

181 lines
4.1 KiB
Plaintext

/*++
Copyright (c) 1997-2000 Microsoft Corporation
Module Name:
dnsrsvlr.idl
Abstract:
This is the IDL file that describes the RPC interface for the
DNS Caching Resolver Service internal APIs.
Author:
Glenn Curtis (glennc) 25-Feb-1997
Environment:
User Mode -Win32
Revision History:
Jim Gilroy (jamesg) June 2000 -- start cleaning the mess
--*/
//
// Interface Attributes
//
[
uuid(45776b01-5956-4485-9f80-f428f7d60129),
version(2.0),
pointer_default(unique)
]
//
// Interface Keyword
//
interface DnsResolver
//
// Interface Body
//
{
import "imports.idl";
//
// Handle types
//
typedef [handle] wchar_t * DNS_RPC_HANDLE;
//
// Function prototypes
//
DNS_STATUS
CRrReadCache(
[in,string,unique] DNS_RPC_HANDLE Reserved,
[out] PDNS_RPC_CACHE_TABLE * ppCacheTable
);
DNS_STATUS
CRrReadCacheEntry(
[in,string,unique] DNS_RPC_HANDLE Reserved,
[in,string] wchar_t * Name,
[in] WORD Type,
[out] PDNS_RECORD * ppRRSet
);
DNS_STATUS
CRrGetHashTableStats(
[in,string,unique] DNS_RPC_HANDLE Reserved,
[out] LPDWORD pdwCacheHashTableSize,
[out] LPDWORD pdwCacheHashTableBucketSize,
[out] LPDWORD pdwNumberOfCacheEntries,
[out] LPDWORD pdwNumberOfRecords,
[out] LPDWORD pdwNumberOfExpiredRecords,
[out] PDNS_STATS_TABLE * ppStatsTable
);
#if 0
BOOL
CRrRegisterParamChange(
[in,string,unique] DNS_RPC_HANDLE Reserved,
[in,string] wchar_t * ServiceName,
[in] DWORD Control
);
BOOL
CRrDeregisterParamChange(
[in,string,unique] DNS_RPC_HANDLE Reserved,
[in,string] wchar_t * ServiceName
);
#endif
DNS_STATUS
CRrUpdateTest(
[in,string,unique] DNS_RPC_HANDLE Reserved,
[in,string] wchar_t * Name,
[in] DWORD fOptions,
[in] IP_ADDRESS Server
);
//
// New functions
//
// Most of the above is either useless or poorly designed.
// Instead of separate IDL, build the new functions here
// one by one.
//
void
R_ResolverGetConfig(
[in,string,unique] DNS_RPC_HANDLE Handle,
[in] DWORD Cookie,
[out] PRPC_DNS_NETINFO * ppNetInfo,
[out] PDNS_GLOBALS_BLOB * ppGlobals
);
DNS_STATUS
R_ResolverFlushCache(
[in,string,unique] DNS_RPC_HANDLE Handle
);
DNS_STATUS
R_ResolverFlushCacheEntry(
[in,string,unique] DNS_RPC_HANDLE Handle,
[in,string,unique] LPWSTR pwsName,
[in] WORD wType
);
DNS_STATUS
R_ResolverRegisterCluster(
[in,string,unique] DNS_RPC_HANDLE Handle,
[in] DWORD Tag,
[in,string,unique] PWSTR pwsName,
[in] PRPC_IP_UNION pIpUnion,
[in] DWORD Flag
);
void
R_ResolverGetLocalAddrInfoArray(
[in,string,unique] DNS_RPC_HANDLE Handle,
[out] PDNS_ADDR_ARRAY * ppAddrArray,
[in] ENVAR_DWORD_INFO FilterInfo
);
DNS_STATUS
R_ResolverQuery(
[in,string,unique] DNS_RPC_HANDLE Handle,
[in,string,unique] LPWSTR pwsName,
[in] WORD wType,
[in] DWORD Flags,
[out] PDNS_RECORD * ppResultRecords
);
DNS_STATUS
R_ResolverEnumCache(
[in,string,unique] DNS_RPC_HANDLE Handle,
[in] PDNS_CACHE_ENUM_REQUEST pRequest,
[out] PDNS_CACHE_ENUM * ppEnum
);
void
R_ResolverPoke(
[in,string,unique] DNS_RPC_HANDLE Handle,
[in] DWORD Tag,
[in] DWORD Id
);
}