Artifact 7c196a667f07ade130c2b806c55805d2e17fb672:
- File
src/win32/mgmtapi.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
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 0d 0a 2a 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 20 20 6d 67 6d 74 mgmt 0070: 61 70 69 2e 64 20 20 20 20 20 20 20 20 20 20 20 api.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 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 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 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: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 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 62 79 by 01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20 Stewart Gordon 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 *..* 0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c Placed into publ 0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 ic domain 0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a *..\************ 02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f ***********/..mo 02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 6d 67 6d 74 61 dule win32.mgmta 0300: 70 69 3b 0d 0a 0d 0a 69 6d 70 6f 72 74 20 77 69 pi;....import wi 0310: 6e 33 32 2e 73 6e 6d 70 3b 0d 0a 70 72 69 76 61 n32.snmp;..priva 0320: 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e te import win32. 0330: 77 69 6e 64 65 66 3b 0d 0a 0d 0a 65 6e 75 6d 20 windef;....enum 0340: 7b 0d 0a 09 53 4e 4d 50 5f 4d 47 4d 54 41 50 49 {...SNMP_MGMTAPI 0350: 5f 54 49 4d 45 4f 55 54 20 3d 20 34 30 2c 0d 0a _TIMEOUT = 40,.. 0360: 09 53 4e 4d 50 5f 4d 47 4d 54 41 50 49 5f 53 45 .SNMP_MGMTAPI_SE 0370: 4c 45 43 54 5f 46 44 45 52 52 4f 52 53 2c 0d 0a LECT_FDERRORS,.. 0380: 09 53 4e 4d 50 5f 4d 47 4d 54 41 50 49 5f 54 52 .SNMP_MGMTAPI_TR 0390: 41 50 5f 45 52 52 4f 52 53 2c 0d 0a 09 53 4e 4d AP_ERRORS,...SNM 03a0: 50 5f 4d 47 4d 54 41 50 49 5f 54 52 41 50 5f 44 P_MGMTAPI_TRAP_D 03b0: 55 50 49 4e 49 54 2c 0d 0a 09 53 4e 4d 50 5f 4d UPINIT,...SNMP_M 03c0: 47 4d 54 41 50 49 5f 4e 4f 54 52 41 50 53 2c 0d GMTAPI_NOTRAPS,. 03d0: 0a 09 53 4e 4d 50 5f 4d 47 4d 54 41 50 49 5f 41 ..SNMP_MGMTAPI_A 03e0: 47 41 49 4e 2c 0d 0a 09 53 4e 4d 50 5f 4d 47 4d GAIN,...SNMP_MGM 03f0: 54 41 50 49 5f 49 4e 56 41 4c 49 44 5f 43 54 4c TAPI_INVALID_CTL 0400: 2c 0d 0a 09 53 4e 4d 50 5f 4d 47 4d 54 41 50 49 ,...SNMP_MGMTAPI 0410: 5f 49 4e 56 41 4c 49 44 5f 53 45 53 53 49 4f 4e _INVALID_SESSION 0420: 2c 0d 0a 09 53 4e 4d 50 5f 4d 47 4d 54 41 50 49 ,...SNMP_MGMTAPI 0430: 5f 49 4e 56 41 4c 49 44 5f 42 55 46 46 45 52 20 _INVALID_BUFFER 0440: 2f 2f 20 3d 20 34 38 0d 0a 7d 0d 0a 0d 0a 63 6f // = 48..}....co 0450: 6e 73 74 20 4d 47 4d 43 54 4c 5f 53 45 54 41 47 nst MGMCTL_SETAG 0460: 45 4e 54 50 4f 52 54 20 3d 20 31 3b 0d 0a 0d 0a ENTPORT = 1;.... 0470: 61 6c 69 61 73 20 50 56 4f 49 44 20 4c 50 53 4e alias PVOID LPSN 0480: 4d 50 5f 4d 47 52 5f 53 45 53 53 49 4f 4e 3b 0d MP_MGR_SESSION;. 0490: 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f ...extern (Windo 04a0: 77 73 29 20 7b 0d 0a 09 42 4f 4f 4c 20 53 6e 6d ws) {...BOOL Snm 04b0: 70 4d 67 72 43 6c 6f 73 65 28 4c 50 53 4e 4d 50 pMgrClose(LPSNMP 04c0: 5f 4d 47 52 5f 53 45 53 53 49 4f 4e 29 3b 0d 0a _MGR_SESSION);.. 04d0: 09 42 4f 4f 4c 20 53 6e 6d 70 4d 67 72 43 74 6c .BOOL SnmpMgrCtl 04e0: 28 4c 50 53 4e 4d 50 5f 4d 47 52 5f 53 45 53 53 (LPSNMP_MGR_SESS 04f0: 49 4f 4e 2c 20 44 57 4f 52 44 2c 20 4c 50 56 4f ION, DWORD, LPVO 0500: 49 44 2c 20 44 57 4f 52 44 2c 20 4c 50 56 4f 49 ID, DWORD, LPVOI 0510: 44 2c 20 44 57 4f 52 44 2c 0d 0a 09 20 20 4c 50 D, DWORD,... LP 0520: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 DWORD);...BOOL S 0530: 6e 6d 70 4d 67 72 47 65 74 54 72 61 70 28 41 73 nmpMgrGetTrap(As 0540: 6e 4f 62 6a 65 63 74 49 64 65 6e 74 69 66 69 65 nObjectIdentifie 0550: 72 2a 2c 20 41 73 6e 4e 65 74 77 6f 72 6b 41 64 r*, AsnNetworkAd 0560: 64 72 65 73 73 2a 2c 0d 0a 09 20 20 41 73 6e 49 dress*,... AsnI 0570: 6e 74 65 67 65 72 2a 2c 20 41 73 6e 49 6e 74 65 nteger*, AsnInte 0580: 67 65 72 2a 2c 20 41 73 6e 54 69 6d 65 74 69 63 ger*, AsnTimetic 0590: 6b 73 2a 2c 20 53 6e 6d 70 56 61 72 42 69 6e 64 ks*, SnmpVarBind 05a0: 4c 69 73 74 2a 29 3b 0d 0a 09 42 4f 4f 4c 20 53 List*);...BOOL S 05b0: 6e 6d 70 4d 67 72 47 65 74 54 72 61 70 45 78 28 nmpMgrGetTrapEx( 05c0: 41 73 6e 4f 62 6a 65 63 74 49 64 65 6e 74 69 66 AsnObjectIdentif 05d0: 69 65 72 2a 2c 20 41 73 6e 4e 65 74 77 6f 72 6b ier*, AsnNetwork 05e0: 41 64 64 72 65 73 73 2a 2c 0d 0a 09 20 20 41 73 Address*,... As 05f0: 6e 4e 65 74 77 6f 72 6b 41 64 64 72 65 73 73 2a nNetworkAddress* 0600: 2c 20 41 73 6e 49 6e 74 65 67 65 72 2a 2c 20 41 , AsnInteger*, A 0610: 73 6e 49 6e 74 65 67 65 72 2a 2c 20 41 73 6e 4f snInteger*, AsnO 0620: 63 74 65 74 53 74 72 69 6e 67 2a 2c 0d 0a 09 20 ctetString*,... 0630: 20 41 73 6e 54 69 6d 65 74 69 63 6b 73 2a 2c 20 AsnTimeticks*, 0640: 53 6e 6d 70 56 61 72 42 69 6e 64 4c 69 73 74 2a SnmpVarBindList* 0650: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 6e 6d 70 4d 67 );...BOOL SnmpMg 0660: 72 4f 69 64 54 6f 53 74 72 28 41 73 6e 4f 62 6a rOidToStr(AsnObj 0670: 65 63 74 49 64 65 6e 74 69 66 69 65 72 2a 2c 20 ectIdentifier*, 0680: 4c 50 53 54 52 2a 29 3b 0d 0a 09 4c 50 53 4e 4d LPSTR*);...LPSNM 0690: 50 5f 4d 47 52 5f 53 45 53 53 49 4f 4e 20 53 6e P_MGR_SESSION Sn 06a0: 6d 70 4d 67 72 4f 70 65 6e 28 4c 50 53 54 52 2c mpMgrOpen(LPSTR, 06b0: 20 4c 50 53 54 52 2c 20 49 4e 54 2c 20 49 4e 54 LPSTR, INT, INT 06c0: 29 3b 0d 0a 09 49 4e 54 20 53 6e 6d 70 4d 67 72 );...INT SnmpMgr 06d0: 52 65 71 75 65 73 74 28 4c 50 53 4e 4d 50 5f 4d Request(LPSNMP_M 06e0: 47 52 5f 53 45 53 53 49 4f 4e 2c 20 42 59 54 45 GR_SESSION, BYTE 06f0: 2c 20 53 6e 6d 70 56 61 72 42 69 6e 64 4c 69 73 , SnmpVarBindLis 0700: 74 2a 2c 0d 0a 09 20 20 41 73 6e 49 6e 74 65 67 t*,... AsnInteg 0710: 65 72 2a 2c 20 41 73 6e 49 6e 74 65 67 65 72 2a er*, AsnInteger* 0720: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 6e 6d 70 4d 67 );...BOOL SnmpMg 0730: 72 53 74 72 54 6f 4f 69 64 28 4c 50 53 54 52 2c rStrToOid(LPSTR, 0740: 20 41 73 6e 4f 62 6a 65 63 74 49 64 65 6e 74 69 AsnObjectIdenti 0750: 66 69 65 72 2a 29 3b 0d 0a 09 42 4f 4f 4c 20 53 fier*);...BOOL S 0760: 6e 6d 70 4d 67 72 54 72 61 70 4c 69 73 74 65 6e nmpMgrTrapListen 0770: 28 48 41 4e 44 4c 45 2a 29 3b 0d 0a 7d 0d 0a (HANDLE*);..}..