Hex Artifact Content

Not logged in

Artifact 9590df0ba50f0d839c2c63a40025b0b3e727616c:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20  ********\.*     
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 20 6c 6d 63 68 64 65            lmchde
0070: 76 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20  v.d             
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20    *.*           
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20              *.* 
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50        Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20  I header module 
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20        *.*       
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  *.*             
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66      Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77  rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20  s headers       
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20            *.*   
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20      *.*         
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c                Pl
0220: 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 63  aced into public
0230: 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 20   domain         
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a                *.
0250: 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  \***************
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 6d 6f 64 75 6c 65  ********/.module
02a0: 20 77 69 6e 33 32 2e 6c 6d 63 68 64 65 76 3b 0a   win32.lmchdev;.
02b0: 0a 2f 2f 20 43 4f 4d 4d 45 4e 54 3a 20 54 68 69  .// COMMENT: Thi
02c0: 73 20 66 69 6c 65 20 6d 69 67 68 74 20 62 65 20  s file might be 
02d0: 64 65 70 72 65 63 61 74 65 64 2e 0a 0a 70 72 69  deprecated...pri
02e0: 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33  vate import win3
02f0: 32 2e 6c 6d 63 6f 6e 73 2c 20 77 69 6e 33 32 2e  2.lmcons, win32.
0300: 77 69 6e 64 65 66 3b 0a 0a 63 6f 6e 73 74 20 43  windef;..const C
0310: 48 41 52 44 45 56 51 5f 4e 4f 5f 52 45 51 55 45  HARDEVQ_NO_REQUE
0320: 53 54 53 20 20 3d 20 2d 31 3b 0a 63 6f 6e 73 74  STS  = -1;.const
0330: 20 43 48 41 52 44 45 56 5f 43 4c 4f 53 45 20 20   CHARDEV_CLOSE  
0340: 20 20 20 20 20 20 20 3d 20 30 3b 0a 63 6f 6e 73         = 0;.cons
0350: 74 20 43 48 41 52 44 45 56 51 5f 4d 41 58 5f 50  t CHARDEVQ_MAX_P
0360: 52 49 4f 52 49 54 59 20 3d 20 31 3b 0a 63 6f 6e  RIORITY = 1;.con
0370: 73 74 20 43 48 41 52 44 45 56 51 5f 44 45 56 5f  st CHARDEVQ_DEV_
0380: 50 41 52 4d 4e 55 4d 20 20 3d 20 31 3b 0a 0a 63  PARMNUM  = 1;..c
0390: 6f 6e 73 74 20 48 41 4e 44 4c 45 5f 49 4e 46 4f  onst HANDLE_INFO
03a0: 5f 4c 45 56 45 4c 5f 31 20 3d 20 31 3b 0a 63 6f  _LEVEL_1 = 1;.co
03b0: 6e 73 74 20 48 41 4e 44 4c 45 5f 43 48 41 52 54  nst HANDLE_CHART
03c0: 49 4d 45 5f 50 41 52 4d 4e 55 4d 20 3d 20 31 3b  IME_PARMNUM = 1;
03d0: 0a 63 6f 6e 73 74 20 48 41 4e 44 4c 45 5f 43 48  .const HANDLE_CH
03e0: 41 52 43 4f 55 4e 54 5f 50 41 52 4d 4e 55 4d 20  ARCOUNT_PARMNUM 
03f0: 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 43 48 41 52  = 2;..const CHAR
0400: 44 45 56 5f 53 54 41 54 5f 4f 50 45 4e 45 44 20  DEV_STAT_OPENED 
0410: 3d 20 32 3b 0a 63 6f 6e 73 74 20 43 48 41 52 44  = 2;.const CHARD
0420: 45 56 51 5f 50 52 49 4f 52 49 54 59 5f 50 41 52  EVQ_PRIORITY_PAR
0430: 4d 4e 55 4d 20 3d 20 32 3b 0a 63 6f 6e 73 74 20  MNUM = 2;.const 
0440: 43 48 41 52 44 45 56 51 5f 44 45 56 53 5f 50 41  CHARDEVQ_DEVS_PA
0450: 52 4d 4e 55 4d 20 3d 20 33 3b 0a 63 6f 6e 73 74  RMNUM = 3;.const
0460: 20 43 48 41 52 44 45 56 5f 53 54 41 54 5f 45 52   CHARDEV_STAT_ER
0470: 52 4f 52 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 43  ROR = 4;.const C
0480: 48 41 52 44 45 56 51 5f 4e 55 4d 55 53 45 52 53  HARDEVQ_NUMUSERS
0490: 5f 50 41 52 4d 4e 55 4d 20 3d 20 34 3b 0a 63 6f  _PARMNUM = 4;.co
04a0: 6e 73 74 20 43 48 41 52 44 45 56 51 5f 4e 55 4d  nst CHARDEVQ_NUM
04b0: 41 48 45 41 44 5f 50 41 52 4d 4e 55 4d 20 3d 20  AHEAD_PARMNUM = 
04c0: 35 3b 0a 63 6f 6e 73 74 20 43 48 41 52 44 45 56  5;.const CHARDEV
04d0: 51 5f 44 45 46 5f 50 52 49 4f 52 49 54 59 20 3d  Q_DEF_PRIORITY =
04e0: 20 35 3b 0a 63 6f 6e 73 74 20 43 48 41 52 44 45   5;.const CHARDE
04f0: 56 51 5f 50 52 49 4f 52 49 54 59 5f 49 4e 46 4f  VQ_PRIORITY_INFO
0500: 4c 45 56 45 4c 20 3d 20 50 41 52 4d 4e 55 4d 5f  LEVEL = PARMNUM_
0510: 42 41 53 45 5f 49 4e 46 4f 4c 45 56 45 4c 2b 43  BASE_INFOLEVEL+C
0520: 48 41 52 44 45 56 51 5f 50 52 49 4f 52 49 54 59  HARDEVQ_PRIORITY
0530: 5f 50 41 52 4d 4e 55 4d 3b 0a 63 6f 6e 73 74 20  _PARMNUM;.const 
0540: 43 48 41 52 44 45 56 51 5f 44 45 56 53 5f 49 4e  CHARDEVQ_DEVS_IN
0550: 46 4f 4c 45 56 45 4c 20 3d 20 50 41 52 4d 4e 55  FOLEVEL = PARMNU
0560: 4d 5f 42 41 53 45 5f 49 4e 46 4f 4c 45 56 45 4c  M_BASE_INFOLEVEL
0570: 2b 43 48 41 52 44 45 56 51 5f 44 45 56 53 5f 50  +CHARDEVQ_DEVS_P
0580: 41 52 4d 4e 55 4d 3b 0a 63 6f 6e 73 74 20 43 48  ARMNUM;.const CH
0590: 41 52 44 45 56 51 5f 4d 49 4e 5f 50 52 49 4f 52  ARDEVQ_MIN_PRIOR
05a0: 49 54 59 20 3d 20 39 3b 0a 0a 73 74 72 75 63 74  ITY = 9;..struct
05b0: 20 43 48 41 52 44 45 56 5f 49 4e 46 4f 5f 30 20   CHARDEV_INFO_0 
05c0: 7b 0a 20 4c 50 57 53 54 52 20 63 68 30 5f 64 65  {. LPWSTR ch0_de
05d0: 76 3b 0a 7d 0a 61 6c 69 61 73 20 43 48 41 52 44  v;.}.alias CHARD
05e0: 45 56 5f 49 4e 46 4f 5f 30 2a 20 50 43 48 41 52  EV_INFO_0* PCHAR
05f0: 44 45 56 5f 49 4e 46 4f 5f 30 2c 20 4c 50 43 48  DEV_INFO_0, LPCH
0600: 41 52 44 45 56 5f 49 4e 46 4f 5f 30 3b 0a 0a 73  ARDEV_INFO_0;..s
0610: 74 72 75 63 74 20 43 48 41 52 44 45 56 5f 49 4e  truct CHARDEV_IN
0620: 46 4f 5f 31 7b 0a 09 4c 50 57 53 54 52 20 63 68  FO_1{..LPWSTR ch
0630: 31 5f 64 65 76 3b 0a 09 44 57 4f 52 44 20 63 68  1_dev;..DWORD ch
0640: 31 5f 73 74 61 74 75 73 3b 0a 09 4c 50 57 53 54  1_status;..LPWST
0650: 52 20 63 68 31 5f 75 73 65 72 6e 61 6d 65 3b 0a  R ch1_username;.
0660: 09 44 57 4f 52 44 20 63 68 31 5f 74 69 6d 65 3b  .DWORD ch1_time;
0670: 0a 7d 0a 61 6c 69 61 73 20 43 48 41 52 44 45 56  .}.alias CHARDEV
0680: 5f 49 4e 46 4f 5f 31 2a 20 50 43 48 41 52 44 45  _INFO_1* PCHARDE
0690: 56 5f 49 4e 46 4f 5f 31 2c 20 4c 50 43 48 41 52  V_INFO_1, LPCHAR
06a0: 44 45 56 5f 49 4e 46 4f 5f 31 3b 0a 0a 73 74 72  DEV_INFO_1;..str
06b0: 75 63 74 20 43 48 41 52 44 45 56 51 5f 49 4e 46  uct CHARDEVQ_INF
06c0: 4f 5f 30 20 7b 0a 20 4c 50 57 53 54 52 20 63 71  O_0 {. LPWSTR cq
06d0: 30 5f 64 65 76 3b 0a 7d 0a 61 6c 69 61 73 20 43  0_dev;.}.alias C
06e0: 48 41 52 44 45 56 51 5f 49 4e 46 4f 5f 30 2a 20  HARDEVQ_INFO_0* 
06f0: 50 43 48 41 52 44 45 56 51 5f 49 4e 46 4f 5f 30  PCHARDEVQ_INFO_0
0700: 2c 20 4c 50 43 48 41 52 44 45 56 51 5f 49 4e 46  , LPCHARDEVQ_INF
0710: 4f 5f 30 3b 0a 0a 73 74 72 75 63 74 20 43 48 41  O_0;..struct CHA
0720: 52 44 45 56 51 5f 49 4e 46 4f 5f 31 7b 0a 09 4c  RDEVQ_INFO_1{..L
0730: 50 57 53 54 52 20 63 71 31 5f 64 65 76 3b 0a 09  PWSTR cq1_dev;..
0740: 44 57 4f 52 44 20 63 71 31 5f 70 72 69 6f 72 69  DWORD cq1_priori
0750: 74 79 3b 0a 09 4c 50 57 53 54 52 20 63 71 31 5f  ty;..LPWSTR cq1_
0760: 64 65 76 73 3b 0a 09 44 57 4f 52 44 20 63 71 31  devs;..DWORD cq1
0770: 5f 6e 75 6d 75 73 65 72 73 3b 0a 09 44 57 4f 52  _numusers;..DWOR
0780: 44 20 63 71 31 5f 6e 75 6d 61 68 65 61 64 3b 0a  D cq1_numahead;.
0790: 7d 0a 61 6c 69 61 73 20 43 48 41 52 44 45 56 51  }.alias CHARDEVQ
07a0: 5f 49 4e 46 4f 5f 31 2a 20 50 43 48 41 52 44 45  _INFO_1* PCHARDE
07b0: 56 51 5f 49 4e 46 4f 5f 31 2c 20 4c 50 43 48 41  VQ_INFO_1, LPCHA
07c0: 52 44 45 56 51 5f 49 4e 46 4f 5f 31 3b 0a 0a 73  RDEVQ_INFO_1;..s
07d0: 74 72 75 63 74 20 43 48 41 52 44 45 56 51 5f 49  truct CHARDEVQ_I
07e0: 4e 46 4f 5f 31 30 30 32 20 7b 0a 09 44 57 4f 52  NFO_1002 {..DWOR
07f0: 44 20 63 71 31 30 30 32 5f 70 72 69 6f 72 69 74  D cq1002_priorit
0800: 79 3b 0a 7d 0a 61 6c 69 61 73 20 43 48 41 52 44  y;.}.alias CHARD
0810: 45 56 51 5f 49 4e 46 4f 5f 31 30 30 32 2a 20 50  EVQ_INFO_1002* P
0820: 43 48 41 52 44 45 56 51 5f 49 4e 46 4f 5f 31 30  CHARDEVQ_INFO_10
0830: 30 32 2c 20 4c 50 43 48 41 52 44 45 56 51 5f 49  02, LPCHARDEVQ_I
0840: 4e 46 4f 5f 31 30 30 32 3b 0a 0a 73 74 72 75 63  NFO_1002;..struc
0850: 74 20 43 48 41 52 44 45 56 51 5f 49 4e 46 4f 5f  t CHARDEVQ_INFO_
0860: 31 30 30 33 20 7b 0a 09 4c 50 57 53 54 52 20 63  1003 {..LPWSTR c
0870: 71 31 30 30 33 5f 64 65 76 73 3b 0a 7d 0a 61 6c  q1003_devs;.}.al
0880: 69 61 73 20 43 48 41 52 44 45 56 51 5f 49 4e 46  ias CHARDEVQ_INF
0890: 4f 5f 31 30 30 33 2a 20 50 43 48 41 52 44 45 56  O_1003* PCHARDEV
08a0: 51 5f 49 4e 46 4f 5f 31 30 30 33 2c 20 4c 50 43  Q_INFO_1003, LPC
08b0: 48 41 52 44 45 56 51 5f 49 4e 46 4f 5f 31 30 30  HARDEVQ_INFO_100
08c0: 33 3b 0a 0a 73 74 72 75 63 74 20 48 41 4e 44 4c  3;..struct HANDL
08d0: 45 5f 49 4e 46 4f 5f 31 7b 0a 09 44 57 4f 52 44  E_INFO_1{..DWORD
08e0: 20 68 64 6c 69 31 5f 63 68 61 72 74 69 6d 65 3b   hdli1_chartime;
08f0: 0a 09 44 57 4f 52 44 20 68 64 6c 69 31 5f 63 68  ..DWORD hdli1_ch
0900: 61 72 63 6f 75 6e 74 3b 0a 7d 0a 61 6c 69 61 73  arcount;.}.alias
0910: 20 48 41 4e 44 4c 45 5f 49 4e 46 4f 5f 31 2a 20   HANDLE_INFO_1* 
0920: 50 48 41 4e 44 4c 45 5f 49 4e 46 4f 5f 31 2c 20  PHANDLE_INFO_1, 
0930: 4c 50 48 41 4e 44 4c 45 5f 49 4e 46 4f 5f 31 3b  LPHANDLE_INFO_1;
0940: 0a 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77  ..extern (Window
0950: 73 29 20 7b 0a 09 4e 45 54 5f 41 50 49 5f 53 54  s) {..NET_API_ST
0960: 41 54 55 53 20 4e 65 74 43 68 61 72 44 65 76 45  ATUS NetCharDevE
0970: 6e 75 6d 28 4c 50 43 57 53 54 52 2c 20 44 57 4f  num(LPCWSTR, DWO
0980: 52 44 2c 20 50 42 59 54 45 2a 2c 20 44 57 4f 52  RD, PBYTE*, DWOR
0990: 44 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52  D, PDWORD, PDWOR
09a0: 44 2c 20 50 44 57 4f 52 44 29 3b 0a 09 4e 45 54  D, PDWORD);..NET
09b0: 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 43  _API_STATUS NetC
09c0: 68 61 72 44 65 76 47 65 74 49 6e 66 6f 28 4c 50  harDevGetInfo(LP
09d0: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20  CWSTR, LPCWSTR, 
09e0: 44 57 4f 52 44 2c 20 50 42 59 54 45 2a 29 3b 0a  DWORD, PBYTE*);.
09f0: 09 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 53 20  .NET_API_STATUS 
0a00: 4e 65 74 43 68 61 72 44 65 76 43 6f 6e 74 72 6f  NetCharDevContro
0a10: 6c 28 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53  l(LPCWSTR, LPCWS
0a20: 54 52 2c 20 44 57 4f 52 44 29 3b 0a 09 4e 45 54  TR, DWORD);..NET
0a30: 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 43  _API_STATUS NetC
0a40: 68 61 72 44 65 76 51 45 6e 75 6d 28 4c 50 43 57  harDevQEnum(LPCW
0a50: 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 44 57  STR, LPCWSTR, DW
0a60: 4f 52 44 2c 20 50 42 59 54 45 2a 2c 20 44 57 4f  ORD, PBYTE*, DWO
0a70: 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f  RD, PDWORD, PDWO
0a80: 52 44 2c 20 50 44 57 4f 52 44 29 3b 0a 09 4e 45  RD, PDWORD);..NE
0a90: 54 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74  T_API_STATUS Net
0aa0: 43 68 61 72 44 65 76 51 47 65 74 49 6e 66 6f 28  CharDevQGetInfo(
0ab0: 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52  LPCWSTR, LPCWSTR
0ac0: 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44  , LPCWSTR, DWORD
0ad0: 2c 20 50 42 59 54 45 2a 29 3b 0a 09 4e 45 54 5f  , PBYTE*);..NET_
0ae0: 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 43 68  API_STATUS NetCh
0af0: 61 72 44 65 76 51 53 65 74 49 6e 66 6f 28 4c 50  arDevQSetInfo(LP
0b00: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20  CWSTR, LPCWSTR, 
0b10: 44 57 4f 52 44 2c 20 50 42 59 54 45 2c 20 50 44  DWORD, PBYTE, PD
0b20: 57 4f 52 44 29 3b 0a 09 4e 45 54 5f 41 50 49 5f  WORD);..NET_API_
0b30: 53 54 41 54 55 53 20 4e 65 74 43 68 61 72 44 65  STATUS NetCharDe
0b40: 76 51 50 75 72 67 65 28 4c 50 43 57 53 54 52 2c  vQPurge(LPCWSTR,
0b50: 20 4c 50 43 57 53 54 52 29 3b 0a 09 4e 45 54 5f   LPCWSTR);..NET_
0b60: 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 43 68  API_STATUS NetCh
0b70: 61 72 44 65 76 51 50 75 72 67 65 53 65 6c 66 28  arDevQPurgeSelf(
0b80: 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52  LPCWSTR, LPCWSTR
0b90: 2c 20 4c 50 43 57 53 54 52 29 3b 0a 09 4e 45 54  , LPCWSTR);..NET
0ba0: 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 48  _API_STATUS NetH
0bb0: 61 6e 64 6c 65 47 65 74 49 6e 66 6f 28 48 41 4e  andleGetInfo(HAN
0bc0: 44 4c 45 2c 20 44 57 4f 52 44 2c 20 50 42 59 54  DLE, DWORD, PBYT
0bd0: 45 2a 29 3b 0a 09 4e 45 54 5f 41 50 49 5f 53 54  E*);..NET_API_ST
0be0: 41 54 55 53 20 4e 65 74 48 61 6e 64 6c 65 53 65  ATUS NetHandleSe
0bf0: 74 49 6e 66 6f 28 48 41 4e 44 4c 45 2c 20 44 57  tInfo(HANDLE, DW
0c00: 4f 52 44 2c 20 50 42 59 54 45 2c 20 44 57 4f 52  ORD, PBYTE, DWOR
0c10: 44 2c 20 50 44 57 4f 52 44 29 3b 0a 7d 0a        D, PDWORD);.}.