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);.}.