Leaked source code of windows server 2003
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.

470 lines
11 KiB

  1. /*++
  2. Copyright (c) 1990 Microsoft Corporation
  3. Module Name:
  4. info.idl
  5. Abstract:
  6. Contains the Internet Information Services admin RPC spec.
  7. APIs associated with the common TCPSvcs dll.
  8. Also contains the RPC specific data structures for these API.
  9. Author:
  10. Madan Appiah (Madana) 10-Oct-1995
  11. Environment:
  12. User Mode - Win32 - MIDL
  13. Revision History:
  14. MuraliK 12-Oct-1995 -- Tailored naming to suit conventions (Inet)
  15. MingLu 21-Nov-1999 -- Added APIs for optimized W3 performance counters
  16. --*/
  17. //
  18. // Interface Attributes
  19. //
  20. [
  21. uuid(82ad4280-036b-11cf-972c-00aa006887b0),
  22. version(2.0),
  23. #ifdef __midl
  24. ms_union,
  25. #endif // __midl
  26. pointer_default(unique)
  27. ]
  28. //
  29. // Interface Keyword
  30. //
  31. interface inetinfo
  32. //
  33. // Interface Body
  34. //
  35. {
  36. import "imports.idl";
  37. #include <lmcons.h>
  38. //
  39. // ---------------------------------------------------------------//
  40. //
  41. typedef [handle] LPWSTR INET_INFO_IMPERSONATE_HANDLE;
  42. typedef [handle] LPWSTR INET_INFO_IDENTIFY_HANDLE;
  43. //
  44. // Common TCP Services APIs
  45. //
  46. typedef struct _INET_INFO_CAPABILITIES_STRUCT {
  47. DWORD CapVersion; // Version number of this structure
  48. DWORD ProductType; // Product type
  49. DWORD MajorVersion; // Major version number
  50. DWORD MinorVersion; // Minor Version number
  51. DWORD BuildNumber; // Build number
  52. DWORD NumCapFlags; // Number of capabilities structures
  53. [size_is(NumCapFlags)] LPINET_INFO_CAP_FLAGS CapFlags;
  54. } INET_INFO_CAPABILITIES_STRUCT, * LPINET_INFO_CAPABILITIES_STRUCT;
  55. NET_API_STATUS
  56. NET_API_FUNCTION
  57. R_InetInfoGetVersion(
  58. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  59. [in] DWORD dwReserved,
  60. [out] DWORD *pdwVersion
  61. );
  62. NET_API_STATUS
  63. NET_API_FUNCTION
  64. R_InetInfoGetAdminInformation(
  65. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  66. [in] DWORD dwServerMask,
  67. [out] LPINET_INFO_CONFIG_INFO *ppConfig
  68. );
  69. NET_API_STATUS
  70. NET_API_FUNCTION
  71. R_InetInfoGetSites(
  72. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  73. [in] DWORD dwServerMask,
  74. [out] LPINET_INFO_SITE_LIST * ppSites
  75. );
  76. NET_API_STATUS
  77. NET_API_FUNCTION
  78. R_InetInfoSetAdminInformation(
  79. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  80. [in] DWORD dwServerMask,
  81. [in, ref] INET_INFO_CONFIG_INFO *pConfig
  82. );
  83. NET_API_STATUS
  84. NET_API_FUNCTION
  85. R_InetInfoGetGlobalAdminInformation(
  86. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  87. [in] DWORD dwServerMask,
  88. [out] LPINET_INFO_GLOBAL_CONFIG_INFO *ppConfig
  89. );
  90. NET_API_STATUS
  91. NET_API_FUNCTION
  92. R_InetInfoSetGlobalAdminInformation(
  93. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  94. [in] DWORD dwServerMask,
  95. [in, ref] INET_INFO_GLOBAL_CONFIG_INFO * pConfig
  96. );
  97. typedef [switch_type(unsigned long)] union _INET_INFO_STATISTICS_INFO
  98. {
  99. [case(0)]
  100. LPINET_INFO_STATISTICS_0 InetStats0;
  101. [default]
  102. ;
  103. } INET_INFO_STATISTICS_INFO, *LPINET_INFO_STATISTICS_INFO;
  104. NET_API_STATUS
  105. NET_API_FUNCTION
  106. R_InetInfoQueryStatistics(
  107. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  108. [in] DWORD Level,
  109. [in] DWORD dwServerMask,
  110. [out, switch_is(Level)] LPINET_INFO_STATISTICS_INFO StatsInfo
  111. );
  112. NET_API_STATUS
  113. NET_API_FUNCTION
  114. R_InetInfoClearStatistics(
  115. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  116. [in] DWORD dwServerMask
  117. );
  118. NET_API_STATUS
  119. NET_API_FUNCTION
  120. R_InetInfoFlushMemoryCache(
  121. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  122. [in] DWORD dwServerMask
  123. );
  124. NET_API_STATUS
  125. NET_API_FUNCTION
  126. R_InetInfoGetServerCapabilities(
  127. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  128. [in] DWORD dwReserved,
  129. [out] LPINET_INFO_CAPABILITIES_STRUCT *ppCap
  130. );
  131. //
  132. // IIS 4.0
  133. //
  134. typedef [switch_type(unsigned long)] union _W3_STATISTICS_UNION {
  135. [case(0)]
  136. LPW3_STATISTICS_1 StatInfo1;
  137. [default]
  138. ;
  139. } W3_STATISTICS_STRUCT, *LPW3_STATISTICS_STRUCT;
  140. NET_API_STATUS
  141. NET_API_FUNCTION
  142. R_W3QueryStatistics2(
  143. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  144. [in] DWORD dwLevel,
  145. [in] DWORD dwInstance,
  146. [in] DWORD dwReserved,
  147. [out,switch_is(dwLevel)] LPW3_STATISTICS_STRUCT InfoStruct
  148. );
  149. NET_API_STATUS
  150. NET_API_FUNCTION
  151. R_W3ClearStatistics2(
  152. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  153. [in] DWORD dwInstance
  154. );
  155. typedef [switch_type(unsigned long)] union _FTP_STATISTICS_UNION {
  156. [case(0)]
  157. LPFTP_STATISTICS_0 StatInfo0;
  158. [default]
  159. ;
  160. } FTP_STATISTICS_STRUCT, *LPFTP_STATISTICS_STRUCT;
  161. NET_API_STATUS
  162. NET_API_FUNCTION
  163. R_FtpQueryStatistics2(
  164. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  165. [in] DWORD dwLevel,
  166. [in] DWORD dwInstance,
  167. [in] DWORD dwReserved,
  168. [out,switch_is(dwLevel)] LPFTP_STATISTICS_STRUCT InfoStruct
  169. );
  170. NET_API_STATUS
  171. NET_API_FUNCTION
  172. R_FtpClearStatistics2(
  173. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  174. [in] DWORD dwInstance
  175. );
  176. //
  177. // User info
  178. //
  179. typedef struct _IIS_USER_INFO_1_CONTAINER {
  180. DWORD EntriesRead;
  181. [size_is(EntriesRead)] LPIIS_USER_INFO_1 Buffer;
  182. } IIS_USER_INFO_1_CONTAINER, *LPIIS_USER_INFO_1_CONTAINER;
  183. typedef struct _IIS_USER_ENUM_STRUCT {
  184. DWORD Level;
  185. [switch_is(Level)] union _USER_ENUM_UNION {
  186. [case(1)]
  187. LPIIS_USER_INFO_1_CONTAINER Level1;
  188. [default]
  189. ;
  190. } ConfigInfo;
  191. } IIS_USER_ENUM_STRUCT, *LPIIS_USER_ENUM_STRUCT;
  192. NET_API_STATUS
  193. NET_API_FUNCTION
  194. R_IISEnumerateUsers(
  195. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  196. [in] DWORD dwServiceId,
  197. [in] DWORD dwInstance,
  198. [in,out] LPIIS_USER_ENUM_STRUCT InfoStruct
  199. );
  200. NET_API_STATUS
  201. NET_API_FUNCTION
  202. R_IISDisconnectUser(
  203. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  204. [in] DWORD dwServiceId,
  205. [in] DWORD dwInstance,
  206. [in] DWORD dwIdUser
  207. );
  208. NET_API_STATUS
  209. NET_API_FUNCTION
  210. R_InitW3CounterStructure(
  211. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  212. [out, ref] LPDWORD lpcbTotalRequired
  213. );
  214. NET_API_STATUS
  215. NET_API_FUNCTION
  216. R_CollectW3PerfData(
  217. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  218. [in, string] LPWSTR lpValueName,
  219. [in, out, size_is(*lpcbTotalBytes)] LPBYTE lppData,
  220. [in, out, ref] LPDWORD lpcbTotalBytes,
  221. [out, ref] LPDWORD lpNumObjectTypes
  222. );
  223. #if 0 // only used for K2 Alpha
  224. typedef [switch_type(unsigned long)] union _INSTANCE_INFO_UNION {
  225. [case(1)]
  226. LPIIS_INSTANCE_INFO_1 ConfigInfo1;
  227. [case(2)]
  228. LPIIS_INSTANCE_INFO_2 ConfigInfo2;
  229. [default]
  230. ;
  231. } INSTANCE_INFO_STRUCT, *LPINSTANCE_INFO_STRUCT;
  232. //
  233. // User info
  234. //
  235. typedef struct _IIS_USER_INFO_1_CONTAINER {
  236. DWORD EntriesRead;
  237. [size_is(EntriesRead)] LPIIS_USER_INFO_1 Buffer;
  238. } IIS_USER_INFO_1_CONTAINER, *LPIIS_USER_INFO_1_CONTAINER;
  239. typedef struct _IIS_USER_ENUM_STRUCT {
  240. DWORD Level;
  241. [switch_is(Level)] union _USER_ENUM_UNION {
  242. [case(1)]
  243. LPIIS_USER_INFO_1_CONTAINER Level1;
  244. [default]
  245. ;
  246. } ConfigInfo;
  247. } IIS_USER_ENUM_STRUCT, *LPIIS_USER_ENUM_STRUCT;
  248. //
  249. //
  250. // Common APIs
  251. //
  252. NET_API_STATUS
  253. NET_API_FUNCTION
  254. R_IISGetAdminInformation(
  255. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  256. [in] DWORD dwLevel,
  257. [in] DWORD dwServiceId,
  258. [in] DWORD dwInstance,
  259. [out,switch_is(dwLevel)] LPINSTANCE_INFO_STRUCT InfoStruct
  260. );
  261. NET_API_STATUS
  262. NET_API_FUNCTION
  263. R_IISSetAdminInformation(
  264. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  265. [in] DWORD dwLevel,
  266. [in] DWORD dwServiceId,
  267. [in] DWORD dwInstance,
  268. [in, switch_is(dwLevel)] LPINSTANCE_INFO_STRUCT InfoStruct
  269. );
  270. NET_API_STATUS
  271. NET_API_FUNCTION
  272. R_IISEnumerateUsers(
  273. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  274. [in] DWORD dwServiceId,
  275. [in] DWORD dwInstance,
  276. [in,out] LPIIS_USER_ENUM_STRUCT InfoStruct
  277. );
  278. NET_API_STATUS
  279. NET_API_FUNCTION
  280. R_IISDisconnectUser(
  281. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  282. [in] DWORD dwServiceId,
  283. [in] DWORD dwInstance,
  284. [in] DWORD dwIdUser
  285. );
  286. //
  287. // W3
  288. //
  289. typedef [switch_type(unsigned long)] union _W3_CONFIG_INFO_UNION {
  290. [case(1)]
  291. LPW3_CONFIG_INFO_1 ConfigInfo1;
  292. [default]
  293. ;
  294. } W3_CONFIG_INFO_STRUCT, *LPW3_CONFIG_INFO_STRUCT;
  295. NET_API_STATUS
  296. NET_API_FUNCTION
  297. R_W3GetAdminInformation2(
  298. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  299. [in] DWORD dwLevel,
  300. [in] DWORD dwInstance,
  301. [out,switch_is(dwLevel)] LPW3_CONFIG_INFO_STRUCT InfoStruct
  302. );
  303. NET_API_STATUS
  304. NET_API_FUNCTION
  305. R_W3SetAdminInformation2(
  306. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  307. [in] DWORD dwLevel,
  308. [in] DWORD dwInstance,
  309. [in, switch_is(dwLevel)] LPW3_CONFIG_INFO_STRUCT InfoStruct
  310. );
  311. //
  312. // FTP
  313. //
  314. typedef [switch_type(unsigned long)] union _FTP_CONFIG_INFO_UNION {
  315. [case(1)]
  316. LPFTP_CONFIG_INFO_1 ConfigInfo1;
  317. [default]
  318. ;
  319. } FTP_CONFIG_INFO_STRUCT, *LPFTP_CONFIG_INFO_STRUCT;
  320. NET_API_STATUS
  321. NET_API_FUNCTION
  322. R_FtpGetAdminInformation2(
  323. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  324. [in] DWORD dwLevel,
  325. [in] DWORD dwInstance,
  326. [out,switch_is(dwLevel)] LPFTP_CONFIG_INFO_STRUCT InfoStruct
  327. );
  328. NET_API_STATUS
  329. NET_API_FUNCTION
  330. R_FtpSetAdminInformation2(
  331. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  332. [in] DWORD dwLevel,
  333. [in] DWORD dwInstance,
  334. [in, switch_is(dwLevel)] LPFTP_CONFIG_INFO_STRUCT InfoStruct
  335. );
  336. //
  337. // Gopher
  338. //
  339. typedef [switch_type(unsigned long)] union _GOPHERD_CONFIG_INFO_UNION {
  340. [case(1)]
  341. LPGOPHERD_CONFIG_INFO_1 ConfigInfo1;
  342. [default]
  343. ;
  344. } GOPHERD_CONFIG_INFO_STRUCT, *LPGOPHERD_CONFIG_INFO_STRUCT;
  345. typedef [switch_type(unsigned long)] union _GOPHERD_STATISTICS_UNION {
  346. [case(0)]
  347. LPGOPHERD_STATISTICS_0 StatInfo0;
  348. [default]
  349. ;
  350. } GOPHERD_STATISTICS_STRUCT, *LPGOPHERD_STATISTICS_STRUCT;
  351. NET_API_STATUS
  352. NET_API_FUNCTION
  353. R_GdGetAdminInformation2(
  354. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  355. [in] DWORD dwLevel,
  356. [in] DWORD dwInstance,
  357. [out,switch_is(dwLevel)] LPGOPHERD_CONFIG_INFO_STRUCT InfoStruct
  358. );
  359. NET_API_STATUS
  360. NET_API_FUNCTION
  361. R_GdSetAdminInformation2(
  362. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  363. [in] DWORD dwLevel,
  364. [in] DWORD dwInstance,
  365. [in, switch_is(dwLevel)] LPGOPHERD_CONFIG_INFO_STRUCT InfoStruct
  366. );
  367. NET_API_STATUS
  368. NET_API_FUNCTION
  369. R_GdQueryStatistics2(
  370. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  371. [in] DWORD dwLevel,
  372. [in] DWORD dwInstance,
  373. [in] DWORD dwReserved,
  374. [out,switch_is(dwLevel)] LPGOPHERD_STATISTICS_STRUCT InfoStruct
  375. );
  376. NET_API_STATUS
  377. NET_API_FUNCTION
  378. R_GdClearStatistics2(
  379. [in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
  380. [in] DWORD dwInstance
  381. );
  382. #endif //0
  383. }