/*++ 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 ); }