Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

180 lines
4.1 KiB

  1. /*++
  2. Copyright (c) 1997-2000 Microsoft Corporation
  3. Module Name:
  4. dnsrsvlr.idl
  5. Abstract:
  6. This is the IDL file that describes the RPC interface for the
  7. DNS Caching Resolver Service internal APIs.
  8. Author:
  9. Glenn Curtis (glennc) 25-Feb-1997
  10. Environment:
  11. User Mode -Win32
  12. Revision History:
  13. Jim Gilroy (jamesg) June 2000 -- start cleaning the mess
  14. --*/
  15. //
  16. // Interface Attributes
  17. //
  18. [
  19. uuid(45776b01-5956-4485-9f80-f428f7d60129),
  20. version(2.0),
  21. pointer_default(unique)
  22. ]
  23. //
  24. // Interface Keyword
  25. //
  26. interface DnsResolver
  27. //
  28. // Interface Body
  29. //
  30. {
  31. import "imports.idl";
  32. //
  33. // Handle types
  34. //
  35. typedef [handle] wchar_t * DNS_RPC_HANDLE;
  36. //
  37. // Function prototypes
  38. //
  39. DNS_STATUS
  40. CRrReadCache(
  41. [in,string,unique] DNS_RPC_HANDLE Reserved,
  42. [out] PDNS_RPC_CACHE_TABLE * ppCacheTable
  43. );
  44. DNS_STATUS
  45. CRrReadCacheEntry(
  46. [in,string,unique] DNS_RPC_HANDLE Reserved,
  47. [in,string] wchar_t * Name,
  48. [in] WORD Type,
  49. [out] PDNS_RECORD * ppRRSet
  50. );
  51. DNS_STATUS
  52. CRrGetHashTableStats(
  53. [in,string,unique] DNS_RPC_HANDLE Reserved,
  54. [out] LPDWORD pdwCacheHashTableSize,
  55. [out] LPDWORD pdwCacheHashTableBucketSize,
  56. [out] LPDWORD pdwNumberOfCacheEntries,
  57. [out] LPDWORD pdwNumberOfRecords,
  58. [out] LPDWORD pdwNumberOfExpiredRecords,
  59. [out] PDNS_STATS_TABLE * ppStatsTable
  60. );
  61. #if 0
  62. BOOL
  63. CRrRegisterParamChange(
  64. [in,string,unique] DNS_RPC_HANDLE Reserved,
  65. [in,string] wchar_t * ServiceName,
  66. [in] DWORD Control
  67. );
  68. BOOL
  69. CRrDeregisterParamChange(
  70. [in,string,unique] DNS_RPC_HANDLE Reserved,
  71. [in,string] wchar_t * ServiceName
  72. );
  73. #endif
  74. DNS_STATUS
  75. CRrUpdateTest(
  76. [in,string,unique] DNS_RPC_HANDLE Reserved,
  77. [in,string] wchar_t * Name,
  78. [in] DWORD fOptions,
  79. [in] IP_ADDRESS Server
  80. );
  81. //
  82. // New functions
  83. //
  84. // Most of the above is either useless or poorly designed.
  85. // Instead of separate IDL, build the new functions here
  86. // one by one.
  87. //
  88. void
  89. R_ResolverGetConfig(
  90. [in,string,unique] DNS_RPC_HANDLE Handle,
  91. [in] DWORD Cookie,
  92. [out] PRPC_DNS_NETINFO * ppNetInfo,
  93. [out] PDNS_GLOBALS_BLOB * ppGlobals
  94. );
  95. DNS_STATUS
  96. R_ResolverFlushCache(
  97. [in,string,unique] DNS_RPC_HANDLE Handle
  98. );
  99. DNS_STATUS
  100. R_ResolverFlushCacheEntry(
  101. [in,string,unique] DNS_RPC_HANDLE Handle,
  102. [in,string,unique] LPWSTR pwsName,
  103. [in] WORD wType
  104. );
  105. DNS_STATUS
  106. R_ResolverRegisterCluster(
  107. [in,string,unique] DNS_RPC_HANDLE Handle,
  108. [in] DWORD Tag,
  109. [in,string,unique] PWSTR pwsName,
  110. [in] PRPC_IP_UNION pIpUnion,
  111. [in] DWORD Flag
  112. );
  113. void
  114. R_ResolverGetLocalAddrInfoArray(
  115. [in,string,unique] DNS_RPC_HANDLE Handle,
  116. [out] PDNS_ADDR_ARRAY * ppAddrArray,
  117. [in] ENVAR_DWORD_INFO FilterInfo
  118. );
  119. DNS_STATUS
  120. R_ResolverQuery(
  121. [in,string,unique] DNS_RPC_HANDLE Handle,
  122. [in,string,unique] LPWSTR pwsName,
  123. [in] WORD wType,
  124. [in] DWORD Flags,
  125. [out] PDNS_RECORD * ppResultRecords
  126. );
  127. DNS_STATUS
  128. R_ResolverEnumCache(
  129. [in,string,unique] DNS_RPC_HANDLE Handle,
  130. [in] PDNS_CACHE_ENUM_REQUEST pRequest,
  131. [out] PDNS_CACHE_ENUM * ppEnum
  132. );
  133. void
  134. R_ResolverPoke(
  135. [in,string,unique] DNS_RPC_HANDLE Handle,
  136. [in] DWORD Tag,
  137. [in] DWORD Id
  138. );
  139. }