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.

423 lines
14 KiB

  1. /********************************************************************/
  2. /** Copyright(c) 1991 Microsoft Corporation. **/
  3. /********************************************************************/
  4. //***
  5. //
  6. // Filename: dimsvc.idl
  7. //
  8. // Description: Contains the RDimAdmir (DIM Remote) RPC interface
  9. // specification for the API associated with the DIM Service.
  10. // Also contains the RPC specific data structures for
  11. // these APIs.
  12. //
  13. // History: June 11,1995. NarenG Created original version.
  14. //
  15. //
  16. // Interface Attributes
  17. //
  18. [
  19. uuid(8f09f000-b7ed-11ce-bbd2-00001a181cad),
  20. version(0.0),
  21. pointer_default(unique)
  22. ]
  23. interface dimsvc
  24. {
  25. import "import.idl";
  26. typedef handle_t DIM_HANDLE;
  27. //
  28. // Generic information container
  29. //
  30. typedef struct _DIM_INFORMATION_CONTAINER
  31. {
  32. DWORD dwBufferSize;
  33. [size_is(dwBufferSize)] LPBYTE pBuffer;
  34. } DIM_INFORMATION_CONTAINER, *PDIM_INFORMATION_CONTAINER;
  35. DWORD
  36. RMprAdminServerGetInfo (
  37. [in] DIM_HANDLE hDimServer,
  38. [in] DWORD dwLevel,
  39. [out] PDIM_INFORMATION_CONTAINER pInfoStruct
  40. );
  41. //
  42. // Connection management APIs
  43. //
  44. DWORD
  45. RRasAdminConnectionEnum (
  46. [in] DIM_HANDLE hDimServer,
  47. [in] DWORD dwLevel,
  48. [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct,
  49. [in] DWORD dwPreferedMaximumLength,
  50. [out] LPDWORD lpdwEntriesRead,
  51. [out] LPDWORD lpdwTotalEntries,
  52. [in,out,unique] LPDWORD lpdwResumeHandle
  53. );
  54. DWORD
  55. RRasAdminConnectionGetInfo (
  56. [in] DIM_HANDLE hDimServer,
  57. [in] DWORD dwLevel,
  58. [in] DWORD hDimConnection,
  59. [out] PDIM_INFORMATION_CONTAINER pInfoStruct
  60. );
  61. DWORD
  62. RRasAdminConnectionClearStats (
  63. [in] DIM_HANDLE hDimServer,
  64. [in] DWORD hDimConnection
  65. );
  66. //
  67. // Port management APIs
  68. //
  69. DWORD
  70. RRasAdminPortEnum (
  71. [in] DIM_HANDLE hDimServer,
  72. [in] DWORD dwLevel,
  73. [in] DWORD hRasConnection,
  74. [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct,
  75. [in] DWORD dwPreferedMaximumLength,
  76. [out] LPDWORD lpdwEntriesRead,
  77. [out] LPDWORD lpdwTotalEntries,
  78. [in,out,unique] LPDWORD lpdwResumeHandle
  79. );
  80. DWORD
  81. RRasAdminPortGetInfo (
  82. [in] DIM_HANDLE hDimServer,
  83. [in] DWORD dwLevel,
  84. [in] DWORD hPort,
  85. [out] PDIM_INFORMATION_CONTAINER pInfoStruct
  86. );
  87. DWORD
  88. RRasAdminPortClearStats (
  89. [in] DIM_HANDLE hDimServer,
  90. [in] DWORD hPort
  91. );
  92. DWORD
  93. RRasAdminPortReset (
  94. [in] DIM_HANDLE hDimServer,
  95. [in] DWORD hPort
  96. );
  97. DWORD
  98. RRasAdminPortDisconnect (
  99. [in] DIM_HANDLE hDimServer,
  100. [in] DWORD hPort
  101. );
  102. //
  103. // Interface management APIs
  104. //
  105. typedef struct _DIM_INTERFACE_CONTAINER
  106. {
  107. DWORD fGetInterfaceInfo;
  108. DWORD dwInterfaceInfoSize;
  109. [size_is(dwInterfaceInfoSize)] LPBYTE pInterfaceInfo;
  110. DWORD fGetGlobalInfo;
  111. DWORD dwGlobalInfoSize;
  112. [size_is(dwGlobalInfoSize)] LPBYTE pGlobalInfo;
  113. } DIM_INTERFACE_CONTAINER, *PDIM_INTERFACE_CONTAINER;
  114. DWORD
  115. RRouterInterfaceTransportSetGlobalInfo(
  116. [in] DIM_HANDLE hDimServer,
  117. [in] DWORD dwTransportId,
  118. [in] PDIM_INTERFACE_CONTAINER pInfoStruct
  119. );
  120. DWORD
  121. RRouterInterfaceTransportGetGlobalInfo(
  122. [in] DIM_HANDLE hDimServer,
  123. [in] DWORD dwTransportId,
  124. [in,out] PDIM_INTERFACE_CONTAINER pInfoStruct
  125. );
  126. DWORD
  127. RRouterInterfaceGetHandle(
  128. [in] DIM_HANDLE hDimServer,
  129. [in,string] LPWSTR lpwsInterfaceName,
  130. [in,out] LPDWORD phInterface,
  131. [in] DWORD fIncludeClientInterfaces
  132. );
  133. DWORD
  134. RRouterInterfaceCreate(
  135. [in] DIM_HANDLE hDimServer,
  136. [in] DWORD dwLevel,
  137. [in] PDIM_INFORMATION_CONTAINER pInfoStruct,
  138. [in,out] LPDWORD phInterface
  139. );
  140. DWORD
  141. RRouterInterfaceGetInfo(
  142. [in] DIM_HANDLE hDimServer,
  143. [in] DWORD dwLevel,
  144. [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct,
  145. [in] DWORD hInterface
  146. );
  147. DWORD
  148. RRouterInterfaceSetInfo(
  149. [in] DIM_HANDLE hDimServer,
  150. [in] DWORD dwLevel,
  151. [in] PDIM_INFORMATION_CONTAINER pInfoStruct,
  152. [in] DWORD hInterface
  153. );
  154. DWORD
  155. RRouterInterfaceDelete(
  156. [in] DIM_HANDLE hDimServer,
  157. [in] DWORD hInterface
  158. );
  159. DWORD
  160. RRouterInterfaceTransportRemove(
  161. [in] DIM_HANDLE hDimServer,
  162. [in] DWORD hInterface,
  163. [in] DWORD dwTransportId
  164. );
  165. DWORD
  166. RRouterInterfaceTransportAdd(
  167. [in] DIM_HANDLE hDimServer,
  168. [in] DWORD hInterface,
  169. [in] DWORD dwTransportId,
  170. [in] PDIM_INTERFACE_CONTAINER pInfoStruct
  171. );
  172. DWORD
  173. RRouterInterfaceTransportGetInfo(
  174. [in] DIM_HANDLE hDimServer,
  175. [in] DWORD hInterface,
  176. [in] DWORD dwTransportId,
  177. [in,out] PDIM_INTERFACE_CONTAINER pInfoStruct
  178. );
  179. DWORD
  180. RRouterInterfaceTransportSetInfo(
  181. [in] DIM_HANDLE hDimServer,
  182. [in] DWORD hInterface,
  183. [in] DWORD dwTransportId,
  184. [in] PDIM_INTERFACE_CONTAINER pInfoStruct
  185. );
  186. DWORD
  187. RRouterInterfaceEnum (
  188. [in] DIM_HANDLE hDimServer,
  189. [in] DWORD dwLevel,
  190. [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct,
  191. [in] DWORD dwPreferedMaximumLength,
  192. [out] LPDWORD lpdwEntriesRead,
  193. [out] LPDWORD lpdwTotalEntries,
  194. [in,out,unique] LPDWORD lpdwResumeHandle
  195. );
  196. DWORD
  197. RRouterInterfaceConnect(
  198. [in] DIM_HANDLE hDimServer,
  199. [in] DWORD hInterface,
  200. [in] ULONG_PTR hEvent,
  201. [in] DWORD fBlocking,
  202. [in] DWORD dwCallersProcessId
  203. );
  204. DWORD
  205. RRouterInterfaceDisconnect(
  206. [in] DIM_HANDLE hDimServer,
  207. [in] DWORD hInterface
  208. );
  209. DWORD
  210. RRouterInterfaceUpdateRoutes(
  211. [in] DIM_HANDLE hDimServer,
  212. [in] DWORD hInterface,
  213. [in] DWORD dwTransportId,
  214. [in] ULONG_PTR hEvent,
  215. [in] DWORD dwClientProcessId
  216. );
  217. DWORD
  218. RRouterInterfaceQueryUpdateResult(
  219. [in] DIM_HANDLE hDimServer,
  220. [in] DWORD hInterface,
  221. [in] DWORD dwTransportId,
  222. [out] LPDWORD pUpdateResult
  223. );
  224. DWORD
  225. RRouterInterfaceUpdatePhonebookInfo(
  226. [in] DIM_HANDLE hDimServer,
  227. [in] DWORD hInterface
  228. );
  229. //
  230. // MIB APIs
  231. //
  232. typedef struct _DIM_MIB_ENTRY_CONTAINER
  233. {
  234. DWORD dwMibInEntrySize;
  235. [size_is(dwMibInEntrySize)] LPBYTE pMibInEntry;
  236. DWORD dwMibOutEntrySize;
  237. [size_is(dwMibOutEntrySize)] LPBYTE pMibOutEntry;
  238. } DIM_MIB_ENTRY_CONTAINER, *PDIM_MIB_ENTRY_CONTAINER;
  239. DWORD
  240. RMIBEntryCreate(
  241. [in] DIM_HANDLE hDimServer,
  242. [in] DWORD dwPid,
  243. [in] DWORD dwRoutingPid,
  244. [in] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  245. );
  246. DWORD
  247. RMIBEntryDelete(
  248. [in] DIM_HANDLE hDimServer,
  249. [in] DWORD dwPid,
  250. [in] DWORD dwRoutingPid,
  251. [in] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  252. );
  253. DWORD
  254. RMIBEntrySet(
  255. [in] DIM_HANDLE hDimServer,
  256. [in] DWORD dwPid,
  257. [in] DWORD dwRoutingPid,
  258. [in] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  259. );
  260. DWORD
  261. RMIBEntryGet(
  262. [in] DIM_HANDLE hDimServer,
  263. [in] DWORD dwPid,
  264. [in] DWORD dwRoutingPid,
  265. [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  266. );
  267. DWORD
  268. RMIBEntryGetFirst(
  269. [in] DIM_HANDLE hDimServer,
  270. [in] DWORD dwPid,
  271. [in] DWORD dwRoutingPid,
  272. [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  273. );
  274. DWORD
  275. RMIBEntryGetNext(
  276. [in] DIM_HANDLE hDimServer,
  277. [in] DWORD dwPid,
  278. [in] DWORD dwRoutingPid,
  279. [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  280. );
  281. DWORD
  282. RMIBGetTrapInfo(
  283. [in] DIM_HANDLE hDimServer,
  284. [in] DWORD dwPid,
  285. [in] DWORD dwRoutingPid,
  286. [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  287. );
  288. DWORD
  289. RMIBSetTrapInfo(
  290. [in] DIM_HANDLE hDimServer,
  291. [in] DWORD dwPid,
  292. [in] DWORD dwRoutingPid,
  293. [in] ULONG_PTR hEvent,
  294. [in] DWORD dwCurrentProcessId,
  295. [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
  296. );
  297. DWORD
  298. RRasAdminConnectionNotification(
  299. [in] DIM_HANDLE hDimServer,
  300. [in] DWORD fRegister,
  301. [in] DWORD dwClientProcessId,
  302. [in] ULONG_PTR hEventNotification
  303. );
  304. DWORD
  305. RRasAdminSendUserMessage(
  306. [in] DIM_HANDLE hDimServer,
  307. [in] DWORD hDimConnection,
  308. [in,string] LPWSTR lpwszMessage
  309. );
  310. DWORD
  311. RRouterDeviceEnum(
  312. [in] DIM_HANDLE hDimServer,
  313. [in] DWORD dwLevel,
  314. [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct,
  315. [in,out] LPDWORD lpdwTotalEntries
  316. );
  317. DWORD
  318. RRouterInterfaceTransportCreate(
  319. [in] DIM_HANDLE hDimServer,
  320. [in] DWORD dwTransportId,
  321. [in,string] LPWSTR lpwsTransportName,
  322. [in] PDIM_INTERFACE_CONTAINER pInfoStruct,
  323. [in,string] LPWSTR lpwsDLLPath
  324. );
  325. DWORD
  326. RRouterInterfaceDeviceGetInfo(
  327. [in] DIM_HANDLE hDimServer,
  328. [in] DWORD dwLevel,
  329. [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct,
  330. [in] DWORD dwIndex,
  331. [in] DWORD hInterface
  332. );
  333. DWORD
  334. RRouterInterfaceDeviceSetInfo(
  335. [in] DIM_HANDLE hDimServer,
  336. [in] DWORD dwLevel,
  337. [in] PDIM_INFORMATION_CONTAINER pInfoStruct,
  338. [in] DWORD dwIndex,
  339. [in] DWORD hInterface
  340. );
  341. DWORD
  342. RRouterInterfaceSetCredentialsEx(
  343. [in] DIM_HANDLE hDimServer,
  344. [in] DWORD dwLevel,
  345. [in] PDIM_INFORMATION_CONTAINER pInfoStruct,
  346. [in] DWORD hInterface
  347. );
  348. DWORD
  349. RRouterInterfaceGetCredentialsEx(
  350. [in] DIM_HANDLE hDimServer,
  351. [in] DWORD dwLevel,
  352. [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct,
  353. [in] DWORD hInterface
  354. );
  355. }