home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / LMCHDEV.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  5.4 KB  |  273 lines

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