home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / lmchdev.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  5KB  |  271 lines

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