home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / RTLWIN32.PAK / LMCHDEV.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  5.4 KB  |  276 lines

  1. /*++ BUILD Version: 0001    // Increment this if a change has global effects
  2.  
  3. Copyright (c) 1991-1996  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     lmchdev.h
  8.  
  9. Abstract:
  10.  
  11.     This module defines the API function prototypes and data structures
  12.     for the following groups of NT API functions:
  13.         NetCharDev
  14.         NetCharDevQ
  15.         NetHandle
  16.  
  17. [Environment:]
  18.  
  19.     User Mode - Win32
  20.  
  21. [Notes:]
  22.  
  23.     You must include NETCONS.H before this file, since this file depends
  24.     on values defined in NETCONS.H.
  25.  
  26. --*/
  27.  
  28. /* $Copyright: 1994$ */
  29.  
  30. #ifndef _LMCHDEV_
  31. #define _LMCHDEV_
  32. #pragma option -b
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. //
  39. // CharDev Class
  40. //
  41.  
  42. //
  43. // Function Prototypes - CharDev
  44. //
  45.  
  46. NET_API_STATUS NET_API_FUNCTION
  47. NetCharDevEnum (
  48.     IN  LPCWSTR      servername,
  49.     IN  DWORD       level,
  50.     OUT LPBYTE      *bufptr,
  51.     IN  DWORD       prefmaxlen,
  52.     OUT LPDWORD     entriesread,
  53.     OUT LPDWORD     totalentries,
  54.     IN OUT LPDWORD  resume_handle
  55.     );
  56.  
  57. NET_API_STATUS NET_API_FUNCTION
  58. NetCharDevGetInfo (
  59.     IN  LPCWSTR  servername,
  60.     IN  LPCWSTR  devname,
  61.     IN  DWORD   level,
  62.     OUT LPBYTE  *bufptr
  63.     );
  64.  
  65. NET_API_STATUS NET_API_FUNCTION
  66. NetCharDevControl (
  67.     IN  LPCWSTR  servername,
  68.     IN  LPCWSTR  devname,
  69.     IN  DWORD   opcode
  70.     );
  71.  
  72. //
  73. // Data Structures - CharDev
  74. //
  75.  
  76. typedef struct _CHARDEV_INFO_0 {
  77.     LPWSTR  ch0_dev;
  78. } CHARDEV_INFO_0, *PCHARDEV_INFO_0, *LPCHARDEV_INFO_0;
  79.  
  80. typedef struct _CHARDEV_INFO_1 {
  81.     LPWSTR  ch1_dev;
  82.     DWORD   ch1_status;
  83.     LPWSTR  ch1_username;
  84.     DWORD   ch1_time;
  85. } CHARDEV_INFO_1, *PCHARDEV_INFO_1, *LPCHARDEV_INFO_1;
  86.  
  87.  
  88. //
  89. // CharDevQ Class
  90. //
  91.  
  92. //
  93. // Function Prototypes - CharDevQ
  94. //
  95.  
  96. NET_API_STATUS NET_API_FUNCTION
  97. NetCharDevQEnum (
  98.     IN  LPCWSTR      servername,
  99.     IN  LPCWSTR      username,
  100.     IN  DWORD       level,
  101.     OUT LPBYTE      *bufptr,
  102.     IN  DWORD       prefmaxlen,
  103.     OUT LPDWORD     entriesread,
  104.     OUT LPDWORD     totalentries,
  105.     IN OUT LPDWORD  resume_handle
  106.     );
  107.  
  108. NET_API_STATUS NET_API_FUNCTION
  109. NetCharDevQGetInfo (
  110.     IN  LPCWSTR  servername,
  111.     IN  LPCWSTR  queuename,
  112.     IN  LPCWSTR  username,
  113.     IN  DWORD   level,
  114.     OUT LPBYTE  *bufptr
  115.     );
  116.  
  117. NET_API_STATUS NET_API_FUNCTION
  118. NetCharDevQSetInfo (
  119.     IN  LPCWSTR  servername,
  120.     IN  LPCWSTR  queuename,
  121.     IN  DWORD   level,
  122.     IN  LPBYTE  buf,
  123.     OUT LPDWORD parm_err
  124.     );
  125.  
  126. NET_API_STATUS NET_API_FUNCTION
  127. NetCharDevQPurge (
  128.     IN  LPCWSTR  servername,
  129.     IN  LPCWSTR  queuename
  130.     );
  131.  
  132. NET_API_STATUS NET_API_FUNCTION
  133. NetCharDevQPurgeSelf (
  134.     IN  LPCWSTR  servername,
  135.     IN  LPCWSTR  queuename,
  136.     IN  LPCWSTR  computername
  137.     );
  138.  
  139. //
  140. // Data Structures - CharDevQ
  141. //
  142.  
  143. typedef struct _CHARDEVQ_INFO_0 {
  144.     LPWSTR  cq0_dev;
  145. } CHARDEVQ_INFO_0, *PCHARDEVQ_INFO_0, *LPCHARDEVQ_INFO_0;
  146.  
  147. typedef struct _CHARDEVQ_INFO_1 {
  148.     LPWSTR  cq1_dev;
  149.     DWORD   cq1_priority;
  150.     LPWSTR  cq1_devs;
  151.     DWORD   cq1_numusers;
  152.     DWORD   cq1_numahead;
  153. } CHARDEVQ_INFO_1, *PCHARDEVQ_INFO_1, *LPCHARDEVQ_INFO_1;
  154.  
  155. typedef struct _CHARDEVQ_INFO_1002 {
  156.     DWORD   cq1002_priority;
  157. } CHARDEVQ_INFO_1002, *PCHARDEVQ_INFO_1002, *LPCHARDEVQ_INFO_1002;
  158.  
  159. typedef struct _CHARDEVQ_INFO_1003 {
  160.     LPWSTR  cq1003_devs;
  161. } CHARDEVQ_INFO_1003, *PCHARDEVQ_INFO_1003, *LPCHARDEVQ_INFO_1003;
  162.  
  163.  
  164. //
  165. // Special Values and Constants
  166. //
  167.  
  168. //
  169. //      Bits for chardev_info_1 field ch1_status.
  170. //
  171.  
  172. #define CHARDEV_STAT_OPENED             0x02
  173. #define CHARDEV_STAT_ERROR              0x04
  174.  
  175. //
  176. //      Opcodes for NetCharDevControl
  177. //
  178.  
  179. #define CHARDEV_CLOSE                   0
  180.  
  181. //
  182. // Values for parm_err parameter.
  183. //
  184.  
  185. #define CHARDEVQ_DEV_PARMNUM        1
  186. #define CHARDEVQ_PRIORITY_PARMNUM   2
  187. #define CHARDEVQ_DEVS_PARMNUM       3
  188. #define CHARDEVQ_NUMUSERS_PARMNUM   4
  189. #define CHARDEVQ_NUMAHEAD_PARMNUM   5
  190.  
  191. //
  192. // Single-field infolevels for NetCharDevQSetInfo.
  193. //
  194.  
  195. #define CHARDEVQ_PRIORITY_INFOLEVEL     \
  196.             (PARMNUM_BASE_INFOLEVEL + CHARDEVQ_PRIORITY_PARMNUM)
  197. #define CHARDEVQ_DEVS_INFOLEVEL         \
  198.             (PARMNUM_BASE_INFOLEVEL + CHARDEVQ_DEVS_PARMNUM)
  199.  
  200. //
  201. //      Minimum, maximum, and recommended default for priority.
  202. //
  203.  
  204. #define CHARDEVQ_MAX_PRIORITY           1
  205. #define CHARDEVQ_MIN_PRIORITY           9
  206. #define CHARDEVQ_DEF_PRIORITY           5
  207.  
  208. //
  209. //      Value indicating no requests in the queue.
  210. //
  211.  
  212. #define CHARDEVQ_NO_REQUESTS            -1
  213.  
  214. #endif // _LMCHDEV_
  215.  
  216. //
  217. // Handle Class
  218. //
  219.  
  220. #ifndef _LMHANDLE_
  221. #define _LMHANDLE_
  222.  
  223. //
  224. // Function Prototypes
  225. //
  226.  
  227. NET_API_STATUS NET_API_FUNCTION
  228. NetHandleGetInfo (
  229.     IN  HANDLE  handle,
  230.     IN  DWORD   level,
  231.     OUT LPBYTE  *bufptr
  232.     );
  233.  
  234. NET_API_STATUS NET_API_FUNCTION
  235. NetHandleSetInfo (
  236.     IN  HANDLE  handle,
  237.     IN  DWORD   level,
  238.     IN  LPBYTE  buf,
  239.     IN  DWORD   parmnum,
  240.     OUT LPDWORD parmerr
  241.     );
  242.  
  243. //
  244. //  Data Structures
  245. //
  246.  
  247. typedef struct _HANDLE_INFO_1 {
  248.     DWORD   hdli1_chartime;
  249.     DWORD   hdli1_charcount;
  250. }HANDLE_INFO_1, *PHANDLE_INFO_1, *LPHANDLE_INFO_1;
  251.  
  252. //
  253. // Special Values and Constants
  254. //
  255.  
  256. //
  257. //      Handle Get Info Levels
  258. //
  259.  
  260. #define HANDLE_INFO_LEVEL_1                 1
  261.  
  262. //
  263. //      Handle Set Info parm numbers
  264. //
  265.  
  266. #define HANDLE_CHARTIME_PARMNUM     1
  267. #define HANDLE_CHARCOUNT_PARMNUM    2
  268.  
  269. #ifdef __cplusplus
  270. }
  271. #endif
  272.  
  273. #pragma option -b.
  274.  
  275. #endif // _LMHANDLE_
  276.