Implemented object caching on client side
[public/netxms.git] / include / nxclapi.h
CommitLineData
80ffed5a
VK
1/*
2** NetXMS - Network Management System
3** Client Library API
1c8b8363 4** Copyright (C) 2004, 2005 Victor Kirhenshtein
80ffed5a
VK
5**
6** This program is free software; you can redistribute it and/or modify
7** it under the terms of the GNU General Public License as published by
8** the Free Software Foundation; either version 2 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU General Public License
17** along with this program; if not, write to the Free Software
18** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19**
20** $module: nxclapi.h
21**
22**/
23
24#ifndef _nxclapi_h_
25#define _nxclapi_h_
26
27#include <nms_common.h>
e641b7d0 28#include <nms_util.h>
5ebea5e0 29#include <nxevent.h>
03ea8b3d 30#include <nximage.h>
8c290af0 31#include <nxcscpapi.h>
80ffed5a 32
8aeffdee
VK
33#ifdef _WIN32
34#ifdef LIBNXCL_EXPORTS
35#define LIBNXCL_EXPORTABLE __declspec(dllexport)
36#else
37#define LIBNXCL_EXPORTABLE __declspec(dllimport)
38#endif
39#else /* _WIN32 */
40#define LIBNXCL_EXPORTABLE
41#endif
42
80ffed5a 43
41213c24
VK
44//
45// Session handle type
46//
47
48typedef void * NXC_SESSION;
49
50
0c8bf759
VK
51//
52// Some constants
53//
54
878c92bc
VK
55#define MAX_OBJECT_NAME 64
56#define MAX_COMMUNITY_LENGTH 32
57#define MAX_OID_LENGTH 1024
58#define MAX_EVENT_MSG_LENGTH 256
59#define MAX_EVENT_NAME 64
5ac3236b 60#define MAX_USER_NAME 64
54abbe0e
VK
61#define MAX_USER_FULLNAME 128
62#define MAX_USER_DESCR 256
7ec6cca8
VK
63#define MAX_ITEM_NAME 256
64#define MAX_STRING_VALUE 256
d096bcdd 65#define MAX_AGENT_VERSION_LEN 64
1c8b8363 66#define MAX_PLATFORM_NAME_LEN 64
257defd7 67#define MAX_PACKAGE_NAME_LEN 64
8c18110a
VK
68#define GROUP_FLAG ((DWORD)0x80000000)
69#define GROUP_EVERYONE ((DWORD)0x80000000)
70#define INVALID_UID ((DWORD)0xFFFFFFFF)
aa3743b2 71#define OBJECT_STATUS_COUNT 9
4ae6b70e
VK
72#define MAX_RCPT_ADDR_LEN 256
73#define MAX_EMAIL_SUBJECT_LEN 256
b50f1100 74#define MAC_ADDR_LENGTH 6
aa3743b2
VK
75
76
77//
78// Image formats
79//
80
81#define IMAGE_FORMAT_ICO 0
82#define IMAGE_FORMAT_PNG 1
0c8bf759
VK
83
84
71c18491
VK
85//
86// Authentication methods
87//
88
4de204a3
VK
89#define AUTH_NONE 0
90#define AUTH_PLAINTEXT 1
91#define AUTH_MD5_HASH 2
92#define AUTH_SHA1_HASH 3
71c18491
VK
93
94
0b89f5fb
VK
95//
96// Forced poll types
97//
98
99#define POLL_STATUS 1
100#define POLL_CONFIGURATION 2
101
102
71c18491
VK
103//
104// Object types
105//
106
4de204a3
VK
107#define OBJECT_GENERIC 0
108#define OBJECT_SUBNET 1
109#define OBJECT_NODE 2
110#define OBJECT_INTERFACE 3
111#define OBJECT_NETWORK 4
112#define OBJECT_CONTAINER 5
113#define OBJECT_ZONE 6
114#define OBJECT_SERVICEROOT 7
b50f1100 115#define OBJECT_TEMPLATE 8
62d11997
VK
116#define OBJECT_TEMPLATEGROUP 9
117#define OBJECT_TEMPLATEROOT 10
bebf4833 118#define OBJECT_NETWORKSERVICE 11
71c18491
VK
119
120
9eb7685c
VK
121//
122// Object's status
123//
124
4de204a3
VK
125#define STATUS_NORMAL 0
126#define STATUS_WARNING 1
127#define STATUS_MINOR 2
128#define STATUS_MAJOR 3
129#define STATUS_CRITICAL 4
130#define STATUS_UNKNOWN 5
131#define STATUS_UNMANAGED 6
132#define STATUS_DISABLED 7
133#define STATUS_TESTING 8
134
135
136//
137// Event and alarm severity
138//
139
140#define SEVERITY_NORMAL 0
141#define SEVERITY_WARNING 1
142#define SEVERITY_MINOR 2
143#define SEVERITY_MAJOR 3
144#define SEVERITY_CRITICAL 4
145#define SEVERITY_FROM_EVENT 5
146#define SEVERITY_NONE 6
9eb7685c
VK
147
148
4d597931
VK
149//
150// Node flags
151//
152
153#define NF_IS_SNMP 0x0001
154#define NF_IS_NATIVE_AGENT 0x0002
155#define NF_IS_BRIDGE 0x0004
156#define NF_IS_ROUTER 0x0008
157#define NF_IS_LOCAL_MGMT 0x0010
a7d07192 158#define NF_IS_PRINTER 0x0020
0ff9b273 159#define NF_IS_OSPF 0x0040
251659b6 160#define NF_BEHIND_NAT 0x0080
4d597931
VK
161
162
bebf4833
VK
163//
164// Service types
165//
166
167#define NETSRV_CUSTOM 0
168#define NETSRV_SSH 1
169#define NETSRV_POP3 2
170#define NETSRV_SMTP 3
171#define NETSRV_FTP 4
172#define NETSRV_HTTP 5
173
174
5fad5c32
VK
175//
176// Events
177//
178
41213c24
VK
179#define NXC_EVENT_ERROR 1
180#define NXC_EVENT_NEW_ELOG_RECORD 2
181#define NXC_EVENT_USER_DB_CHANGED 3
182#define NXC_EVENT_OBJECT_CHANGED 4
183#define NXC_EVENT_NOTIFICATION 5
e4cfb9f3 184#define NXC_EVENT_DEPLOYMENT_STATUS 6
71f8d3d7
VK
185
186
187//
188// Errors
189//
190
191#define NXC_ERR_INTERNAL 1
5fad5c32
VK
192
193
54481027 194//
39d7a7ed 195// States (used both by client library and server)
54481027
VK
196//
197
198#define STATE_DISCONNECTED 0
199#define STATE_CONNECTING 1
39d7a7ed
VK
200#define STATE_CONNECTED 2
201#define STATE_AUTHENTICATED 3
7e986059
VK
202
203
b601b1fa
VK
204//
205// Notification codes
206//
207
3421c063
VK
208#define NX_NOTIFY_SHUTDOWN 1
209#define NX_NOTIFY_EVENTDB_CHANGED 2
4de204a3
VK
210#define NX_NOTIFY_ALARM_DELETED 3
211#define NX_NOTIFY_NEW_ALARM 4
eb484131 212#define NX_NOTIFY_ALARM_ACKNOWLEGED 5
c9363772
VK
213#define NX_NOTIFY_ACTION_CREATED 6
214#define NX_NOTIFY_ACTION_MODIFIED 7
215#define NX_NOTIFY_ACTION_DELETED 8
878c92bc
VK
216
217
218//
219// Request completion codes
220//
221
222#define RCC_SUCCESS ((DWORD)0)
223#define RCC_COMPONENT_LOCKED ((DWORD)1)
224#define RCC_ACCESS_DENIED ((DWORD)2)
225#define RCC_INVALID_REQUEST ((DWORD)3)
226#define RCC_TIMEOUT ((DWORD)4)
605d2931
VK
227#define RCC_OUT_OF_STATE_REQUEST ((DWORD)5)
228#define RCC_DB_FAILURE ((DWORD)6)
effb51ab 229#define RCC_INVALID_OBJECT_ID ((DWORD)7)
34d95c13 230#define RCC_ALREADY_EXIST ((DWORD)8)
2e29457d 231#define RCC_COMM_FAILURE ((DWORD)9)
0d9c1b96 232#define RCC_SYSTEM_FAILURE ((DWORD)10)
62f3f072 233#define RCC_INVALID_USER_ID ((DWORD)11)
7ec6cca8 234#define RCC_INVALID_ARGUMENT ((DWORD)12)
9ed4eaff
VK
235#define RCC_DUPLICATE_DCI ((DWORD)13)
236#define RCC_INVALID_DCI_ID ((DWORD)14)
a7d07192
VK
237#define RCC_OUT_OF_MEMORY ((DWORD)15)
238#define RCC_IO_ERROR ((DWORD)16)
e6b958c4 239#define RCC_INCOMPATIBLE_OPERATION ((DWORD)17)
917aa2e6
VK
240#define RCC_OBJECT_CREATION_FAILED ((DWORD)18)
241#define RCC_OBJECT_LOOP ((DWORD)19)
8f7e2482 242#define RCC_INVALID_OBJECT_NAME ((DWORD)20)
9e41df77 243#define RCC_INVALID_ALARM_ID ((DWORD)21)
15b8d488 244#define RCC_INVALID_ACTION_ID ((DWORD)22)
0b89f5fb 245#define RCC_OPERATION_IN_PROGRESS ((DWORD)23)
933aee5c 246#define RCC_DCI_COPY_ERRORS ((DWORD)24)
b562fca8 247#define RCC_INVALID_EVENT_CODE ((DWORD)25)
ed1140dc
VK
248#define RCC_NO_WOL_INTERFACES ((DWORD)26)
249#define RCC_NO_MAC_ADDRESS ((DWORD)27)
37c4d6aa 250#define RCC_NOT_IMPLEMENTED ((DWORD)28)
106e7ae3 251#define RCC_INVALID_TRAP_ID ((DWORD)29)
2e0596dd 252#define RCC_DCI_NOT_SUPPORTED ((DWORD)30)
693119d6 253#define RCC_VERSION_MISMATCH ((DWORD)31)
17322e0b 254#define RCC_NPI_PARSE_ERROR ((DWORD)32)
257defd7
VK
255#define RCC_DUPLICATE_PACKAGE ((DWORD)33)
256#define RCC_PACKAGE_FILE_EXIST ((DWORD)34)
257#define RCC_RESOURCE_BUSY ((DWORD)35)
f6aa542e 258#define RCC_INVALID_PACKAGE_ID ((DWORD)36)
6c60ff91 259#define RCC_INVALID_IP_ADDR ((DWORD)37)
d72d004b 260#define RCC_ACTION_IN_USE ((DWORD)38)
878c92bc
VK
261
262
d9152256
VK
263//
264// Mask bits for NXCModifyEventTemplate()
265//
266
267#define EM_SEVERITY ((DWORD)0x01)
268#define EM_FLAGS ((DWORD)0x02)
269#define EM_NAME ((DWORD)0x04)
270#define EM_MESSAGE ((DWORD)0x08)
271#define EM_DESCRIPTION ((DWORD)0x10)
272#define EM_ALL ((DWORD)0x1F)
273
274
effb51ab
VK
275//
276// Mask bits (flags) for NXCModifyObject()
277//
278
70573ffe
VK
279#define OBJ_UPDATE_NAME ((DWORD)0x0001)
280#define OBJ_UPDATE_AGENT_PORT ((DWORD)0x0002)
281#define OBJ_UPDATE_AGENT_AUTH ((DWORD)0x0004)
282#define OBJ_UPDATE_AGENT_SECRET ((DWORD)0x0008)
283#define OBJ_UPDATE_SNMP_VERSION ((DWORD)0x0010)
284#define OBJ_UPDATE_SNMP_COMMUNITY ((DWORD)0x0020)
285#define OBJ_UPDATE_ACL ((DWORD)0x0040)
286#define OBJ_UPDATE_IMAGE ((DWORD)0x0080)
287#define OBJ_UPDATE_DESCRIPTION ((DWORD)0x0100)
d780a7bc
VK
288#define OBJ_UPDATE_SERVICE_TYPE ((DWORD)0x0200)
289#define OBJ_UPDATE_IP_PROTO ((DWORD)0x0400)
290#define OBJ_UPDATE_IP_PORT ((DWORD)0x0800)
291#define OBJ_UPDATE_CHECK_REQUEST ((DWORD)0x1000)
292#define OBJ_UPDATE_CHECK_RESPONCE ((DWORD)0x2000)
293#define OBJ_UPDATE_POLLER_NODE ((DWORD)0x4000)
89ced6da 294#define OBJ_UPDATE_IP_ADDR ((DWORD)0x8000)
d780a7bc 295
89ced6da
VK
296#define OBJ_UPDATE_NODE_ALL ((DWORD)0x41FF)
297#define OBJ_UPDATE_NETSRV_ALL ((DWORD)0xFEC1)
effb51ab
VK
298
299
5ac3236b
VK
300//
301// Global user rights
302//
303
304#define SYSTEM_ACCESS_MANAGE_USERS 0x0001
11363a86
VK
305#define SYSTEM_ACCESS_SERVER_CONFIG 0x0002
306#define SYSTEM_ACCESS_CONFIGURE_TRAPS 0x0004
5ac3236b
VK
307#define SYSTEM_ACCESS_DROP_CONNECTIONS 0x0008
308#define SYSTEM_ACCESS_VIEW_EVENT_DB 0x0010
309#define SYSTEM_ACCESS_EDIT_EVENT_DB 0x0020
a7d07192 310#define SYSTEM_ACCESS_EPP 0x0040
4ae6b70e 311#define SYSTEM_ACCESS_MANAGE_ACTIONS 0x0080
d096bcdd 312#define SYSTEM_ACCESS_DELETE_ALARMS 0x0100
1c8b8363 313#define SYSTEM_ACCESS_MANAGE_PACKAGES 0x0200
5ac3236b 314
4f269e0a 315#define SYSTEM_ACCESS_FULL 0x03FF
911dbb64 316
5ac3236b
VK
317
318//
319// Object access rights
320//
321
322#define OBJECT_ACCESS_READ 0x00000001
323#define OBJECT_ACCESS_MODIFY 0x00000002
324#define OBJECT_ACCESS_CREATE 0x00000004
325#define OBJECT_ACCESS_DELETE 0x00000008
03482383 326#define OBJECT_ACCESS_READ_ALARMS 0x00000010
34d95c13 327#define OBJECT_ACCESS_CONTROL 0x00000020
03482383 328#define OBJECT_ACCESS_ACK_ALARMS 0x00000040
b562fca8 329#define OBJECT_ACCESS_SEND_EVENTS 0x00000080
5ac3236b
VK
330
331
332//
333// User/group flags
334//
335
336#define UF_MODIFIED 0x0001
337#define UF_DELETED 0x0002
338#define UF_DISABLED 0x0004
339#define UF_CHANGE_PASSWORD 0x0008
8c18110a 340#define UF_CANNOT_CHANGE_PASSWORD 0x0010
5ac3236b
VK
341
342
984542f8
VK
343//
344// User database change notification types
345//
346
347#define USER_DB_CREATE 0
348#define USER_DB_DELETE 1
349#define USER_DB_MODIFY 2
350
351
54481027 352//
7ec6cca8 353// Data sources
54481027
VK
354//
355
7ec6cca8
VK
356#define DS_INTERNAL 0
357#define DS_NATIVE_AGENT 1
358#define DS_SNMP_AGENT 2
54481027
VK
359
360
878c92bc 361//
7ec6cca8 362// Item status
878c92bc
VK
363//
364
7ec6cca8
VK
365#define ITEM_STATUS_ACTIVE 0
366#define ITEM_STATUS_DISABLED 1
367#define ITEM_STATUS_NOT_SUPPORTED 2
878c92bc
VK
368
369
333ece94
VK
370//
371// Delta calculation methods for DCIs
372//
373
374#define DCM_ORIGINAL_VALUE 0
375#define DCM_SIMPLE 1
376#define DCM_AVERAGE_PER_SECOND 2
377#define DCM_AVERAGE_PER_MINUTE 3
378
379
d0e94572
VK
380//
381// Threshold functions and operations
382//
383
384#define F_LAST 0
385#define F_AVERAGE 1
386#define F_DEVIATION 2
387
388#define OP_LE 0
389#define OP_LE_EQ 1
390#define OP_EQ 2
391#define OP_GT_EQ 3
392#define OP_GT 4
393#define OP_NE 5
394#define OP_LIKE 6
395#define OP_NOTLIKE 7
396
397
99180ed6
VK
398//
399// Event policy rule flags
400//
401
402#define RF_STOP_PROCESSING 0x0001
403#define RF_NEGATED_SOURCE 0x0002
404#define RF_NEGATED_EVENTS 0x0004
405#define RF_GENERATE_ALARM 0x0008
97e55bb4 406#define RF_DISABLED 0x0010
99180ed6 407#define RF_SEVERITY_INFO 0x0100
2fa43626
VK
408#define RF_SEVERITY_WARNING 0x0200
409#define RF_SEVERITY_MINOR 0x0400
99180ed6
VK
410#define RF_SEVERITY_MAJOR 0x0800
411#define RF_SEVERITY_CRITICAL 0x1000
412
413
4ae6b70e
VK
414//
415// Action types
416//
417
c7863da1
VK
418#define ACTION_EXEC 0
419#define ACTION_REMOTE 1
4ae6b70e 420#define ACTION_SEND_EMAIL 2
c7863da1 421#define ACTION_SEND_SMS 3
4ae6b70e
VK
422
423
4d92bf3c
VK
424//
425// Deployment manager status codes
426//
427
428#define DEPLOYMENT_STATUS_PENDING 0
429#define DEPLOYMENT_STATUS_TRANSFER 1
430#define DEPLOYMENT_STATUS_INSTALLATION 2
431#define DEPLOYMENT_STATUS_COMPLETED 3
432#define DEPLOYMENT_STATUS_FAILED 4
094b9fa8 433#define DEPLOYMENT_STATUS_INITIALIZE 5
8494c011 434#define DEPLOYMENT_STATUS_FINISHED 255
4d92bf3c
VK
435
436
125c0e81
VK
437//
438// Agent's parameter information
439//
440
441typedef struct
442{
443 TCHAR szName[MAX_PARAM_NAME];
444 TCHAR szDescription[MAX_DB_STRING];
445 int iDataType;
446} NXC_AGENT_PARAM;
447
448
4ae6b70e
VK
449//
450// Action structure
451//
452
453typedef struct
454{
455 DWORD dwId;
456 int iType;
c9363772 457 BOOL bIsDisabled;
b900a78b
VK
458 TCHAR szName[MAX_OBJECT_NAME];
459 TCHAR szRcptAddr[MAX_RCPT_ADDR_LEN];
460 TCHAR szEmailSubject[MAX_EMAIL_SUBJECT_LEN];
461 TCHAR *pszData;
4ae6b70e 462} NXC_ACTION;
333ece94
VK
463
464
2260ffe5
VK
465//
466// Alarm structure
467//
468
469typedef struct
470{
471 DWORD dwAlarmId; // Unique alarm ID
472 DWORD dwTimeStamp; // Timestamp in time() format
473 DWORD dwSourceObject; // Source object ID
c19b2871
VK
474 DWORD dwSourceEventCode;// Originating event code
475 QWORD qwSourceEventId; // Originating event ID
b40371d4
AK
476 TCHAR szMessage[MAX_DB_STRING];
477 TCHAR szKey[MAX_DB_STRING];
2260ffe5
VK
478 WORD wSeverity; // Alarm's severity
479 WORD wIsAck; // Non-zero if acknowleged
480 DWORD dwAckByUser; // Id of user who acknowleges this alarm (0 for system)
481} NXC_ALARM;
482
483
a1dc75b0
VK
484//
485// Event log record structure
486//
487
488typedef struct
489{
0c6014e4 490 QWORD qwEventId;
a1dc75b0 491 DWORD dwTimeStamp;
0c6014e4 492 DWORD dwEventCode;
a1dc75b0
VK
493 DWORD dwSourceId;
494 DWORD dwSeverity;
babb8280
VK
495#ifdef UNICODE
496 WCHAR szMessage[MAX_EVENT_MSG_LENGTH];
497#else
498 char szMessage[MAX_EVENT_MSG_LENGTH * sizeof(WCHAR)];
499#endif
a1dc75b0
VK
500} NXC_EVENT;
501
502
e641b7d0
VK
503//
504// Image information
505//
506
507typedef struct
508{
509 DWORD dwId;
b900a78b 510 TCHAR szName[MAX_OBJECT_NAME];
e641b7d0
VK
511 BYTE hash[MD5_DIGEST_SIZE];
512} NXC_IMAGE;
513
514
515//
516// Image list
517//
518
519typedef struct
520{
521 DWORD dwNumImages;
522 NXC_IMAGE *pImageList;
523} NXC_IMAGE_LIST;
524
525
840eb902
VK
526//
527// Trap parameter mapping entry
528//
529
565f6f86 530struct NXC_OID_MAP
840eb902
VK
531{
532 DWORD *pdwObjectId; // Trap OID
533 DWORD dwOidLen; // Trap OID length
565f6f86 534 TCHAR szDescription[MAX_DB_STRING];
840eb902
VK
535};
536
537
538//
539// Trap configuration entry
540//
541
542struct NXC_TRAP_CFG_ENTRY
543{
544 DWORD dwId; // Entry ID
545 DWORD *pdwObjectId; // Trap OID
546 DWORD dwOidLen; // Trap OID length
c19b2871 547 DWORD dwEventCode; // Event code
840eb902 548 DWORD dwNumMaps; // Number of parameter mappings
565f6f86
VK
549 NXC_OID_MAP *pMaps;
550 TCHAR szDescription[MAX_DB_STRING];
840eb902
VK
551};
552
553
7ec6cca8
VK
554/********************************************************************
555 * Following part of this file shouldn't be included by server code *
556 ********************************************************************/
557
558#ifndef LIBNXCL_NO_DECLARATIONS
559
560
561//
562// Callbacks data types
563//
564
41213c24 565typedef void (* NXC_EVENT_HANDLER)(NXC_SESSION hSession, DWORD dwEvent, DWORD dwCode, void *pArg);
b40371d4 566typedef void (* NXC_DEBUG_CALLBACK)(TCHAR *pMsg);
7ec6cca8
VK
567
568
1c8b8363
VK
569//
570// Agent package information
571//
572
573typedef struct
574{
575 DWORD dwId;
257defd7 576 TCHAR szName[MAX_PACKAGE_NAME_LEN];
1c8b8363
VK
577 TCHAR szVersion[MAX_AGENT_VERSION_LEN];
578 TCHAR szPlatform[MAX_PLATFORM_NAME_LEN];
579 TCHAR szFileName[MAX_DB_STRING];
257defd7 580 TCHAR szDescription[MAX_DB_STRING];
1c8b8363
VK
581} NXC_PACKAGE_INFO;
582
583
7ec6cca8
VK
584//
585// Event configuration structure
586//
587
588typedef struct
589{
590 DWORD dwCode;
591 DWORD dwSeverity;
592 DWORD dwFlags;
b900a78b
VK
593 TCHAR szName[MAX_EVENT_NAME];
594 TCHAR *pszMessage;
595 TCHAR *pszDescription;
7ec6cca8
VK
596} NXC_EVENT_TEMPLATE;
597
598
effb51ab
VK
599//
600// Entry in object's ACL
601//
602
603typedef struct
604{
605 DWORD dwUserId;
606 DWORD dwAccessRights;
607} NXC_ACL_ENTRY;
608
609
0c8bf759
VK
610//
611// Network object structure
612//
613
614typedef struct
615{
616 DWORD dwId; // Unique object's identifier
617 int iClass; // Object's class
618 int iStatus; // Object's status
619 DWORD dwIpAddr; // IP address
b900a78b 620 TCHAR szName[MAX_OBJECT_NAME];
0c8bf759
VK
621 DWORD dwNumParents;
622 DWORD *pdwParentList;
623 DWORD dwNumChilds;
624 DWORD *pdwChildList;
4d597931 625 BOOL bIsDeleted; // TRUE for deleted objects
effb51ab
VK
626 BOOL bInheritRights;
627 DWORD dwAclSize;
628 NXC_ACL_ENTRY *pAccessList;
03ea8b3d 629 DWORD dwImage; // Image ID or IMG_DEFAULT for default image
0c8bf759
VK
630 union
631 {
632 struct
633 {
634 DWORD dwIpNetMask; // Ip netmask.
635 DWORD dwIfIndex; // Interface index.
636 DWORD dwIfType; // Interface type
b50f1100 637 BYTE bMacAddr[MAC_ADDR_LENGTH];
0c8bf759
VK
638 } iface;
639 struct
640 {
641 DWORD dwFlags;
642 DWORD dwDiscoveryFlags;
18e26ff8 643 DWORD dwNodeType;
89ced6da 644 DWORD dwPollerNode;
b900a78b
VK
645 TCHAR szSharedSecret[MAX_SECRET_LENGTH];
646 TCHAR szCommunityString[MAX_COMMUNITY_LENGTH];
647 TCHAR szObjectId[MAX_OID_LENGTH];
0c8bf759
VK
648 WORD wAgentPort; // Listening TCP port for native agent
649 WORD wAuthMethod; // Native agent's authentication method
70573ffe 650 TCHAR *pszDescription;
d096bcdd 651 TCHAR szAgentVersion[MAX_AGENT_VERSION_LEN];
1c8b8363 652 TCHAR szPlatformName[MAX_PLATFORM_NAME_LEN];
37c4d6aa 653 WORD wSNMPVersion;
0c8bf759
VK
654 } node;
655 struct
656 {
657 DWORD dwIpNetMask;
658 } subnet;
ef44d5ea
VK
659 struct
660 {
661 DWORD dwCategory;
b900a78b 662 TCHAR *pszDescription;
ef44d5ea 663 } container;
70573ffe
VK
664 struct
665 {
666 DWORD dwVersion;
667 TCHAR *pszDescription;
668 } dct;
d780a7bc
VK
669 struct
670 {
671 int iServiceType;
672 WORD wProto;
673 WORD wPort;
674 DWORD dwPollerNode;
675 TCHAR *pszRequest;
676 TCHAR *pszResponce;
677 } netsrv;
0c8bf759
VK
678 };
679} NXC_OBJECT;
680
681
effb51ab
VK
682//
683// Structure with data for NXCModifyObject
684//
685
686typedef struct
687{
688 DWORD dwObjectId;
689 DWORD dwFlags;
b900a78b 690 TCHAR *pszName;
70573ffe 691 TCHAR *pszDescription;
effb51ab
VK
692 int iAgentPort;
693 int iAuthType;
b900a78b 694 TCHAR *pszSecret;
b900a78b 695 TCHAR *pszCommunity;
effb51ab 696 BOOL bInheritRights;
2a41a4b5 697 DWORD dwImage;
effb51ab
VK
698 DWORD dwAclSize;
699 NXC_ACL_ENTRY *pAccessList;
37c4d6aa 700 WORD wSNMPVersion;
d780a7bc
VK
701 int iServiceType;
702 WORD wProto;
703 WORD wPort;
704 DWORD dwPollerNode;
705 TCHAR *pszRequest;
706 TCHAR *pszResponce;
89ced6da 707 DWORD dwIpAddr;
effb51ab
VK
708} NXC_OBJECT_UPDATE;
709
710
5ac3236b
VK
711//
712// NetXMS user information structure
713//
714
715typedef struct
716{
b900a78b 717 TCHAR szName[MAX_USER_NAME];
5ac3236b
VK
718 DWORD dwId;
719 WORD wFlags;
720 WORD wSystemRights;
721 DWORD dwNumMembers; // Only for groups
722 DWORD *pdwMemberList; // Only for groups
b900a78b
VK
723 TCHAR szFullName[MAX_USER_FULLNAME]; // Only for users
724 TCHAR szDescription[MAX_USER_DESCR];
5ac3236b
VK
725} NXC_USER;
726
727
f86ffdd2
VK
728//
729// Data collection item threshold structure
730//
731
732typedef struct
733{
734 DWORD dwId;
735 DWORD dwEvent;
736 WORD wFunction;
737 WORD wOperation;
738 DWORD dwArg1;
739 DWORD dwArg2;
740 union
741 {
742 DWORD dwInt32;
743 INT64 qwInt64;
744 double dFloat;
b40371d4 745 TCHAR szString[MAX_STRING_VALUE];
f86ffdd2
VK
746 } value;
747} NXC_DCI_THRESHOLD;
748
749
7ec6cca8
VK
750//
751// Data collection item structure
752//
753
754typedef struct
755{
756 DWORD dwId;
333ece94 757 DWORD dwTemplateId;
b40371d4
AK
758 TCHAR szName[MAX_ITEM_NAME];
759 TCHAR szDescription[MAX_DB_STRING];
22c38feb 760 TCHAR szInstance[MAX_DB_STRING];
7ec6cca8
VK
761 int iPollingInterval;
762 int iRetentionTime;
763 BYTE iSource;
764 BYTE iDataType;
765 BYTE iStatus;
333ece94 766 BYTE iDeltaCalculation;
f86ffdd2
VK
767 DWORD dwNumThresholds;
768 NXC_DCI_THRESHOLD *pThresholdList;
b40371d4 769 TCHAR *pszFormula;
7ec6cca8
VK
770} NXC_DCI;
771
772
773//
774// Node's data collection list information
775//
776
777typedef struct
778{
779 DWORD dwNodeId;
780 DWORD dwNumItems;
781 NXC_DCI *pItems;
782} NXC_DCI_LIST;
783
784
b9b4ec17
VK
785//
786// Row structure
787//
788
9f20696e
VK
789#pragma pack(1)
790
b9b4ec17
VK
791typedef struct
792{
793 DWORD dwTimeStamp;
794 union
795 {
796 DWORD dwInt32;
cb17745c 797 INT64 qwInt64;
b9b4ec17 798 double dFloat;
b40371d4 799 TCHAR szString[MAX_STRING_VALUE];
b9b4ec17
VK
800 } value;
801} NXC_DCI_ROW;
802
9f20696e
VK
803#pragma pack()
804
b9b4ec17
VK
805
806//
807// DCI's collected data
808//
809
810typedef struct
811{
812 DWORD dwNodeId; // Owner's node id
813 DWORD dwItemId; // Item id
814 DWORD dwNumRows; // Number of rows in set
815 WORD wDataType; // Data type (integer, string, etc.)
816 WORD wRowSize; // Size of single row in bytes
817 NXC_DCI_ROW *pRows; // Array of rows
818} NXC_DCI_DATA;
819
820
a7d07192
VK
821//
822// MIB file list
823//
824
825typedef struct
826{
827 DWORD dwNumFiles;
b40371d4 828 TCHAR **ppszName;
a7d07192
VK
829 BYTE **ppHash;
830} NXC_MIB_LIST;
831
832
833//
834// Event processing policy rule
835//
836
837typedef struct
838{
839 DWORD dwFlags;
840 DWORD dwId;
841 DWORD dwNumActions;
842 DWORD dwNumEvents;
843 DWORD dwNumSources;
844 DWORD *pdwActionList;
845 DWORD *pdwEventList;
846 DWORD *pdwSourceList;
b40371d4
AK
847 TCHAR *pszComment;
848 TCHAR szAlarmKey[MAX_DB_STRING];
849 TCHAR szAlarmAckKey[MAX_DB_STRING];
850 TCHAR szAlarmMessage[MAX_DB_STRING];
a7d07192
VK
851 WORD wAlarmSeverity;
852} NXC_EPP_RULE;
853
854
855//
856// Event processing policy
857//
858
859typedef struct
860{
861 DWORD dwNumRules;
862 NXC_EPP_RULE *pRuleList;
863} NXC_EPP;
864
865
e4cfb9f3
VK
866//
867// Package deployment status information
868//
869
870typedef struct
871{
872 DWORD dwNodeId;
873 DWORD dwStatus;
874 TCHAR *pszErrorMessage;
875} NXC_DEPLOYMENT_STATUS;
876
877
917aa2e6
VK
878//
879// Object creation information structure
880//
881
882typedef struct
883{
884 int iClass;
885 DWORD dwParentId;
b40371d4 886 TCHAR *pszName;
917aa2e6
VK
887 union
888 {
889 struct
890 {
891 DWORD dwIpAddr;
892 DWORD dwNetMask;
893 } node;
894 struct
895 {
896 DWORD dwCategory;
b40371d4 897 TCHAR *pszDescription;
917aa2e6 898 } container;
62d11997
VK
899 struct
900 {
901 TCHAR *pszDescription;
902 } templateGroup;
b61fe31e
VK
903 struct
904 {
905 int iServiceType;
906 WORD wProto;
907 WORD wPort;
908 TCHAR *pszRequest;
909 TCHAR *pszResponce;
910 } netsrv;
917aa2e6
VK
911 } cs;
912} NXC_OBJECT_CREATE_INFO;
913
914
6849d9be
VK
915//
916// Container category
917//
918
919typedef struct
920{
921 DWORD dwId;
922 DWORD dwImageId;
b40371d4
AK
923 TCHAR szName[MAX_OBJECT_NAME];
924 TCHAR *pszDescription;
6849d9be
VK
925} NXC_CONTAINER_CATEGORY;
926
927
928//
929// Container categories list
930//
931
932typedef struct
933{
934 DWORD dwNumElements;
935 NXC_CONTAINER_CATEGORY *pElements;
936} NXC_CC_LIST;
937
938
20aaa307
VK
939//
940// DCI information and last value for NXCGetLastValues()
941//
942
943typedef struct
944{
945 DWORD dwId;
946 DWORD dwTimestamp;
947 TCHAR szName[MAX_ITEM_NAME];
948 TCHAR szDescription[MAX_DB_STRING];
949 TCHAR szValue[MAX_DB_STRING];
950 int iDataType;
951} NXC_DCI_VALUE;
952
953
80ffed5a
VK
954//
955// Functions
956//
957
958#ifdef __cplusplus
959extern "C" {
960#endif
961
8aeffdee 962DWORD LIBNXCL_EXPORTABLE NXCGetVersion(void);
b40371d4 963const TCHAR LIBNXCL_EXPORTABLE *NXCGetErrorText(DWORD dwError);
effb51ab 964
8aeffdee 965BOOL LIBNXCL_EXPORTABLE NXCInitialize(void);
39d7a7ed 966void LIBNXCL_EXPORTABLE NXCShutdown(void);
44342f7b 967void LIBNXCL_EXPORTABLE NXCSetDebugCallback(NXC_DEBUG_CALLBACK pFunc);
41213c24
VK
968
969DWORD LIBNXCL_EXPORTABLE NXCConnect(TCHAR *szServer, TCHAR *szLogin,
970 TCHAR *szPassword, NXC_SESSION *phSession);
971void LIBNXCL_EXPORTABLE NXCDisconnect(NXC_SESSION hSession);
972void LIBNXCL_EXPORTABLE NXCSetEventHandler(NXC_SESSION hSession, NXC_EVENT_HANDLER pHandler);
41213c24
VK
973void LIBNXCL_EXPORTABLE NXCSetCommandTimeout(NXC_SESSION hSession, DWORD dwTimeout);
974
975DWORD LIBNXCL_EXPORTABLE NXCSyncObjects(NXC_SESSION hSession);
bfa29136 976DWORD LIBNXCL_EXPORTABLE NXCSyncObjectsEx(NXC_SESSION hSession, TCHAR *pszCacheFile);
41213c24 977NXC_OBJECT LIBNXCL_EXPORTABLE *NXCFindObjectById(NXC_SESSION hSession, DWORD dwId);
9d3816ab 978NXC_OBJECT LIBNXCL_EXPORTABLE *NXCFindObjectByIdNoLock(NXC_SESSION hSession, DWORD dwId);
41213c24
VK
979NXC_OBJECT LIBNXCL_EXPORTABLE *NXCFindObjectByName(NXC_SESSION hSession, TCHAR *pszName);
980void LIBNXCL_EXPORTABLE NXCEnumerateObjects(NXC_SESSION hSession, BOOL (* pHandler)(NXC_OBJECT *));
981NXC_OBJECT LIBNXCL_EXPORTABLE *NXCGetTopologyRootObject(NXC_SESSION hSession);
982NXC_OBJECT LIBNXCL_EXPORTABLE *NXCGetServiceRootObject(NXC_SESSION hSession);
983NXC_OBJECT LIBNXCL_EXPORTABLE *NXCGetTemplateRootObject(NXC_SESSION hSession);
984void LIBNXCL_EXPORTABLE *NXCGetObjectIndex(NXC_SESSION hSession, DWORD *pdwNumObjects);
985void LIBNXCL_EXPORTABLE NXCLockObjectIndex(NXC_SESSION hSession);
986void LIBNXCL_EXPORTABLE NXCUnlockObjectIndex(NXC_SESSION hSession);
987DWORD LIBNXCL_EXPORTABLE NXCModifyObject(NXC_SESSION hSession, NXC_OBJECT_UPDATE *pData);
988DWORD LIBNXCL_EXPORTABLE NXCSetObjectMgmtStatus(NXC_SESSION hSession, DWORD dwObjectId, BOOL bIsManaged);
989DWORD LIBNXCL_EXPORTABLE NXCCreateObject(NXC_SESSION hSession, NXC_OBJECT_CREATE_INFO *pCreateInfo, DWORD *pdwObjectId);
990DWORD LIBNXCL_EXPORTABLE NXCBindObject(NXC_SESSION hSession, DWORD dwParentObject, DWORD dwChildObject);
991DWORD LIBNXCL_EXPORTABLE NXCUnbindObject(NXC_SESSION hSession, DWORD dwParentObject, DWORD dwChildObject);
992DWORD LIBNXCL_EXPORTABLE NXCDeleteObject(NXC_SESSION hSession, DWORD dwObject);
993DWORD LIBNXCL_EXPORTABLE NXCPollNode(NXC_SESSION hSession, DWORD dwObjectId, int iPollType,
eb8b1960 994 void (* pCallback)(TCHAR *, void *), void *pArg);
41213c24 995DWORD LIBNXCL_EXPORTABLE NXCWakeUpNode(NXC_SESSION hSession, DWORD dwObjectId);
e6ccf59b
VK
996DWORD LIBNXCL_EXPORTABLE NXCGetSupportedParameters(NXC_SESSION hSession, DWORD dwNodeId,
997 DWORD *pdwNumParams,
998 NXC_AGENT_PARAM **ppParamList);
c32b805a
VK
999void LIBNXCL_EXPORTABLE NXCGetComparableObjectName(NXC_SESSION hSession, DWORD dwObjectId,
1000 TCHAR *pszName);
bfa29136 1001DWORD LIBNXCL_EXPORTABLE NXCSaveObjectCache(NXC_SESSION hSession, TCHAR *pszFile);
41213c24
VK
1002
1003DWORD LIBNXCL_EXPORTABLE NXCLoadCCList(NXC_SESSION hSession, NXC_CC_LIST **ppList);
babb8280 1004void LIBNXCL_EXPORTABLE NXCDestroyCCList(NXC_CC_LIST *pList);
41213c24
VK
1005
1006DWORD LIBNXCL_EXPORTABLE NXCSyncEvents(NXC_SESSION hSession);
1007DWORD LIBNXCL_EXPORTABLE NXCLoadEventDB(NXC_SESSION hSession);
1008DWORD LIBNXCL_EXPORTABLE NXCSetEventInfo(NXC_SESSION hSession, NXC_EVENT_TEMPLATE *pArg);
1009DWORD LIBNXCL_EXPORTABLE NXCGenerateEventCode(NXC_SESSION hSession, DWORD *pdwEventCode);
1010void LIBNXCL_EXPORTABLE NXCAddEventTemplate(NXC_SESSION hSession, NXC_EVENT_TEMPLATE *pEventTemplate);
1011void LIBNXCL_EXPORTABLE NXCDeleteEDBRecord(NXC_SESSION hSession, DWORD dwEventCode);
1012DWORD LIBNXCL_EXPORTABLE NXCDeleteEventTemplate(NXC_SESSION hSession, DWORD dwEventCode);
1013DWORD LIBNXCL_EXPORTABLE NXCLockEventDB(NXC_SESSION hSession);
1014DWORD LIBNXCL_EXPORTABLE NXCUnlockEventDB(NXC_SESSION hSession);
1015BOOL LIBNXCL_EXPORTABLE NXCGetEventDB(NXC_SESSION hSession, NXC_EVENT_TEMPLATE ***pppTemplateList, DWORD *pdwNumRecords);
1016const TCHAR LIBNXCL_EXPORTABLE *NXCGetEventName(NXC_SESSION hSession, DWORD dwId);
1017BOOL LIBNXCL_EXPORTABLE NXCGetEventNameEx(NXC_SESSION hSession, DWORD dwId, TCHAR *pszBuffer, DWORD dwBufSize);
1018int LIBNXCL_EXPORTABLE NXCGetEventSeverity(NXC_SESSION hSession, DWORD dwId);
1019BOOL LIBNXCL_EXPORTABLE NXCGetEventText(NXC_SESSION hSession, DWORD dwId, TCHAR *pszBuffer, DWORD dwBufSize);
1020DWORD LIBNXCL_EXPORTABLE NXCSendEvent(NXC_SESSION hSession, DWORD dwEventCode, DWORD dwObjectId, int iNumArgs, TCHAR **pArgList);
1021
1022DWORD LIBNXCL_EXPORTABLE NXCLoadUserDB(NXC_SESSION hSession);
1023NXC_USER LIBNXCL_EXPORTABLE *NXCFindUserById(NXC_SESSION hSession, DWORD dwId);
1024BOOL LIBNXCL_EXPORTABLE NXCGetUserDB(NXC_SESSION hSession, NXC_USER **ppUserList, DWORD *pdwNumUsers);
1025DWORD LIBNXCL_EXPORTABLE NXCLockUserDB(NXC_SESSION hSession);
1026DWORD LIBNXCL_EXPORTABLE NXCUnlockUserDB(NXC_SESSION hSession);
1027DWORD LIBNXCL_EXPORTABLE NXCCreateUser(NXC_SESSION hSession, TCHAR *pszName, BOOL bIsGroup, DWORD *pdwNewId);
1028DWORD LIBNXCL_EXPORTABLE NXCDeleteUser(NXC_SESSION hSession, DWORD dwId);
1029DWORD LIBNXCL_EXPORTABLE NXCModifyUser(NXC_SESSION hSession, NXC_USER *pUserInfo);
1030DWORD LIBNXCL_EXPORTABLE NXCSetPassword(NXC_SESSION hSession, DWORD dwUserId, TCHAR *pszNewPassword);
1031
1032DWORD LIBNXCL_EXPORTABLE NXCOpenNodeDCIList(NXC_SESSION hSession, DWORD dwNodeId, NXC_DCI_LIST **ppItemList);
1033DWORD LIBNXCL_EXPORTABLE NXCCloseNodeDCIList(NXC_SESSION hSession, NXC_DCI_LIST *pItemList);
1034DWORD LIBNXCL_EXPORTABLE NXCCreateNewDCI(NXC_SESSION hSession, NXC_DCI_LIST *pItemList, DWORD *pdwItemId);
1035DWORD LIBNXCL_EXPORTABLE NXCUpdateDCI(NXC_SESSION hSession, DWORD dwNodeId, NXC_DCI *pItem);
1036DWORD LIBNXCL_EXPORTABLE NXCDeleteDCI(NXC_SESSION hSession, NXC_DCI_LIST *pItemList, DWORD dwItemId);
1037DWORD LIBNXCL_EXPORTABLE NXCSetDCIStatus(NXC_SESSION hSession, DWORD dwNodeId, DWORD dwNumItems,
2185f431 1038 DWORD *pdwItemList, int iStatus);
41213c24 1039DWORD LIBNXCL_EXPORTABLE NXCCopyDCI(NXC_SESSION hSession, DWORD dwSrcNodeId, DWORD dwDstNodeId,
933aee5c 1040 DWORD dwNumItems, DWORD *pdwItemList);
b5b72be8 1041DWORD LIBNXCL_EXPORTABLE NXCApplyTemplate(NXC_SESSION hSession, DWORD dwTemplateId, DWORD dwNodeId);
7ac0c0a8 1042DWORD LIBNXCL_EXPORTABLE NXCItemIndex(NXC_DCI_LIST *pItemList, DWORD dwItemId);
41213c24 1043DWORD LIBNXCL_EXPORTABLE NXCGetDCIData(NXC_SESSION hSession, DWORD dwNodeId, DWORD dwItemId, DWORD dwMaxRows,
b9b4ec17 1044 DWORD dwTimeFrom, DWORD dwTimeTo, NXC_DCI_DATA **ppData);
4c20673b
VK
1045void LIBNXCL_EXPORTABLE NXCDestroyDCIData(NXC_DCI_DATA *pData);
1046NXC_DCI_ROW LIBNXCL_EXPORTABLE *NXCGetRowPtr(NXC_DCI_DATA *pData, DWORD dwRow);
b5b72be8
VK
1047DWORD LIBNXCL_EXPORTABLE NXCGetLastValues(NXC_SESSION hSession, DWORD dwNodeId,
1048 DWORD *pdwNumItems, NXC_DCI_VALUE **ppValueList);
899f2093
VK
1049DWORD LIBNXCL_EXPORTABLE NXCAddThresholdToItem(NXC_DCI *pItem, NXC_DCI_THRESHOLD *pThreshold);
1050BOOL LIBNXCL_EXPORTABLE NXCDeleteThresholdFromItem(NXC_DCI *pItem, DWORD dwIndex);
1051BOOL LIBNXCL_EXPORTABLE NXCSwapThresholds(NXC_DCI *pItem, DWORD dwIndex1, DWORD dwIndex2);
41213c24 1052DWORD LIBNXCL_EXPORTABLE NXCQueryParameter(NXC_SESSION hSession, DWORD dwNodeId, int iOrigin, TCHAR *pszParameter,
2e0596dd 1053 TCHAR *pszBuffer, DWORD dwBufferSize);
7ec6cca8 1054
41213c24 1055DWORD LIBNXCL_EXPORTABLE NXCGetMIBList(NXC_SESSION hSession, NXC_MIB_LIST **ppMibList);
a7d07192 1056void LIBNXCL_EXPORTABLE NXCDestroyMIBList(NXC_MIB_LIST *pMibList);
41213c24 1057DWORD LIBNXCL_EXPORTABLE NXCDownloadMIBFile(NXC_SESSION hSession, TCHAR *pszName, TCHAR *pszDestDir);
a7d07192 1058
41213c24
VK
1059DWORD LIBNXCL_EXPORTABLE NXCOpenEventPolicy(NXC_SESSION hSession, NXC_EPP **ppEventPolicy);
1060DWORD LIBNXCL_EXPORTABLE NXCCloseEventPolicy(NXC_SESSION hSession);
1061DWORD LIBNXCL_EXPORTABLE NXCSaveEventPolicy(NXC_SESSION hSession, NXC_EPP *pEventPolicy);
a7d07192 1062void LIBNXCL_EXPORTABLE NXCDestroyEventPolicy(NXC_EPP *pEventPolicy);
ef44d5ea 1063void LIBNXCL_EXPORTABLE NXCDeletePolicyRule(NXC_EPP *pEventPolicy, DWORD dwRule);
a7d07192 1064
41213c24
VK
1065DWORD LIBNXCL_EXPORTABLE NXCSyncImages(NXC_SESSION hSession, NXC_IMAGE_LIST **ppImageList, TCHAR *pszCacheDir, WORD wFormat);
1066DWORD LIBNXCL_EXPORTABLE NXCLoadImageFile(NXC_SESSION hSession, DWORD dwImageId, TCHAR *pszCacheDir, WORD wFormat);
f70fc197 1067void LIBNXCL_EXPORTABLE NXCDestroyImageList(NXC_IMAGE_LIST *pImageList);
41213c24 1068DWORD LIBNXCL_EXPORTABLE NXCLoadDefaultImageList(NXC_SESSION hSession, DWORD *pdwListSize,
51bd5a10 1069 DWORD **ppdwClassId, DWORD **ppdwImageId);
f70fc197 1070
41213c24
VK
1071DWORD LIBNXCL_EXPORTABLE NXCLoadAllAlarms(NXC_SESSION hSession, BOOL bIncludeAck, DWORD *pdwNumAlarms, NXC_ALARM **ppAlarmList);
1072DWORD LIBNXCL_EXPORTABLE NXCAcknowlegeAlarm(NXC_SESSION hSession, DWORD dwAlarmId);
1073DWORD LIBNXCL_EXPORTABLE NXCDeleteAlarm(NXC_SESSION hSession, DWORD dwAlarmId);
03482383 1074
41213c24
VK
1075DWORD LIBNXCL_EXPORTABLE NXCLoadActions(NXC_SESSION hSession, DWORD *pdwNumActions, NXC_ACTION **ppActionList);
1076DWORD LIBNXCL_EXPORTABLE NXCLockActionDB(NXC_SESSION hSession);
1077DWORD LIBNXCL_EXPORTABLE NXCUnlockActionDB(NXC_SESSION hSession);
1078DWORD LIBNXCL_EXPORTABLE NXCCreateAction(NXC_SESSION hSession, TCHAR *pszName, DWORD *pdwNewId);
1079DWORD LIBNXCL_EXPORTABLE NXCModifyAction(NXC_SESSION hSession, NXC_ACTION *pAction);
1080DWORD LIBNXCL_EXPORTABLE NXCDeleteAction(NXC_SESSION hSession, DWORD dwActionId);
5bfcf934 1081
41213c24
VK
1082DWORD LIBNXCL_EXPORTABLE NXCLockTrapCfg(NXC_SESSION hSession);
1083DWORD LIBNXCL_EXPORTABLE NXCUnlockTrapCfg(NXC_SESSION hSession);
1084DWORD LIBNXCL_EXPORTABLE NXCLoadTrapCfg(NXC_SESSION hSession, DWORD *pdwNumTraps, NXC_TRAP_CFG_ENTRY **ppTrapList);
840eb902 1085void LIBNXCL_EXPORTABLE NXCDestroyTrapList(DWORD dwNumTraps, NXC_TRAP_CFG_ENTRY *pTrapList);
41213c24
VK
1086DWORD LIBNXCL_EXPORTABLE NXCCreateTrap(NXC_SESSION hSession, DWORD *pdwTrapId);
1087DWORD LIBNXCL_EXPORTABLE NXCModifyTrap(NXC_SESSION hSession, NXC_TRAP_CFG_ENTRY *pTrap);
1088DWORD LIBNXCL_EXPORTABLE NXCDeleteTrap(NXC_SESSION hSession, DWORD dwTrapId);
840eb902 1089
5be45ff2
VK
1090DWORD LIBNXCL_EXPORTABLE NXCLockPackageDB(NXC_SESSION hSession);
1091DWORD LIBNXCL_EXPORTABLE NXCUnlockPackageDB(NXC_SESSION hSession);
1c8b8363
VK
1092DWORD LIBNXCL_EXPORTABLE NXCGetPackageList(NXC_SESSION hSession, DWORD *pdwNumPackages,
1093 NXC_PACKAGE_INFO **ppList);
257defd7
VK
1094DWORD LIBNXCL_EXPORTABLE NXCInstallPackage(NXC_SESSION hSession, NXC_PACKAGE_INFO *pInfo,
1095 TCHAR *pszFullPkgPath);
19acf449 1096DWORD LIBNXCL_EXPORTABLE NXCRemovePackage(NXC_SESSION hSession, DWORD dwPkgId);
93e33892 1097DWORD LIBNXCL_EXPORTABLE NXCParseNPIFile(TCHAR *pszInfoFile, NXC_PACKAGE_INFO *pInfo);
e4cfb9f3
VK
1098DWORD LIBNXCL_EXPORTABLE NXCDeployPackage(NXC_SESSION hSession, DWORD dwPkgId,
1099 DWORD dwNumObjects, DWORD *pdwObjectList,
1100 DWORD *pdwRqId);
1c8b8363 1101
80ffed5a
VK
1102#ifdef __cplusplus
1103}
1104#endif
1105
7ec6cca8
VK
1106#endif /* LIBNXCL_NO_DECLARATIONS */
1107
80ffed5a 1108#endif /* _nxclapi_h_ */