home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / msinc.pak / LMCHDEV.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  6KB  |  289 lines

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