svrapi.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef SVRAPI_INCLUDED
  7. #define SVRAPI_INCLUDED
  8. #include <lmcons.h>
  9. #include <lmerr.h>
  10. #ifndef RC_INVOKED
  11. #pragma pack(1)
  12. #endif
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #ifndef _SVRAPI_
  17. #define API_FUNCTION DECLSPEC_IMPORT API_RET_TYPE WINAPI
  18. #else
  19. #define API_FUNCTION API_RET_TYPE WINAPI
  20. #endif
  21. extern API_FUNCTION NetAccessAdd(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer);
  22. extern API_FUNCTION NetAccessCheck (char *pszReserved,char *pszUserName,char *pszResource,unsigned short usOperation,unsigned short *pusResult);
  23. extern API_FUNCTION NetAccessDel(const char *pszServer,char *pszResource);
  24. extern API_FUNCTION NetAccessEnum(const char *pszServer,char *pszBasePath,short fsRecursive,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
  25. extern API_FUNCTION NetAccessGetInfo(const char *pszServer,char *pszResource,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
  26. extern API_FUNCTION NetAccessSetInfo(const char *pszServer,char *pszResource,short sLevel,char *pbBuffer,unsigned short cbBuffer,short sParmNum);
  27. extern API_FUNCTION NetAccessGetUserPerms (char *pszServer,char *pszUgName,char *pszResource,unsigned short *pusPerms);
  28. struct access_list {
  29. char acl_ugname[LM20_UNLEN+1];
  30. char acl_ugname_pad_1;
  31. short acl_access;
  32. };
  33. struct access_list_2 {
  34. char *acl2_ugname;
  35. unsigned short acl2_access;
  36. };
  37. struct access_list_12 {
  38. char *acl12_ugname;
  39. unsigned short acl12_access;
  40. };
  41. struct access_info_0 {
  42. char *acc0_resource_name;
  43. };
  44. struct access_info_1 {
  45. char *acc1_resource_name;
  46. short acc1_attr;
  47. short acc1_count;
  48. };
  49. struct access_info_2 {
  50. char *acc2_resource_name;
  51. short acc2_attr;
  52. short acc2_count;
  53. };
  54. struct access_info_10 {
  55. char *acc10_resource_name;
  56. };
  57. struct access_info_12 {
  58. char *acc12_resource_name;
  59. short acc12_attr;
  60. short acc12_count;
  61. };
  62. #define MAXPERMENTRIES 64
  63. #define ACCESS_NONE 0
  64. #define ACCESS_ALL (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM|ACCESS_FINDFIRST)
  65. #define ACCESS_READ 0x1
  66. #define ACCESS_WRITE 0x2
  67. #define ACCESS_CREATE 0x4
  68. #define ACCESS_EXEC 0x8
  69. #define ACCESS_DELETE 0x10
  70. #define ACCESS_ATRIB 0x20
  71. #define ACCESS_PERM 0x40
  72. #define ACCESS_FINDFIRST 0x80
  73. #define ACCESS_GROUP 0x8000
  74. #define ACCESS_AUDIT 0x1
  75. #define ACCESS_ATTR_PARMNUM 2
  76. #define ACCESS_LETTERS "RWCXDAP "
  77. extern API_FUNCTION NetShareAdd(const char *pszServer,short sLevel,const char *pbBuffer,unsigned short cbBuffer);
  78. extern API_FUNCTION NetShareDel(const char *pszServer,const char *pszNetName,unsigned short usReserved);
  79. extern API_FUNCTION NetShareEnum(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
  80. extern API_FUNCTION NetShareGetInfo(const char *pszServer,const char *pszNetName,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
  81. extern API_FUNCTION NetShareSetInfo(const char *pszServer,const char *pszNetName,short sLevel,const char *pbBuffer,unsigned short cbBuffer,short sParmNum);
  82. struct share_info_0 {
  83. char shi0_netname[LM20_NNLEN+1];
  84. };
  85. struct share_info_1 {
  86. char shi1_netname[LM20_NNLEN+1];
  87. char shi1_pad1;
  88. unsigned short shi1_type;
  89. char *shi1_remark;
  90. };
  91. struct share_info_2 {
  92. char shi2_netname[LM20_NNLEN+1];
  93. char shi2_pad1;
  94. unsigned short shi2_type;
  95. char *shi2_remark;
  96. unsigned short shi2_permissions;
  97. unsigned short shi2_max_uses;
  98. unsigned short shi2_current_uses;
  99. char *shi2_path;
  100. char shi2_passwd[SHPWLEN+1];
  101. char shi2_pad2;
  102. };
  103. struct share_info_50 {
  104. char shi50_netname[LM20_NNLEN+1];
  105. unsigned char shi50_type;
  106. unsigned short shi50_flags;
  107. char *shi50_remark;
  108. char *shi50_path;
  109. char shi50_rw_password[SHPWLEN+1];
  110. char shi50_ro_password[SHPWLEN+1];
  111. };
  112. #define SHI50F_RDONLY 0x0001
  113. #define SHI50F_FULL 0x0002
  114. #define SHI50F_DEPENDSON (SHI50F_RDONLY|SHI50F_FULL)
  115. #define SHI50F_ACCESSMASK (SHI50F_RDONLY|SHI50F_FULL)
  116. #define SHI50F_PERSIST 0x0100
  117. #define SHI50F_SYSTEM 0x0200
  118. #ifndef PARMNUM_ALL
  119. #define PARMNUM_ALL 0
  120. #endif
  121. #define SHI_REMARK_PARMNUM 4
  122. #define SHI_PERMISSIONS_PARMNUM 5
  123. #define SHI_MAX_USES_PARMNUM 6
  124. #define SHI_PASSWD_PARMNUM 9
  125. #define SHI1_NUM_ELEMENTS 4
  126. #define SHI2_NUM_ELEMENTS 10
  127. #define STYPE_DISKTREE 0
  128. #define STYPE_PRINTQ 1
  129. #define STYPE_DEVICE 2
  130. #define STYPE_IPC 3
  131. #define SHI_USES_UNLIMITED -1
  132. extern API_FUNCTION NetSessionDel(const char *pszServer,const char *pszClientName,short sReserved);
  133. extern API_FUNCTION NetSessionEnum(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
  134. extern API_FUNCTION NetSessionGetInfo(const char *pszServer,const char *pszClientName,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
  135. struct session_info_0 {
  136. char *sesi0_cname;
  137. };
  138. struct session_info_1 {
  139. char *sesi1_cname;
  140. char *sesi1_username;
  141. unsigned short sesi1_num_conns;
  142. unsigned short sesi1_num_opens;
  143. unsigned short sesi1_num_users;
  144. unsigned __LONG32 sesi1_time;
  145. unsigned __LONG32 sesi1_idle_time;
  146. unsigned __LONG32 sesi1_user_flags;
  147. };
  148. struct session_info_2 {
  149. char *sesi2_cname;
  150. char *sesi2_username;
  151. unsigned short sesi2_num_conns;
  152. unsigned short sesi2_num_opens;
  153. unsigned short sesi2_num_users;
  154. unsigned __LONG32 sesi2_time;
  155. unsigned __LONG32 sesi2_idle_time;
  156. unsigned __LONG32 sesi2_user_flags;
  157. char *sesi2_cltype_name;
  158. };
  159. struct session_info_10 {
  160. char *sesi10_cname;
  161. char *sesi10_username;
  162. unsigned __LONG32 sesi10_time;
  163. unsigned __LONG32 sesi10_idle_time;
  164. };
  165. struct session_info_50 {
  166. char *sesi50_cname;
  167. char *sesi50_username;
  168. unsigned __LONG32 sesi50_key;
  169. unsigned short sesi50_num_conns;
  170. unsigned short sesi50_num_opens;
  171. unsigned __LONG32 sesi50_time;
  172. unsigned __LONG32 sesi50_idle_time;
  173. unsigned char sesi50_protocol;
  174. unsigned char pad1;
  175. };
  176. #define SESS_GUEST 1
  177. #define SESS_NOENCRYPTION 2
  178. #define SESI1_NUM_ELEMENTS 8
  179. #define SESI2_NUM_ELEMENTS 9
  180. extern API_FUNCTION NetConnectionEnum(const char *pszServer,const char *pszQualifier,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
  181. struct connection_info_0 {
  182. unsigned short coni0_id;
  183. };
  184. struct connection_info_1 {
  185. unsigned short coni1_id;
  186. unsigned short coni1_type;
  187. unsigned short coni1_num_opens;
  188. unsigned short coni1_num_users;
  189. unsigned __LONG32 coni1_time;
  190. char *coni1_username;
  191. char *coni1_netname;
  192. };
  193. struct connection_info_50 {
  194. unsigned short coni50_type;
  195. unsigned short coni50_num_opens;
  196. unsigned __LONG32 coni50_time;
  197. char *coni50_netname;
  198. char *coni50_username;
  199. };
  200. extern API_FUNCTION NetFileClose2(const char *pszServer,unsigned __LONG32 ulFileId);
  201. extern API_FUNCTION NetFileEnum(const char *pszServer,const char *pszBasePath,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
  202. struct file_info_0 {
  203. unsigned short fi0_id;
  204. };
  205. struct file_info_1 {
  206. unsigned short fi1_id;
  207. unsigned short fi1_permissions;
  208. unsigned short fi1_num_locks;
  209. char *fi1_pathname;
  210. char *fi1_username;
  211. };
  212. struct file_info_2 {
  213. unsigned __LONG32 fi2_id;
  214. };
  215. struct file_info_3 {
  216. unsigned __LONG32 fi3_id;
  217. unsigned short fi3_permissions;
  218. unsigned short fi3_num_locks;
  219. char *fi3_pathname;
  220. char *fi3_username;
  221. };
  222. struct file_info_50 {
  223. unsigned __LONG32 fi50_id;
  224. unsigned short fi50_permissions;
  225. unsigned short fi50_num_locks;
  226. char *fi50_pathname;
  227. char *fi50_username;
  228. char *fi50_sharename;
  229. };
  230. struct res_file_enum_2 {
  231. unsigned short res_pad;
  232. unsigned short res_fs;
  233. unsigned __LONG32 res_pro;
  234. };
  235. #define PERM_FILE_READ 0x1
  236. #define PERM_FILE_WRITE 0x2
  237. #define PERM_FILE_CREATE 0x4
  238. typedef struct res_file_enum_2 FRK;
  239. #define FRK_INIT(f) { (f).res_pad = 0; (f).res_fs = 0; (f).res_pro = 0; }
  240. extern API_FUNCTION NetServerGetInfo(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
  241. struct server_info_0 {
  242. char sv0_name[CNLEN + 1];
  243. };
  244. struct server_info_1 {
  245. char sv1_name[CNLEN + 1];
  246. unsigned char sv1_version_major;
  247. unsigned char sv1_version_minor;
  248. unsigned __LONG32 sv1_type;
  249. char *sv1_comment;
  250. };
  251. struct server_info_50 {
  252. char sv50_name[CNLEN + 1];
  253. unsigned char sv50_version_major;
  254. unsigned char sv50_version_minor;
  255. unsigned __LONG32 sv50_type;
  256. char *sv50_comment;
  257. unsigned short sv50_security;
  258. unsigned short sv50_auditing;
  259. char *sv50_container;
  260. char *sv50_ab_server;
  261. char *sv50_ab_dll;
  262. };
  263. struct server_info_2 {
  264. char sv2_name[CNLEN + 1];
  265. unsigned char sv2_version_major;
  266. unsigned char sv2_version_minor;
  267. unsigned __LONG32 sv2_type;
  268. char *sv2_comment;
  269. unsigned __LONG32 sv2_ulist_mtime;
  270. unsigned __LONG32 sv2_glist_mtime;
  271. unsigned __LONG32 sv2_alist_mtime;
  272. unsigned short sv2_users;
  273. unsigned short sv2_disc;
  274. char *sv2_alerts;
  275. unsigned short sv2_security;
  276. unsigned short sv2_auditing;
  277. unsigned short sv2_numadmin;
  278. unsigned short sv2_lanmask;
  279. unsigned short sv2_hidden;
  280. unsigned short sv2_announce;
  281. unsigned short sv2_anndelta;
  282. char sv2_guestacct[LM20_UNLEN + 1];
  283. unsigned char sv2_pad1;
  284. char *sv2_userpath;
  285. unsigned short sv2_chdevs;
  286. unsigned short sv2_chdevq;
  287. unsigned short sv2_chdevjobs;
  288. unsigned short sv2_connections;
  289. unsigned short sv2_shares;
  290. unsigned short sv2_openfiles;
  291. unsigned short sv2_sessopens;
  292. unsigned short sv2_sessvcs;
  293. unsigned short sv2_sessreqs;
  294. unsigned short sv2_opensearch;
  295. unsigned short sv2_activelocks;
  296. unsigned short sv2_numreqbuf;
  297. unsigned short sv2_sizreqbuf;
  298. unsigned short sv2_numbigbuf;
  299. unsigned short sv2_numfiletasks;
  300. unsigned short sv2_alertsched;
  301. unsigned short sv2_erroralert;
  302. unsigned short sv2_logonalert;
  303. unsigned short sv2_accessalert;
  304. unsigned short sv2_diskalert;
  305. unsigned short sv2_netioalert;
  306. unsigned short sv2_maxauditsz;
  307. char *sv2_srvheuristics;
  308. };
  309. struct server_info_3 {
  310. char sv3_name[CNLEN + 1];
  311. unsigned char sv3_version_major;
  312. unsigned char sv3_version_minor;
  313. unsigned __LONG32 sv3_type;
  314. char *sv3_comment;
  315. unsigned __LONG32 sv3_ulist_mtime;
  316. unsigned __LONG32 sv3_glist_mtime;
  317. unsigned __LONG32 sv3_alist_mtime;
  318. unsigned short sv3_users;
  319. unsigned short sv3_disc;
  320. char *sv3_alerts;
  321. unsigned short sv3_security;
  322. unsigned short sv3_auditing;
  323. unsigned short sv3_numadmin;
  324. unsigned short sv3_lanmask;
  325. unsigned short sv3_hidden;
  326. unsigned short sv3_announce;
  327. unsigned short sv3_anndelta;
  328. char sv3_guestacct[LM20_UNLEN + 1];
  329. unsigned char sv3_pad1;
  330. char *sv3_userpath;
  331. unsigned short sv3_chdevs;
  332. unsigned short sv3_chdevq;
  333. unsigned short sv3_chdevjobs;
  334. unsigned short sv3_connections;
  335. unsigned short sv3_shares;
  336. unsigned short sv3_openfiles;
  337. unsigned short sv3_sessopens;
  338. unsigned short sv3_sessvcs;
  339. unsigned short sv3_sessreqs;
  340. unsigned short sv3_opensearch;
  341. unsigned short sv3_activelocks;
  342. unsigned short sv3_numreqbuf;
  343. unsigned short sv3_sizreqbuf;
  344. unsigned short sv3_numbigbuf;
  345. unsigned short sv3_numfiletasks;
  346. unsigned short sv3_alertsched;
  347. unsigned short sv3_erroralert;
  348. unsigned short sv3_logonalert;
  349. unsigned short sv3_accessalert;
  350. unsigned short sv3_diskalert;
  351. unsigned short sv3_netioalert;
  352. unsigned short sv3_maxauditsz;
  353. char *sv3_srvheuristics;
  354. unsigned __LONG32 sv3_auditedevents;
  355. unsigned short sv3_autoprofile;
  356. char *sv3_autopath;
  357. };
  358. #define MAJOR_VERSION_MASK 0x0F
  359. #define SV_TYPE_WORKSTATION 0x00000001
  360. #define SV_TYPE_SERVER 0x00000002
  361. #define SV_TYPE_SQLSERVER 0x00000004
  362. #define SV_TYPE_DOMAIN_CTRL 0x00000008
  363. #define SV_TYPE_DOMAIN_BAKCTRL 0x00000010
  364. #define SV_TYPE_TIME_SOURCE 0x00000020
  365. #define SV_TYPE_AFP 0x00000040
  366. #define SV_TYPE_NOVELL 0x00000080
  367. #define SV_TYPE_DOMAIN_MEMBER 0x00000100
  368. #define SV_TYPE_PRINTQ_SERVER 0x00000200
  369. #define SV_TYPE_DIALIN_SERVER 0x00000400
  370. #define SV_TYPE_ALL 0xFFFFFFFF
  371. #define SV_NODISC 0xFFFF
  372. #define SV_USERSECURITY 1
  373. #define SV_SHARESECURITY 0
  374. #define SV_SECURITY_SHARE 0
  375. #define SV_SECURITY_WINNT 1
  376. #define SV_SECURITY_WINNTAS 2
  377. #define SV_SECURITY_NETWARE 3
  378. #define SV_HIDDEN 1
  379. #define SV_VISIBLE 0
  380. #define SVI1_NUM_ELEMENTS 5
  381. #define SVI2_NUM_ELEMENTS 44
  382. #define SVI3_NUM_ELEMENTS 45
  383. #define SW_AUTOPROF_LOAD_MASK 0x1
  384. #define SW_AUTOPROF_SAVE_MASK 0x2
  385. extern API_FUNCTION NetSecurityGetInfo(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
  386. struct security_info_1 {
  387. unsigned __LONG32 sec1_security;
  388. char *sec1_container;
  389. char *sec1_ab_server;
  390. char *sec1_ab_dll;
  391. };
  392. #define SEC_SECURITY_SHARE SV_SECURITY_SHARE
  393. #define SEC_SECURITY_WINNT SV_SECURITY_WINNT
  394. #define SEC_SECURITY_WINNTAS SV_SECURITY_WINNTAS
  395. #define SEC_SECURITY_NETWARE SV_SECURITY_NETWARE
  396. #ifdef __cplusplus
  397. }
  398. #endif
  399. #ifndef RC_INVOKED
  400. #pragma pack()
  401. #endif
  402. #endif