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.

1180 lines
26 KiB

  1. /*++
  2. Copyright (c) 1991-1993 Microsoft Corporation
  3. Module Name:
  4. apiparam.h
  5. Abstract:
  6. Declaration of structures representing parameters to the API calls.
  7. Each structure contains all parameters for a corresponding call,
  8. except for any server name (PSZ Server) parameters.
  9. Author:
  10. Shanku Niyogi (w-shanku) 11-Jan-1991
  11. Revision History:
  12. --*/
  13. #ifndef _APIPARAMS_
  14. #define _APIPARAMS_
  15. #include <packon.h> // Pack structures.
  16. //
  17. // Access permission APIs.
  18. //
  19. typedef struct _XS_NET_ACCESS_ADD {
  20. WORD Level;
  21. LPBYTE Buffer;
  22. WORD BufLen;
  23. } XS_NET_ACCESS_ADD, *PXS_NET_ACCESS_ADD;
  24. typedef struct _XS_NET_ACCESS_CHECK {
  25. LPSTR Reserved;
  26. LPSTR UserName;
  27. LPSTR Resource;
  28. WORD Operation;
  29. WORD Result;
  30. } XS_NET_ACCESS_CHECK, *PXS_NET_ACCESS_CHECK;
  31. typedef struct _XS_NET_ACCESS_DEL {
  32. LPSTR Resource;
  33. } XS_NET_ACCESS_DEL, *PXS_NET_ACCESS_DEL;
  34. typedef struct _XS_NET_ACCESS_ENUM {
  35. LPSTR BasePath;
  36. WORD Recursive;
  37. WORD Level;
  38. LPBYTE Buffer;
  39. WORD BufLen;
  40. WORD EntriesRead;
  41. WORD TotalAvail;
  42. } XS_NET_ACCESS_ENUM, *PXS_NET_ACCESS_ENUM;
  43. typedef struct _XS_NET_ACCESS_GET_INFO {
  44. LPSTR Resource;
  45. WORD Level;
  46. LPBYTE Buffer;
  47. WORD BufLen;
  48. WORD TotalAvail;
  49. } XS_NET_ACCESS_GET_INFO, *PXS_NET_ACCESS_GET_INFO;
  50. typedef struct _XS_NET_ACCESS_SET_INFO {
  51. LPSTR Resource;
  52. WORD Level;
  53. LPBYTE Buffer;
  54. WORD BufLen;
  55. WORD ParmNum;
  56. } XS_NET_ACCESS_SET_INFO, *PXS_NET_ACCESS_SET_INFO;
  57. typedef struct _XS_NET_ACCESS_GET_USER_PERMS {
  58. LPSTR UgName;
  59. LPSTR Resource;
  60. WORD Perms;
  61. } XS_NET_ACCESS_GET_USER_PERMS, *PXS_NET_ACCESS_GET_USER_PERMS;
  62. //
  63. // Account APIs.
  64. //
  65. typedef struct _XS_I_NET_ACCOUNT_DELTAS {
  66. LPSTR ComputerName;
  67. LPBYTE Authenticator;
  68. BYTE RetAuth[12];
  69. LPBYTE RecordID;
  70. WORD Count;
  71. WORD Level;
  72. LPBYTE Buffer;
  73. WORD BufferLen;
  74. WORD EntriesRead;
  75. WORD TotalEntries;
  76. BYTE NextRecordID[24];
  77. } XS_I_NET_ACCOUNT_DELTAS, *PXS_I_NET_ACCOUNT_DELTAS;
  78. typedef struct _XS_I_NET_ACCOUNT_SYNC {
  79. LPSTR ComputerName;
  80. LPBYTE Authenticator;
  81. BYTE RetAuth[12];
  82. DWORD Reference;
  83. WORD Level;
  84. LPBYTE Buffer;
  85. WORD BufferLen;
  86. WORD EntriesRead;
  87. WORD TotalEntries;
  88. DWORD NextReference;
  89. BYTE LastRecordID[24];
  90. } XS_I_NET_ACCOUNT_SYNC, *PXS_I_NET_ACCOUNT_SYNC;
  91. //
  92. // Alerter APIs.
  93. //
  94. typedef struct _XS_NET_ALERT_RAISE {
  95. LPSTR Event;
  96. LPBYTE Buffer;
  97. WORD BufLen;
  98. DWORD Timeout;
  99. } XS_NET_ALERT_RAISE, *PXS_NET_ALERT_RAISE;
  100. typedef struct _XS_NET_ALERT_START {
  101. LPSTR Event;
  102. LPSTR Recipient;
  103. WORD MaxData;
  104. } XS_NET_ALERT_START, *PXS_NET_ALERT_START;
  105. typedef struct _XS_NET_ALERT_STOP {
  106. LPSTR Event;
  107. LPSTR Recipient;
  108. } XS_NET_ALERT_STOP, *PXS_NET_ALERT_STOP;
  109. //
  110. // Auditing APIs.
  111. //
  112. typedef struct _XS_NET_AUDIT_CLEAR {
  113. LPSTR BackupFile;
  114. LPSTR Reserved;
  115. } XS_NET_AUDIT_CLEAR, *PXS_NET_AUDIT_CLEAR;
  116. typedef struct _XS_NET_AUDIT_OPEN {
  117. WORD AuditLog;
  118. LPSTR Reserved;
  119. } XS_NET_AUDIT_OPEN, *PXS_NET_AUDIT_OPEN;
  120. typedef struct _XS_NET_AUDIT_READ {
  121. LPSTR Reserved1;
  122. LPBYTE LogHandleIn;
  123. BYTE LogHandleOut[16];
  124. DWORD Offset;
  125. WORD Reserved2;
  126. DWORD Reserved3;
  127. DWORD OffsetFlag;
  128. LPBYTE Buffer;
  129. WORD BufLen;
  130. WORD Returned;
  131. WORD TotalAvail;
  132. } XS_NET_AUDIT_READ, *PXS_NET_AUDIT_READ;
  133. //
  134. // Character device APIs.
  135. //
  136. typedef struct _XS_NET_CHAR_DEV_CONTROL {
  137. LPSTR DevName;
  138. WORD OpCode;
  139. } XS_NET_CHAR_DEV_CONTROL, *PXS_NET_CHAR_DEV_CONTROL;
  140. typedef struct _XS_NET_CHAR_DEV_ENUM {
  141. WORD Level;
  142. LPBYTE Buffer;
  143. WORD BufLen;
  144. WORD EntriesRead;
  145. WORD TotalAvail;
  146. } _XS_NET_CHAR_DEV_ENUM, *PXS_NET_CHAR_DEV_ENUM;
  147. typedef struct _XS_NET_CHAR_DEV_GET_INFO {
  148. LPSTR DevName;
  149. WORD Level;
  150. LPBYTE Buffer;
  151. WORD BufLen;
  152. WORD TotalAvail;
  153. } XS_NET_CHAR_DEV_GET_INFO, *PXS_NET_CHAR_DEV_GET_INFO;
  154. typedef struct _XS_NET_CHAR_DEV_Q_ENUM {
  155. LPSTR UserName;
  156. WORD Level;
  157. LPBYTE Buffer;
  158. WORD BufLen;
  159. WORD EntriesRead;
  160. WORD TotalAvail;
  161. } XS_NET_CHAR_DEV_Q_ENUM, *PXS_NET_CHAR_DEV_Q_ENUM;
  162. typedef struct _XS_NET_CHAR_DEV_Q_GET_INFO {
  163. LPSTR QueueName;
  164. LPSTR UserName;
  165. WORD Level;
  166. LPBYTE Buffer;
  167. WORD BufLen;
  168. WORD TotalAvail;
  169. } XS_NET_CHAR_DEV_Q_GET_INFO, *PXS_NET_CHAR_DEV_Q_GET_INFO;
  170. typedef struct _XS_NET_CHAR_DEV_Q_PURGE {
  171. LPSTR QueueName;
  172. } XS_NET_CHAR_DEV_Q_PURGE, *PXS_NET_CHAR_DEV_Q_PURGE;
  173. typedef struct _XS_NET_CHAR_DEV_Q_PURGE_SELF {
  174. LPSTR QueueName;
  175. LPSTR ComputerName;
  176. } XS_NET_CHAR_DEV_Q_PURGE_SELF, *PXS_NET_CHAR_DEV_Q_PURGE_SELF;
  177. typedef struct _XS_NET_CHAR_DEV_Q_SET_INFO {
  178. LPSTR QueueName;
  179. WORD Level;
  180. LPBYTE Buffer;
  181. WORD BufLen;
  182. WORD ParmNum;
  183. } XS_NET_CHAR_DEV_Q_SET_INFO, *PXS_NET_CHAR_DEV_Q_SET_INFO;
  184. //
  185. // Configuration APIs.
  186. //
  187. typedef struct _XS_NET_CONFIG_GET_2 {
  188. LPSTR Reserved;
  189. LPSTR Component;
  190. LPSTR Parameter;
  191. LPBYTE Buffer;
  192. WORD BufLen;
  193. WORD Parmlen;
  194. } XS_NET_CONFIG_GET_2, *PXS_NET_CONFIG_GET_2;
  195. typedef struct _XS_NET_CONFIG_GET_ALL_2 {
  196. LPSTR Reserved;
  197. LPSTR Component;
  198. LPBYTE Buffer;
  199. WORD BufLen;
  200. WORD Returned;
  201. WORD TotalAvail;
  202. } XS_NET_CONFIG_GET_ALL_2, *PXS_NET_CONFIG_GET_ALL_2;
  203. //
  204. // Connection API.
  205. //
  206. typedef struct _XS_NET_CONNECTION_ENUM {
  207. LPSTR Qualifier;
  208. WORD Level;
  209. LPBYTE Buffer;
  210. WORD BufLen;
  211. WORD EntriesRead;
  212. WORD TotalAvail;
  213. } XS_NET_CONNECTION_ENUM, *PXS_NET_CONNECTION_ENUM;
  214. //
  215. // Domain APIs.
  216. //
  217. typedef struct _XS_NET_GET_DC_NAME {
  218. LPSTR Domain;
  219. LPBYTE Buffer;
  220. WORD BufLen;
  221. } XS_NET_GET_DC_NAME, *PXS_NET_GET_DC_NAME;
  222. typedef struct _XS_NET_LOGON_ENUM {
  223. WORD Level;
  224. LPBYTE Buffer;
  225. WORD BufLen;
  226. WORD EntriesRead;
  227. WORD TotalAvail;
  228. } XS_NET_LOGON_ENUM, *PXS_NET_LOGON_ENUM;
  229. //
  230. // Error logging APIs.
  231. //
  232. typedef struct _XS_NET_ERROR_LOG_CLEAR {
  233. LPSTR BackupFile;
  234. LPSTR Reserved;
  235. } XS_NET_ERROR_LOG_CLEAR, *PXS_NET_ERROR_LOG_CLEAR;
  236. typedef struct _XS_NET_ERROR_LOG_READ {
  237. LPSTR Reserved1;
  238. // HLOG * ErrorLog;
  239. DWORD Offset;
  240. WORD Reserved2;
  241. DWORD Reserved3;
  242. DWORD OffsetFlag;
  243. LPBYTE Buffer;
  244. WORD BufLen;
  245. WORD Returned;
  246. WORD TotalAvail;
  247. } XS_NET_ERROR_LOG_READ, *PXS_NET_ERROR_LOG_READ;
  248. typedef struct _XS_NET_ERROR_LOG_WRITE {
  249. LPSTR Reserved1;
  250. WORD Code;
  251. LPSTR Component;
  252. LPBYTE Buffer;
  253. WORD BufLen;
  254. LPSTR StrBuf;
  255. WORD StrBufLen;
  256. LPSTR Reserved2;
  257. } XS_NET_ERROR_LOG_WRITE, *PXS_NET_ERROR_LOG_WRITE;
  258. //
  259. // File APIs.
  260. //
  261. typedef struct _XS_NET_FILE_CLOSE_2 {
  262. DWORD FileId;
  263. } XS_NET_FILE_CLOSE_2, *PXS_NET_FILE_CLOSE_2;
  264. typedef struct _XS_NET_FILE_ENUM_2 {
  265. LPSTR BasePath;
  266. LPSTR UserName;
  267. WORD Level;
  268. LPBYTE Buffer;
  269. WORD BufLen;
  270. WORD EntriesRead;
  271. WORD EntriesRemaining;
  272. LPBYTE ResumeKeyIn;
  273. BYTE ResumeKeyOut[8];
  274. } XS_NET_FILE_ENUM_2, *PXS_NET_FILE_ENUM_2;
  275. typedef struct _XS_NET_FILE_GET_INFO_2 {
  276. DWORD FileId;
  277. WORD Level;
  278. LPBYTE Buffer;
  279. WORD BufLen;
  280. WORD TotalAvail;
  281. } XS_NET_FILE_GET_INFO_2, *PXS_NET_FILE_GET_INFO_2;
  282. //
  283. // Group APIs.
  284. //
  285. typedef struct _XS_NET_GROUP_ADD {
  286. WORD Level;
  287. LPBYTE Buffer;
  288. WORD BufLen;
  289. } XS_NET_GROUP_ADD, *PXS_NET_GROUP_ADD;
  290. typedef struct _XS_NET_GROUP_DEL {
  291. LPSTR GroupName;
  292. } XS_NET_GROUP_DEL, *PXS_NET_GROUP_DEL;
  293. typedef struct _XS_NET_GROUP_ENUM {
  294. WORD Level;
  295. LPBYTE Buffer;
  296. WORD BufLen;
  297. WORD EntriesRead;
  298. WORD TotalAvail;
  299. } XS_NET_GROUP_ENUM, *PXS_NET_GROUP_ENUM;
  300. typedef struct _XS_NET_GROUP_ADD_USER {
  301. LPSTR GroupName;
  302. LPSTR UserName;
  303. } XS_NET_GROUP_ADD_USER, *PXS_NET_GROUP_ADD_USER;
  304. typedef struct _XS_NET_GROUP_DEL_USER {
  305. LPSTR GroupName;
  306. LPSTR UserName;
  307. } XS_NET_GROUP_DEL_USER, *PXS_NET_GROUP_DEL_USER;
  308. typedef struct _XS_NET_GROUP_GET_USERS {
  309. LPSTR GroupName;
  310. WORD Level;
  311. LPBYTE Buffer;
  312. WORD BufLen;
  313. WORD EntriesRead;
  314. WORD TotalAvail;
  315. } XS_NET_GROUP_GET_USERS, *PXS_NET_GROUP_GET_USERS;
  316. typedef struct _XS_NET_GROUP_SET_USERS {
  317. LPSTR GroupName;
  318. WORD Level;
  319. LPBYTE Buffer;
  320. WORD BufLen;
  321. WORD Entries;
  322. } XS_NET_GROUP_SET_USERS, *PXS_NET_GROUP_SET_USERS;
  323. typedef struct _XS_NET_GROUP_GET_INFO {
  324. LPSTR GroupName;
  325. WORD Level;
  326. LPBYTE Buffer;
  327. WORD BufLen;
  328. WORD TotalAvail;
  329. } XS_NET_GROUP_GET_INFO, *PXS_NET_GROUP_GET_INFO;
  330. typedef struct _XS_NET_GROUP_SET_INFO {
  331. LPSTR GroupName;
  332. WORD Level;
  333. LPBYTE Buffer;
  334. WORD BufLen;
  335. WORD ParmNum;
  336. } XS_NET_GROUP_SET_INFO, *PXS_NET_GROUP_SET_INFO;
  337. //
  338. // Handle APIs.
  339. //
  340. typedef struct _XS_NET_HANDLE_GET_INFO {
  341. WORD Handle;
  342. WORD Level;
  343. LPBYTE Buffer;
  344. WORD BufLen;
  345. WORD TotalAvail;
  346. } XS_NET_HANDLE_GET_INFO, *PXS_NET_HANDLE_GET_INFO;
  347. typedef struct _XS_NET_HANDLE_SET_INFO {
  348. WORD Handle;
  349. WORD Level;
  350. LPBYTE Buffer;
  351. WORD BufLen;
  352. WORD ParmNum;
  353. } XS_NET_HANDLE_SET_INFO, *PXS_NET_HANDLE_SET_INFO;
  354. //
  355. // Mailslot APIs.
  356. //
  357. typedef struct _XS_DOS_MAKE_MAILSLOT {
  358. LPSTR Name;
  359. WORD MessageSize;
  360. WORD MailslotSize;
  361. WORD Mailslot;
  362. } XS_DOS_MAKE_MAILSLOT, *PXS_DOS_MAKE_MAILSLOT;
  363. typedef struct _XS_DOS_PEEK_MAILSLOT {
  364. WORD Mailslot;
  365. LPBYTE Buffer;
  366. WORD Returned;
  367. WORD NextSize;
  368. WORD NextPriority;
  369. } XS_DOS_PEEK_MAILSLOT, *PXS_DOS_PEEK_MAILSLOT;
  370. typedef struct _XS_DOS_DELETE_MAILSLOT {
  371. WORD Mailslot;
  372. } XS_DOS_DELETE_MAILSLOT, *PXS_DOS_DELETE_MAILSLOT;
  373. typedef struct _XS_DOS_MAILSLOT_INFO {
  374. WORD Mailslot;
  375. WORD MessageSize;
  376. WORD MailslotSize;
  377. WORD NextSize;
  378. WORD NextPriority;
  379. WORD Messages;
  380. } XS_DOS_MAILSLOT_INFO, *PXS_DOS_MAILSLOT_INFO;
  381. typedef struct _XS_DOS_READ_MAILSLOT {
  382. WORD Mailslot;
  383. LPBYTE Buffer;
  384. WORD Returned;
  385. WORD NextSize;
  386. WORD NextPriority;
  387. DWORD Timeout;
  388. } XS_DOS_READ_MAILSLOT, *PXS_DOS_READ_MAILSLOT;
  389. typedef struct _XS_DOS_WRITE_MAILSLOT {
  390. LPSTR Name;
  391. LPBYTE Buffer;
  392. WORD BufLen;
  393. WORD Priority;
  394. WORD Class;
  395. DWORD Timeout;
  396. } XS_DOS_WRITE_MAILSLOT, *PXS_DOS_WRITE_MAILSLOT;
  397. //
  398. // Message APIs.
  399. //
  400. typedef struct _XS_NET_MESSAGE_BUFFER_SEND {
  401. LPSTR Recipient;
  402. LPBYTE Buffer;
  403. WORD BufLen;
  404. } XS_NET_MESSAGE_BUFFER_SEND, *PXS_NET_MESSAGE_BUFFER_SEND;
  405. typedef struct _XS_NET_MESSAGE_NAME_ADD {
  406. LPSTR MessageName;
  407. WORD FwdAction;
  408. } XS_NET_MESSAGE_NAME_ADD, *PXS_NET_MESSAGE_NAME_ADD;
  409. typedef struct _XS_NET_MESSAGE_NAME_DEL {
  410. LPSTR MessageName;
  411. WORD FwdAction;
  412. } XS_NET_MESSAGE_NAME_DEL, *PXS_NET_MESSAGE_NAME_DEL;
  413. typedef struct _XS_NET_MESSAGE_NAME_ENUM {
  414. WORD Level;
  415. LPBYTE Buffer;
  416. WORD BufLen;
  417. WORD EntriesRead;
  418. WORD TotalAvail;
  419. } XS_NET_MESSAGE_NAME_ENUM, *PXS_NET_MESSAGE_NAME_ENUM;
  420. typedef struct _XS_NET_MESSAGE_NAME_GET_INFO {
  421. LPSTR MessageName;
  422. WORD Level;
  423. LPBYTE Buffer;
  424. WORD BufLen;
  425. WORD TotalAvail;
  426. } XS_NET_MESSAGE_NAME_GET_INFO, *PXS_NET_MESSAGE_NAME_GET_INFO;
  427. //
  428. // NetBIOS APIs.
  429. //
  430. typedef struct _XS_NET_BIOS_OPEN {
  431. LPSTR DevName;
  432. LPSTR Reserved;
  433. WORD OpenOpt;
  434. WORD DevHandle;
  435. } XS_NET_BIOS_OPEN, *PXS_NET_BIOS_OPEN;
  436. typedef struct _XS_NET_BIOS_CLOSE {
  437. WORD DevName;
  438. WORD Reserved;
  439. } XS_NET_BIOS_CLOSE, *PXS_NET_BIOS_CLOSE;
  440. typedef struct _XS_NET_BIOS_ENUM {
  441. WORD Level;
  442. LPBYTE Buffer;
  443. WORD BufLen;
  444. WORD EntriesRead;
  445. WORD TotalAvail;
  446. } XS_NET_BIOS_ENUM, *PXS_NET_BIOS_ENUM;
  447. typedef struct _XS_NET_BIOS_GET_INFO {
  448. LPSTR NetBiosName;
  449. WORD Level;
  450. LPBYTE Buffer;
  451. WORD BufLen;
  452. WORD TotalAvail;
  453. } XS_NET_BIOS_GET_INFO, *PXS_NET_BIOS_GET_INFO;
  454. typedef struct _XS_NET_BIOS_SUBMIT {
  455. WORD DevName;
  456. WORD NcbOpt;
  457. // NCB * NCBPointer;
  458. } XS_NET_BIOS_SUBMIT, *PXS_NET_BIOS_SUBMIT;
  459. //
  460. // Path APIs.
  461. //
  462. typedef struct _XS_I_NET_PATH_CANONICALIZE {
  463. LPSTR PathName;
  464. LPSTR Outbuf;
  465. WORD OutbufLen;
  466. LPSTR Prefix;
  467. DWORD PathTypeOut;
  468. DWORD PathType;
  469. DWORD Flags;
  470. } XS_I_NET_PATH_CANONICALIZE, *PXS_I_NET_PATH_CANONICALIZE;
  471. typedef struct _XS_I_NET_PATH_COMPARE {
  472. LPSTR PathName1;
  473. LPSTR PathName2;
  474. DWORD PathType;
  475. DWORD Flags;
  476. } XS_I_NET_PATH_COMPARE, *PXS_I_NET_PATH_COMPARE;
  477. typedef struct _XS_I_NET_PATH_TYPE {
  478. LPSTR PathName;
  479. DWORD PathType;
  480. DWORD Flags;
  481. } XS_I_NET_PATH_TYPE, *PXS_I_NET_PATH_TYPE;
  482. typedef struct _XS_I_NET_NAME_CANONICALIZE {
  483. LPSTR Name;
  484. LPSTR Outbuf;
  485. DWORD OutbufLen;
  486. WORD NameType;
  487. DWORD Flags;
  488. } XS_I_NET_NAME_CANONICALIZE, *PXS_I_NET_NAME_CANONICALIZE;
  489. typedef struct _XS_I_NET_NAME_COMPARE {
  490. LPSTR Name1;
  491. LPSTR Name2;
  492. WORD NameType;
  493. DWORD Flags;
  494. } XS_I_NET_NAME_COMPARE, *PXS_I_NET_NAME_COMPARE;
  495. typedef struct _XS_I_NET_NAME_VALIDATE {
  496. LPSTR Name;
  497. WORD NameType;
  498. DWORD Flags;
  499. } XS_I_NET_NAME_VALIDATE, *PXS_I_NET_NAME_VALIDATE;
  500. //
  501. // Print Destination APIs.
  502. //
  503. typedef struct _XS_DOS_PRINT_DEST_ADD {
  504. WORD Level;
  505. LPBYTE Buffer;
  506. WORD BufLen;
  507. } XS_DOS_PRINT_DEST_ADD, *PXS_DOS_PRINT_DEST_ADD;
  508. typedef struct _XS_DOS_PRINT_DEST_CONTROL {
  509. LPSTR DestName;
  510. WORD Control;
  511. } XS_DOS_PRINT_DEST_CONTROL, *PXS_DOS_PRINT_DEST_CONTROL;
  512. typedef struct _XS_DOS_PRINT_DEST_DEL {
  513. LPSTR PrinterName;
  514. } XS_DOS_PRINT_DEST_DEL, *PXS_DOS_PRINT_DEST_DEL;
  515. typedef struct _XS_DOS_PRINT_DEST_ENUM {
  516. WORD Level;
  517. LPBYTE Buffer;
  518. WORD BufLen;
  519. WORD Returned;
  520. WORD Total;
  521. } XS_DOS_PRINT_DEST_ENUM, *PXS_DOS_PRINT_DEST_ENUM;
  522. typedef struct _XS_DOS_PRINT_DEST_GET_INFO {
  523. LPSTR Name;
  524. WORD Level;
  525. LPBYTE Buffer;
  526. WORD BufLen;
  527. WORD Needed;
  528. } XS_DOS_PRINT_DEST_GET_INFO, *PXS_DOS_PRINT_DEST_GET_INFO;
  529. typedef struct _XS_DOS_PRINT_DEST_SET_INFO {
  530. LPSTR Name;
  531. WORD Level;
  532. LPBYTE Buffer;
  533. WORD BufLen;
  534. WORD ParmNum;
  535. } XS_DOS_PRINT_DEST_SET_INFO, *PXS_DOS_PRINT_DEST_SET_INFO;
  536. //
  537. // Print job APIs.
  538. //
  539. typedef struct _XS_DOS_PRINT_JOB_CONTINUE {
  540. WORD JobId;
  541. } XS_DOS_PRINT_JOB_CONTINUE, *PXS_DOS_PRINT_JOB_CONTINUE;
  542. typedef struct _XS_DOS_PRINT_JOB_DEL {
  543. WORD JobId;
  544. } XS_DOS_PRINT_JOB_DEL, *PXS_DOS_PRINT_JOB_DEL;
  545. typedef struct _XS_DOS_PRINT_JOB_ENUM {
  546. LPSTR QueueName;
  547. WORD Level;
  548. LPBYTE Buffer;
  549. WORD BufLen;
  550. WORD Returned;
  551. WORD Total;
  552. } XS_DOS_PRINT_JOB_ENUM, *PXS_DOS_PRINT_JOB_ENUM;
  553. typedef struct _XS_DOS_PRINT_JOB_GET_ID {
  554. // HFILE File;
  555. // PPRIDINFO Info;
  556. WORD InfoLen;
  557. } XS_DOS_PRINT_JOB_GET_ID, *PXS_DOS_PRINT_JOB_GET_ID;
  558. typedef struct _XS_DOS_PRINT_JOB_GET_INFO {
  559. WORD JobId;
  560. WORD Level;
  561. LPBYTE Buffer;
  562. WORD BufLen;
  563. WORD Needed;
  564. } XS_DOS_PRINT_JOB_GET_INFO, *PXS_DOS_PRINT_JOB_GET_INFO;
  565. typedef struct _XS_DOS_PRINT_JOB_PAUSE {
  566. WORD JobId;
  567. } XS_DOS_PRINT_JOB_PAUSE, *PXS_DOS_PRINT_JOB_PAUSE;
  568. typedef struct _XS_DOS_PRINT_JOB_SET_INFO {
  569. WORD JobId;
  570. WORD Level;
  571. LPBYTE Buffer;
  572. WORD BufLen;
  573. WORD ParmNum;
  574. } XS_DOS_PRINT_JOB_SET_INFO, *PXS_DOS_PRINT_JOB_SET_INFO;
  575. //
  576. // Printer Queue APIs.
  577. //
  578. typedef struct _XS_DOS_PRINT_Q_ADD {
  579. WORD Level;
  580. LPBYTE Buffer;
  581. WORD BufLen;
  582. } XS_DOS_PRINT_Q_ADD, *PXS_DOS_PRINT_Q_ADD;
  583. typedef struct _XS_DOS_PRINT_Q_CONTINUE {
  584. LPSTR QueueName;
  585. } XS_DOS_PRINT_Q_CONTINUE, *PXS_DOS_PRINT_Q_CONTINUE;
  586. typedef struct _XS_DOS_PRINT_Q_DEL {
  587. LPSTR QueueName;
  588. } XS_DOS_PRINT_Q_DEL, *PXS_DOS_PRINT_Q_DEL;
  589. typedef struct _XS_DOS_PRINT_Q_ENUM {
  590. WORD Level;
  591. LPBYTE Buffer;
  592. WORD BufLen;
  593. WORD Returned;
  594. WORD Total;
  595. } XS_DOS_PRINT_Q_ENUM, *PXS_DOS_PRINT_Q_ENUM;
  596. typedef struct _XS_DOS_PRINT_Q_GET_INFO {
  597. LPSTR QueueName;
  598. WORD Level;
  599. LPBYTE Buffer;
  600. WORD BufLen;
  601. WORD Needed;
  602. } XS_DOS_PRINT_Q_GET_INFO, *PXS_DOS_PRINT_Q_GET_INFO;
  603. typedef struct _XS_DOS_PRINT_Q_PAUSE {
  604. LPSTR QueueName;
  605. } XS_DOS_PRINT_Q_PAUSE, *PXS_DOS_PRINT_Q_PAUSE;
  606. typedef struct _XS_DOS_PRINT_Q_PURGE {
  607. LPSTR QueueName;
  608. } XS_DOS_PRINT_Q_PURGE, *PXS_DOS_PRINT_Q_PURGE;
  609. typedef struct _XS_DOS_PRINT_Q_SET_INFO {
  610. LPSTR QueueName;
  611. WORD Level;
  612. LPBYTE Buffer;
  613. WORD BufLen;
  614. WORD ParmNum;
  615. } XS_DOS_PRINT_Q_SET_INFO, *PXS_DOS_PRINT_Q_SET_INFO;
  616. //
  617. // Remote APIs.
  618. //
  619. typedef struct _XS_NET_REMOTE_COPY {
  620. LPSTR SourcePath;
  621. LPSTR DestPath;
  622. LPSTR SourcePasswd;
  623. LPSTR DestPasswd;
  624. WORD Open;
  625. WORD Copy;
  626. LPBYTE Buffer;
  627. WORD BufLen;
  628. } XS_NET_REMOTE_COPY, *PXS_NET_REMOTE_COPY;
  629. typedef struct _XS_NET_REMOTE_EXEC {
  630. LPSTR Reserved1;
  631. LPSTR FailName;
  632. WORD FailNameLen;
  633. WORD Async;
  634. LPSTR Args;
  635. LPSTR Envs;
  636. LPSTR ReturnCodes;
  637. LPSTR PgmName;
  638. LPSTR Reserved2;
  639. WORD RemoteExec;
  640. } XS_NET_REMOTE_EXEC, *PXS_NET_REMOTE_EXEC;
  641. typedef struct _XS_NET_REMOTE_MOVE {
  642. LPSTR SourcePath;
  643. LPSTR DestPath;
  644. LPSTR SourcePasswd;
  645. LPSTR DestPasswd;
  646. WORD Open;
  647. WORD Move;
  648. LPBYTE Buffer;
  649. WORD BufLen;
  650. } XS_NET_REMOTE_MOVE, *PXS_NET_REMOTE_MOVE;
  651. typedef struct _XS_NET_REMOTE_TOD {
  652. LPBYTE Buffer;
  653. WORD BufLen;
  654. } XS_NET_REMOTE_TOD, *PXS_NET_REMOTE_TOD;
  655. //
  656. // Server APIs.
  657. //
  658. typedef struct _XS_NET_SERVER_AUTHENTICATE {
  659. LPSTR Requestor;
  660. LPBYTE Caller;
  661. BYTE Primary[8];
  662. } XS_NET_SERVER_AUTHENTICATE, *PXS_NET_SERVER_AUTHENTICATE;
  663. typedef struct _XS_NET_SERVER_DISK_ENUM {
  664. WORD Level;
  665. LPBYTE Buffer;
  666. WORD BufLen;
  667. WORD EntriesRead;
  668. WORD TotalAvail;
  669. } XS_NET_SERVER_DISK_ENUM, *PXS_NET_SERVER_DISK_ENUM;
  670. typedef struct _XS_NET_SERVER_ENUM_2 {
  671. WORD Level;
  672. LPBYTE Buffer;
  673. WORD BufLen;
  674. WORD EntriesRead;
  675. WORD TotalAvail;
  676. DWORD ServerType;
  677. LPSTR Domain;
  678. } XS_NET_SERVER_ENUM_2, *PXS_NET_SERVER_ENUM_2;
  679. typedef struct _XS_NET_SERVER_ENUM_3 {
  680. WORD Level;
  681. LPBYTE Buffer;
  682. WORD BufLen;
  683. WORD EntriesRead;
  684. WORD TotalAvail;
  685. DWORD ServerType;
  686. LPSTR Domain;
  687. LPSTR FirstNameToReturn;
  688. } XS_NET_SERVER_ENUM_3, *PXS_NET_SERVER_ENUM_3;
  689. typedef struct _XS_NET_SERVER_GET_INFO {
  690. WORD Level;
  691. LPBYTE Buffer;
  692. WORD BufLen;
  693. WORD TotalAvail;
  694. } XS_NET_SERVER_GET_INFO, *PXS_NET_SERVER_GET_INFO;
  695. typedef struct _XS_NET_SERVER_PASSWORD_SET {
  696. LPSTR Requestor;
  697. LPBYTE Authenticator;
  698. BYTE RetAuth[12];
  699. LPBYTE Password;
  700. } XS_NET_SERVER_PASSWORD_SET, *PXS_NET_SERVER_PASSWORD_SET;
  701. typedef struct _XS_NET_SERVER_REQ_CHALLENGE {
  702. LPSTR Requestor;
  703. LPBYTE Caller;
  704. BYTE Primary[8];
  705. } XS_NET_SERVER_REQ_CHALLENGE, *PXS_NET_SERVER_REQ_CHALLENGE;
  706. typedef struct _XS_NET_SERVER_SET_INFO {
  707. WORD Level;
  708. LPBYTE Buffer;
  709. WORD BufLen;
  710. WORD ParmNum;
  711. } XS_NET_SERVER_SET_INFO, *PXS_NET_SERVER_SET_INFO;
  712. //
  713. // Service APIs.
  714. //
  715. typedef struct _XS_NET_SERVICE_CONTROL {
  716. LPSTR Service;
  717. WORD OpCode;
  718. WORD Arg;
  719. LPBYTE Buffer;
  720. WORD BufLen;
  721. } XS_NET_SERVICE_CONTROL, *PXS_NET_SERVICE_CONTROL;
  722. typedef struct _XS_NET_SERVICE_ENUM {
  723. WORD Level;
  724. LPBYTE Buffer;
  725. WORD BufLen;
  726. WORD EntriesRead;
  727. WORD TotalAvail;
  728. } XS_NET_SERVICE_ENUM, *PXS_NET_SERVICE_ENUM;
  729. typedef struct _XS_NET_SERVICE_GET_INFO {
  730. LPSTR Service;
  731. WORD Level;
  732. LPBYTE Buffer;
  733. WORD BufLen;
  734. WORD TotalAvail;
  735. } XS_NET_SERVICE_GET_INFO, *PXS_NET_SERVICE_GET_INFO;
  736. typedef struct _XS_NET_SERVICE_INSTALL {
  737. LPSTR Service;
  738. LPBYTE FillSpace;
  739. LPBYTE RcvBuffer;
  740. BYTE RetBuffer[88];
  741. } XS_NET_SERVICE_INSTALL, *PXS_NET_SERVICE_INSTALL;
  742. //
  743. // Session APIs.
  744. //
  745. typedef struct _XS_NET_SESSION_DEL {
  746. LPSTR ClientName;
  747. WORD Reserved;
  748. } XS_NET_SESSION_DEL, *PXS_NET_SESSION_DEL;
  749. typedef struct _XS_NET_SESSION_ENUM {
  750. WORD Level;
  751. LPBYTE Buffer;
  752. WORD BufLen;
  753. WORD EntriesRead;
  754. WORD TotalAvail;
  755. } XS_NET_SESSION_ENUM, *PXS_NET_SESSION_ENUM;
  756. typedef struct _XS_NET_SESSION_GET_INFO {
  757. LPSTR ClientName;
  758. WORD Level;
  759. LPBYTE Buffer;
  760. WORD BufLen;
  761. WORD TotalAvail;
  762. } XS_NET_SESSION_GET_INFO, *PXS_NET_SESSION_GET_INFO;
  763. //
  764. // Share APIs.
  765. //
  766. typedef struct _XS_NET_SHARE_ADD {
  767. WORD Level;
  768. LPBYTE Buffer;
  769. WORD BufLen;
  770. } XS_NET_SHARE_ADD, *PXS_NET_SHARE_ADD;
  771. typedef struct _XS_NET_SHARE_CHECK {
  772. LPSTR DeviceName;
  773. WORD Type;
  774. } XS_NET_SHARE_CHECK, *PXS_NET_SHARE_CHECK;
  775. typedef struct _XS_NET_SHARE_DEL {
  776. LPSTR NetName;
  777. WORD Reserved;
  778. } XS_NET_SHARE_DEL, *PXS_NET_SHARE_DEL;
  779. typedef struct _XS_NET_SHARE_ENUM {
  780. WORD Level;
  781. LPBYTE Buffer;
  782. WORD BufLen;
  783. WORD EntriesRead;
  784. WORD TotalAvail;
  785. } XS_NET_SHARE_ENUM, *PXS_NET_SHARE_ENUM;
  786. typedef struct _XS_NET_SHARE_GET_INFO {
  787. LPSTR NetName;
  788. WORD Level;
  789. LPBYTE Buffer;
  790. WORD BufLen;
  791. WORD TotalAvail;
  792. } XS_NET_SHARE_GET_INFO, *PXS_NET_SHARE_GET_INFO;
  793. typedef struct _XS_NET_SHARE_SET_INFO {
  794. LPSTR NetName;
  795. WORD Level;
  796. LPBYTE Buffer;
  797. WORD BufLen;
  798. WORD ParmNum;
  799. } XS_NET_SHARE_SET_INFO, *PXS_NET_SHARE_SET_INFO;
  800. //
  801. // Statistics APIs.
  802. //
  803. typedef struct _XS_NET_STATISTICS_GET_2 {
  804. LPSTR Service;
  805. DWORD Reserved;
  806. WORD Level;
  807. DWORD Options;
  808. LPBYTE Buffer;
  809. WORD BufLen;
  810. WORD TotalAvail;
  811. } XS_NET_STATISTICS_GET_2, *PXS_NET_STATISTICS_GET_2;
  812. //
  813. // Use APIs.
  814. //
  815. typedef struct _XS_NET_USE_ADD {
  816. WORD Level;
  817. LPBYTE Buffer;
  818. WORD BufLen;
  819. } XS_NET_USE_ADD, *PXS_NET_USE_ADD;
  820. typedef struct _XS_NET_USE_DEL {
  821. LPSTR UseName;
  822. WORD Force;
  823. } XS_NET_USE_DEL, *PXS_NET_USE_DEL;
  824. typedef struct _XS_NET_USE_ENUM {
  825. WORD Level;
  826. LPBYTE Buffer;
  827. WORD BufLen;
  828. WORD EntriesRead;
  829. WORD TotalAvail;
  830. } XS_NET_USE_ENUM, *PXS_NET_USE_ENUM;
  831. typedef struct _XS_NET_USE_GET_INFO {
  832. LPSTR UseName;
  833. WORD Level;
  834. LPBYTE Buffer;
  835. WORD BufLen;
  836. WORD TotalAvail;
  837. } XS_NET_USE_GET_INFO, *PXS_NET_USE_GET_INFO;
  838. //
  839. // User APIs.
  840. //
  841. typedef struct _XS_NET_USER_ADD_2 {
  842. WORD Level;
  843. LPBYTE Buffer;
  844. WORD BufLen;
  845. WORD DataEncryption;
  846. WORD PasswordLength;
  847. } XS_NET_USER_ADD_2, *PXS_NET_USER_ADD_2;
  848. typedef struct _XS_NET_USER_DEL {
  849. LPSTR UserName;
  850. } XS_NET_USER_DEL, *PXS_NET_USER_DEL;
  851. typedef struct _XS_NET_USER_ENUM {
  852. WORD Level;
  853. LPBYTE Buffer;
  854. WORD BufLen;
  855. WORD EntriesRead;
  856. WORD TotalAvail;
  857. } XS_NET_USER_ENUM, *PXS_NET_USER_ENUM;
  858. typedef struct _XS_NET_USER_ENUM_2 {
  859. WORD Level;
  860. LPBYTE Buffer;
  861. WORD BufLen;
  862. DWORD ResumeIn;
  863. DWORD ResumeOut;
  864. WORD EntriesRead;
  865. WORD TotalAvail;
  866. } XS_NET_USER_ENUM_2, *PXS_NET_USER_ENUM_2;
  867. typedef struct _XS_NET_USER_GET_INFO {
  868. LPSTR UserName;
  869. WORD Level;
  870. LPBYTE Buffer;
  871. WORD BufLen;
  872. WORD TotalAvail;
  873. } XS_NET_USER_GET_INFO, *PXS_NET_USER_GET_INFO;
  874. typedef struct _XS_NET_USER_SET_INFO {
  875. LPSTR UserName;
  876. WORD Level;
  877. LPBYTE Buffer;
  878. WORD BufLen;
  879. WORD ParmNum;
  880. WORD DataEncryption;
  881. } XS_NET_USER_SET_INFO, *PXS_NET_USER_SET_INFO;
  882. typedef struct _XS_NET_USER_SET_INFO_2 {
  883. LPSTR UserName;
  884. WORD Level;
  885. LPBYTE Buffer;
  886. WORD BufLen;
  887. WORD ParmNum;
  888. WORD DataEncryption;
  889. WORD PasswordLength;
  890. } XS_NET_USER_SET_INFO_2, *PXS_NET_USER_SET_INFO_2;
  891. typedef struct _XS_NET_USER_PASSWORD_SET_2 {
  892. LPSTR UserName;
  893. LPSTR OldPassword;
  894. LPSTR NewPassword;
  895. WORD DataEncryption;
  896. WORD PasswordLength;
  897. } XS_NET_USER_PASSWORD_SET_2, *PXS_NET_USER_PASSWORD_SET_2;
  898. typedef struct _XS_SAMOEMCHGPASSWORDUSER2_P {
  899. LPSTR UserName;
  900. LPBYTE Buffer;
  901. WORD BufLen;
  902. } XS_SAMOEMCHGPASSWORDUSER2_P, *PXS_SAMOEMCHGPASSWORDUSER2_P;
  903. typedef struct _XS_NET_USER_GET_GROUPS {
  904. LPSTR UserName;
  905. WORD Level;
  906. LPBYTE Buffer;
  907. WORD BufLen;
  908. WORD EntriesRead;
  909. WORD TotalAvail;
  910. } XS_NET_USER_GET_GROUPS, *PXS_NET_USER_GET_GROUPS;
  911. typedef struct _XS_NET_USER_SET_GROUPS {
  912. LPSTR UserName;
  913. WORD Level;
  914. LPBYTE Buffer;
  915. WORD BufLen;
  916. WORD Entries;
  917. } XS_NET_USER_SET_GROUPS, *PXS_NET_USER_SET_GROUPS;
  918. typedef struct _XS_NET_USER_MODALS_GET {
  919. WORD Level;
  920. LPBYTE Buffer;
  921. WORD BufLen;
  922. WORD TotalAvail;
  923. } XS_NET_USER_MODALS_GET, *PXS_NET_USER_MODALS_GET;
  924. typedef struct _XS_NET_USER_MODALS_SET {
  925. WORD Level;
  926. LPBYTE Buffer;
  927. WORD BufLen;
  928. WORD ParmNum;
  929. } XS_NET_USER_MODALS_SET, *PXS_NET_USER_MODALS_SET;
  930. typedef struct _XS_NET_USER_VALIDATE {
  931. LPSTR Reserved;
  932. LPSTR UserName;
  933. LPSTR Password;
  934. WORD Privilege;
  935. } XS_NET_USER_VALIDATE, *PXS_NET_USER_VALIDATE;
  936. typedef struct _XS_NET_USER_VALIDATE_2 {
  937. LPSTR Reserved1;
  938. WORD Level;
  939. LPBYTE Buffer;
  940. WORD BufLen;
  941. WORD Reserved2;
  942. WORD TotalAvail;
  943. } XS_NET_USER_VALIDATE_2, *PXS_NET_USER_VALIDATE_2;
  944. //
  945. // Workstation APIs.
  946. //
  947. typedef struct _XS_NET_WKSTA_GET_INFO {
  948. WORD Level;
  949. LPBYTE Buffer;
  950. WORD BufLen;
  951. WORD TotalAvail;
  952. } XS_NET_WKSTA_GET_INFO, *PXS_NET_WKSTA_GET_INFO;
  953. typedef struct _XS_NET_WKSTA_SET_INFO {
  954. WORD Level;
  955. LPBYTE Buffer;
  956. WORD BufLen;
  957. WORD ParmNum;
  958. } XS_NET_WKSTA_SET_INFO, *PXS_NET_WKSTA_SET_INFO;
  959. typedef struct _XS_NET_WKSTA_SET_UID {
  960. LPSTR UserName;
  961. LPSTR Password;
  962. LPSTR Parms;
  963. WORD LogOff;
  964. } XS_NET_WKSTA_SET_UID, *PXS_NET_WKSTA_SET_UID;
  965. typedef struct _XS_NET_WKSTA_SET_UID_2 {
  966. LPSTR Reserved;
  967. LPSTR Domain;
  968. LPSTR UserName;
  969. LPSTR Password;
  970. LPSTR Parms;
  971. WORD LogoffForce;
  972. WORD Level;
  973. LPBYTE Buffer;
  974. WORD BufLen;
  975. WORD TotalAvail;
  976. } XS_NET_WKSTA_SET_UID_2, *PXS_NET_WKSTA_SET_UID_2;
  977. typedef struct _XS_NET_WKSTA_USER_LOGON {
  978. LPSTR Reserved1;
  979. LPSTR Reserved2;
  980. WORD Level;
  981. LPBYTE InBuf;
  982. WORD InBufLen;
  983. LPBYTE OutBuf;
  984. WORD OutBufLen;
  985. WORD TotalAvail;
  986. } XS_NET_WKSTA_USER_LOGON, *PXS_NET_WKSTA_USER_LOGON;
  987. typedef struct _XS_NET_WKSTA_USER_LOGOFF {
  988. LPSTR Reserved1;
  989. LPSTR Reserved2;
  990. WORD Level;
  991. LPBYTE InBuf;
  992. WORD InBufLen;
  993. LPBYTE OutBuf;
  994. WORD OutBufLen;
  995. WORD TotalAvail;
  996. } XS_NET_WKSTA_USER_LOGOFF, *PXS_NET_WKSTA_USER_LOGOFF;
  997. #include <packoff.h>
  998. #endif // ndef _APIPARAMS_