home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / WINSNMP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  21.2 KB  |  632 lines

  1. /*++
  2.  
  3. Copyright 1992 - 1998 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     winsnmp.h
  8.  
  9. Abstract:
  10.  
  11.     Definitions for WinSNMP development.
  12.  
  13. --*/
  14.  
  15. #ifndef _INC_WINSNMP  
  16. #pragma option push -b -a8 -pc -A- /*P_O_Push_S*/
  17. #define _INC_WINSNMP 
  18.  
  19. ///////////////////////////////////////////////////////////////////////////////
  20. //                                                                           //
  21. // Additional Header Files                                                   //
  22. //                                                                           //
  23. ///////////////////////////////////////////////////////////////////////////////
  24.  
  25. #ifndef _INC_WINDOWS  
  26. #include <windows.h>
  27. #define _INC_WINDOWS  
  28. #endif                
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34. ///////////////////////////////////////////////////////////////////////////////
  35. //                                                                           //
  36. // WinSNMP API Type Definitions                                              //
  37. //                                                                           //
  38. ///////////////////////////////////////////////////////////////////////////////
  39.  
  40. typedef HANDLE              HSNMP_SESSION,  FAR *LPHSNMP_SESSION;
  41. typedef HANDLE              HSNMP_ENTITY,   FAR *LPHSNMP_ENTITY;
  42. typedef HANDLE              HSNMP_CONTEXT,  FAR *LPHSNMP_CONTEXT;
  43. typedef HANDLE              HSNMP_PDU,      FAR *LPHSNMP_PDU;
  44. typedef HANDLE              HSNMP_VBL,      FAR *LPHSNMP_VBL;
  45. typedef unsigned char       smiBYTE,        FAR *smiLPBYTE;
  46. typedef signed long         smiINT,         FAR *smiLPINT;
  47. typedef smiINT              smiINT32,       FAR *smiLPINT32;
  48. typedef unsigned long       smiUINT32,      FAR *smiLPUINT32;
  49. typedef struct {
  50.     smiUINT32 len;
  51.     smiLPBYTE ptr;
  52. }                           smiOCTETS,      FAR *smiLPOCTETS;
  53. typedef const smiOCTETS                     FAR *smiLPCOCTETS;
  54. typedef smiOCTETS           smiBITS,        FAR *smiLPBITS;
  55. typedef struct {
  56.     smiUINT32   len;                        
  57.     smiLPUINT32 ptr;
  58. }                           smiOID,         FAR *smiLPOID;
  59. typedef const smiOID                        FAR *smiLPCOID;
  60. typedef smiOCTETS           smiIPADDR,      FAR *smiLPIPADDR;
  61. typedef smiUINT32           smiCNTR32,      FAR *smiLPCNTR32;
  62. typedef smiUINT32           smiGAUGE32,     FAR *smiLPGAUGE32;
  63. typedef smiUINT32           smiTIMETICKS,   FAR *smiLPTIMETICKS;
  64. typedef smiOCTETS           smiOPAQUE,      FAR *smiLPOPAQUE;
  65. typedef smiOCTETS           smiNSAPADDR,    FAR *smiLPNSAPADDR;
  66. typedef struct {
  67.      smiUINT32 hipart;
  68.      smiUINT32 lopart;
  69. }                           smiCNTR64,      FAR *smiLPCNTR64;
  70.     
  71. typedef struct {       
  72.     smiUINT32 syntax;  
  73.     union {
  74.     smiINT    sNumber;      // SNMP_SYNTAX_INT
  75.                             // SNMP_SYNTAX_INT32 
  76.     smiUINT32 uNumber;      // SNMP_SYNTAX_UINT32
  77.                             // SNMP_SYNTAX_CNTR32
  78.                             // SNMP_SYNTAX_GAUGE32
  79.                             // SNMP_SYNTAX_TIMETICKS
  80.     smiCNTR64 hNumber;      // SNMP_SYNTAX_CNTR64 
  81.     smiOCTETS string;       // SNMP_SYNTAX_OCTETS
  82.                             // SNMP_SYNTAX_BITS
  83.                             // SNMP_SYNTAX_OPAQUE
  84.                             // SNMP_SYNTAX_IPADDR
  85.                             // SNMP_SYNTAX_NSAPADDR
  86.     smiOID    oid;          // SNMP_SYNTAX_OID 
  87.     smiBYTE   empty;        // SNMP_SYNTAX_NULL
  88.                             // SNMP_SYNTAX_NOSUCHOBJECT
  89.                             // SNMP_SYNTAX_NOSUCHINSTANCE
  90.                             // SNMP_SYNTAX_ENDOFMIBVIEW 
  91.     } value;      
  92. }                           smiVALUE,       FAR *smiLPVALUE;
  93. typedef const  smiVALUE                     FAR *smiLPCVALUE;
  94.  
  95. ///////////////////////////////////////////////////////////////////////////////
  96. //                                                                           //
  97. // ASN/BER Base Types                                                        //
  98. //                                                                           //
  99. ///////////////////////////////////////////////////////////////////////////////
  100.  
  101. #define ASN_UNIVERSAL               (0x00)
  102. #define ASN_APPLICATION             (0x40)
  103. #define ASN_CONTEXT                 (0x80)
  104. #define ASN_PRIVATE                 (0xC0)
  105. #define ASN_PRIMITIVE               (0x00)
  106. #define ASN_CONSTRUCTOR             (0x20)
  107.  
  108. ///////////////////////////////////////////////////////////////////////////////
  109. //                                                                           //
  110. // SNMP ObjectSyntax Values                                                  //
  111. //                                                                           //
  112. ///////////////////////////////////////////////////////////////////////////////
  113.                                     
  114. #define SNMP_SYNTAX_INT             (ASN_UNIVERSAL   | ASN_PRIMITIVE   | 0x02)
  115. #define SNMP_SYNTAX_BITS            (ASN_UNIVERSAL   | ASN_PRIMITIVE   | 0x03)
  116. #define SNMP_SYNTAX_OCTETS          (ASN_UNIVERSAL   | ASN_PRIMITIVE   | 0x04)
  117. #define SNMP_SYNTAX_NULL            (ASN_UNIVERSAL   | ASN_PRIMITIVE   | 0x05)
  118. #define SNMP_SYNTAX_OID             (ASN_UNIVERSAL   | ASN_PRIMITIVE   | 0x06)
  119. #define SNMP_SYNTAX_INT32           SNMP_SYNTAX_INT
  120.  
  121. #define SNMP_SYNTAX_SEQUENCE        (ASN_UNIVERSAL   | ASN_CONSTRUCTOR | 0x10)
  122.  
  123. #define SNMP_SYNTAX_IPADDR          (ASN_APPLICATION | ASN_PRIMITIVE   | 0x00)
  124. #define SNMP_SYNTAX_CNTR32          (ASN_APPLICATION | ASN_PRIMITIVE   | 0x01)
  125. #define SNMP_SYNTAX_GAUGE32         (ASN_APPLICATION | ASN_PRIMITIVE   | 0x02)
  126. #define SNMP_SYNTAX_TIMETICKS       (ASN_APPLICATION | ASN_PRIMITIVE   | 0x03)
  127. #define SNMP_SYNTAX_OPAQUE          (ASN_APPLICATION | ASN_PRIMITIVE   | 0x04)
  128. #define SNMP_SYNTAX_NSAPADDR        (ASN_APPLICATION | ASN_PRIMITIVE   | 0x05)
  129. #define SNMP_SYNTAX_CNTR64          (ASN_APPLICATION | ASN_PRIMITIVE   | 0x06)
  130. #define SNMP_SYNTAX_UINT32          (ASN_APPLICATION | ASN_PRIMITIVE   | 0x07)
  131.  
  132. #define SNMP_SYNTAX_NOSUCHOBJECT    (ASN_CONTEXT     | ASN_PRIMITIVE   | 0x00)
  133. #define SNMP_SYNTAX_NOSUCHINSTANCE  (ASN_CONTEXT     | ASN_PRIMITIVE   | 0x01)
  134. #define SNMP_SYNTAX_ENDOFMIBVIEW    (ASN_CONTEXT     | ASN_PRIMITIVE   | 0x02)
  135.  
  136. ///////////////////////////////////////////////////////////////////////////////
  137. //                                                                           //
  138. // SNMP Limits                                                               //
  139. //                                                                           //
  140. ///////////////////////////////////////////////////////////////////////////////
  141.  
  142. #define MAXOBJIDSIZE     128    // Max number of components in an OID   
  143. #define MAXOBJIDSTRSIZE  1408   // Max len of decoded MAXOBJIDSIZE OID   
  144.  
  145. ///////////////////////////////////////////////////////////////////////////////
  146. //                                                                           //
  147. // PDU Type Values                                                           //
  148. //                                                                           //
  149. ///////////////////////////////////////////////////////////////////////////////
  150.                                     
  151. #define SNMP_PDU_GET                (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0)
  152. #define SNMP_PDU_GETNEXT            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)
  153. #define SNMP_PDU_RESPONSE           (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)
  154. #define SNMP_PDU_SET                (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)
  155. #define SNMP_PDU_V1TRAP             (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)
  156. #define SNMP_PDU_GETBULK            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
  157. #define SNMP_PDU_INFORM             (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
  158. #define SNMP_PDU_TRAP               (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
  159.  
  160. ///////////////////////////////////////////////////////////////////////////////
  161. //                                                                           //
  162. // SNMPv1 Trap Values                                                        //
  163. //                                                                           //
  164. ///////////////////////////////////////////////////////////////////////////////
  165.                                     
  166. #define SNMP_TRAP_COLDSTART             0
  167. #define SNMP_TRAP_WARMSTART             1
  168. #define SNMP_TRAP_LINKDOWN              2
  169. #define SNMP_TRAP_LINKUP                3
  170. #define SNMP_TRAP_AUTHFAIL              4
  171. #define SNMP_TRAP_EGPNEIGHBORLOSS       5
  172. #define SNMP_TRAP_ENTERPRISESPECIFIC    6
  173.  
  174. ///////////////////////////////////////////////////////////////////////////////
  175. //                                                                           //
  176. // SNMP Error Codes Returned in Error_status Field of PDU                    //
  177. //                                                                           //
  178. ///////////////////////////////////////////////////////////////////////////////
  179.  
  180. #define SNMP_ERROR_NOERROR              0
  181. #define SNMP_ERROR_TOOBIG               1
  182. #define SNMP_ERROR_NOSUCHNAME           2
  183. #define SNMP_ERROR_BADVALUE             3
  184. #define SNMP_ERROR_READONLY             4
  185. #define SNMP_ERROR_GENERR               5
  186. #define SNMP_ERROR_NOACCESS             6
  187. #define SNMP_ERROR_WRONGTYPE            7
  188. #define SNMP_ERROR_WRONGLENGTH          8
  189. #define SNMP_ERROR_WRONGENCODING        9
  190. #define SNMP_ERROR_WRONGVALUE           10
  191. #define SNMP_ERROR_NOCREATION           11
  192. #define SNMP_ERROR_INCONSISTENTVALUE    12
  193. #define SNMP_ERROR_RESOURCEUNAVAILABLE  13
  194. #define SNMP_ERROR_COMMITFAILED         14
  195. #define SNMP_ERROR_UNDOFAILED           15
  196. #define SNMP_ERROR_AUTHORIZATIONERROR   16
  197. #define SNMP_ERROR_NOTWRITABLE          17
  198. #define SNMP_ERROR_INCONSISTENTNAME     18
  199.  
  200. ///////////////////////////////////////////////////////////////////////////////
  201. //                                                                           //
  202. // Values used to indicate entity/context translation modes                  //
  203. //                                                                           //
  204. ///////////////////////////////////////////////////////////////////////////////
  205.  
  206. #define SNMPAPI_TRANSLATED         0
  207. #define SNMPAPI_UNTRANSLATED_V1    1
  208. #define SNMPAPI_UNTRANSLATED_V2    2
  209.  
  210. ///////////////////////////////////////////////////////////////////////////////
  211. //                                                                           //
  212. // Values used to indicate "SNMP level" supported by the implementation      //
  213. //                                                                           //
  214. ///////////////////////////////////////////////////////////////////////////////
  215.  
  216. #define SNMPAPI_NO_SUPPORT         0
  217. #define SNMPAPI_V1_SUPPORT         1
  218. #define SNMPAPI_V2_SUPPORT         2
  219. #define SNMPAPI_M2M_SUPPORT        3
  220.  
  221. ///////////////////////////////////////////////////////////////////////////////
  222. //                                                                           //
  223. // Values used to indicate retransmit mode in the implementation             //
  224. //                                                                           //
  225. ///////////////////////////////////////////////////////////////////////////////
  226.  
  227. #define SNMPAPI_OFF                0    // Refuse support 
  228. #define SNMPAPI_ON                 1    // Request support 
  229.  
  230. ///////////////////////////////////////////////////////////////////////////////
  231. //                                                                           //
  232. // WinSNMP API Function Return Codes                                         //
  233. //                                                                           //
  234. ///////////////////////////////////////////////////////////////////////////////
  235.  
  236. typedef smiUINT32 SNMPAPI_STATUS;       // Used for function ret values 
  237.  
  238. #define SNMPAPI_FAILURE            0    // Generic error code 
  239. #define SNMPAPI_SUCCESS            1    // Generic success code
  240.  
  241. ///////////////////////////////////////////////////////////////////////////////
  242. //                                                                           //
  243. // WinSNMP API Error Codes (for SnmpGetLastError)                            //
  244. //                                                                           //
  245. ///////////////////////////////////////////////////////////////////////////////
  246.  
  247. #define SNMPAPI_ALLOC_ERROR        2    // Error allocating memory 
  248. #define SNMPAPI_CONTEXT_INVALID    3    // Invalid context parameter 
  249. #define SNMPAPI_CONTEXT_UNKNOWN    4    // Unknown context parameter 
  250. #define SNMPAPI_ENTITY_INVALID     5    // Invalid entity parameter 
  251. #define SNMPAPI_ENTITY_UNKNOWN     6    // Unknown entity parameter 
  252. #define SNMPAPI_INDEX_INVALID      7    // Invalid VBL index parameter 
  253. #define SNMPAPI_NOOP               8    // No operation performed 
  254. #define SNMPAPI_OID_INVALID        9    // Invalid OID parameter 
  255. #define SNMPAPI_OPERATION_INVALID  10   // Invalid/unsupported operation 
  256. #define SNMPAPI_OUTPUT_TRUNCATED   11   // Insufficient output buf len 
  257. #define SNMPAPI_PDU_INVALID        12   // Invalid PDU parameter 
  258. #define SNMPAPI_SESSION_INVALID    13   // Invalid session parameter 
  259. #define SNMPAPI_SYNTAX_INVALID     14   // Invalid syntax in smiVALUE 
  260. #define SNMPAPI_VBL_INVALID        15   // Invalid VBL parameter 
  261. #define SNMPAPI_MODE_INVALID       16   // Invalid mode parameter 
  262. #define SNMPAPI_SIZE_INVALID       17   // Invalid size/length parameter 
  263. #define SNMPAPI_NOT_INITIALIZED    18   // SnmpStartup failed/not called 
  264. #define SNMPAPI_MESSAGE_INVALID    19   // Invalid SNMP message format 
  265. #define SNMPAPI_HWND_INVALID       20   // Invalid Window handle 
  266. #define SNMPAPI_OTHER_ERROR        99   // For internal/undefined errors 
  267. #define SNMPAPI_TL_NOT_INITIALIZED 100  // TL not initialized 
  268. #define SNMPAPI_TL_NOT_SUPPORTED   101  // TL does not support protocol 
  269. #define SNMPAPI_TL_NOT_AVAILABLE   102  // Network subsystem has failed 
  270. #define SNMPAPI_TL_RESOURCE_ERROR  103  // TL resource error 
  271. #define SNMPAPI_TL_UNDELIVERABLE   104  // Destination unreachable 
  272. #define SNMPAPI_TL_SRC_INVALID     105  // Source endpoint invalid 
  273. #define SNMPAPI_TL_INVALID_PARAM   106  // Input parameter invalid 
  274. #define SNMPAPI_TL_IN_USE          107  // Source endpoint in use 
  275. #define SNMPAPI_TL_TIMEOUT         108  // No response before timeout 
  276. #define SNMPAPI_TL_PDU_TOO_BIG     109  // PDU too big for send/receive 
  277. #define SNMPAPI_TL_OTHER           199  // Undefined TL error 
  278.  
  279. ///////////////////////////////////////////////////////////////////////////////
  280. //                                                                           //
  281. // WinSNMP API Function Prototypes                                           //
  282. //                                                                           //
  283. ///////////////////////////////////////////////////////////////////////////////
  284.  
  285. #define IN                  
  286. #define OUT                 
  287. #define SNMPAPI_CALL WINAPI 
  288.  
  289. typedef SNMPAPI_STATUS (CALLBACK *SNMPAPI_CALLBACK)(
  290.                             IN HSNMP_SESSION hSession,
  291.                             IN HWND hWnd,
  292.                             IN UINT wMsg,
  293.                             IN WPARAM wParam,
  294.                             IN LPARAM lParam,
  295.                             IN LPVOID lClientpData
  296.                             );
  297.  
  298. SNMPAPI_STATUS 
  299. SNMPAPI_CALL   
  300. SnmpGetTranslateMode(
  301.     OUT smiLPUINT32 nTranslateMode
  302.     );
  303.  
  304. SNMPAPI_STATUS 
  305. SNMPAPI_CALL   
  306. SnmpSetTranslateMode(
  307.     IN smiUINT32 nTranslateMode
  308.     );
  309.  
  310. SNMPAPI_STATUS 
  311. SNMPAPI_CALL   
  312. SnmpGetRetransmitMode(
  313.     OUT smiLPUINT32 nRetransmitMode
  314.     );
  315.  
  316. SNMPAPI_STATUS 
  317. SNMPAPI_CALL   
  318. SnmpSetRetransmitMode(
  319.     IN smiUINT32 nRetransmitMode
  320.     );
  321.  
  322. SNMPAPI_STATUS 
  323. SNMPAPI_CALL   
  324. SnmpGetTimeout(
  325.     IN HSNMP_ENTITY hEntity,
  326.     OUT smiLPTIMETICKS nPolicyTimeout,
  327.     OUT smiLPTIMETICKS nActualTimeout
  328.     );
  329.  
  330. SNMPAPI_STATUS 
  331. SNMPAPI_CALL   
  332. SnmpSetTimeout(
  333.     IN HSNMP_ENTITY hEntity,
  334.     IN smiTIMETICKS nPolicyTimeout
  335.     );
  336.  
  337. SNMPAPI_STATUS 
  338. SNMPAPI_CALL   
  339. SnmpGetRetry(
  340.     IN HSNMP_ENTITY hEntity,
  341.     OUT smiLPUINT32 nPolicyRetry,
  342.     OUT smiLPUINT32 nActualRetry
  343.     );
  344.  
  345. SNMPAPI_STATUS 
  346. SNMPAPI_CALL   
  347. SnmpSetRetry(
  348.     IN HSNMP_ENTITY hEntity,
  349.     IN smiUINT32 nPolicyRetry
  350.     );
  351.  
  352. SNMPAPI_STATUS 
  353. SNMPAPI_CALL   
  354. SnmpStartup(
  355.     OUT smiLPUINT32 nMajorVersion,
  356.     OUT smiLPUINT32 nMinorVersion,
  357.     OUT smiLPUINT32 nLevel,
  358.     OUT smiLPUINT32 nTranslateMode,
  359.     OUT smiLPUINT32 nRetransmitMode
  360.     );
  361.  
  362. SNMPAPI_STATUS 
  363. SNMPAPI_CALL   
  364. SnmpCleanup(
  365.     );
  366.  
  367. HSNMP_SESSION  
  368. SNMPAPI_CALL   
  369. SnmpOpen(
  370.     IN HWND hWnd,
  371.     IN UINT wMsg
  372.     );
  373.  
  374. HSNMP_SESSION  
  375. SNMPAPI_CALL   
  376. SnmpCreateSession(
  377.     IN HWND hWnd,
  378.     IN UINT wMsg,
  379.     IN SNMPAPI_CALLBACK fCallBack,
  380.     IN LPVOID lpClientData
  381.     );
  382.  
  383. SNMPAPI_STATUS 
  384. SNMPAPI_CALL   
  385. SnmpClose(
  386.     IN HSNMP_SESSION session
  387.     );
  388.  
  389. SNMPAPI_STATUS 
  390. SNMPAPI_CALL   
  391. SnmpSendMsg(
  392.     IN HSNMP_SESSION session,
  393.     IN HSNMP_ENTITY srcEntity,
  394.     IN HSNMP_ENTITY dstEntity,
  395.     IN HSNMP_CONTEXT context,
  396.     IN HSNMP_PDU PDU
  397.     );
  398.  
  399. SNMPAPI_STATUS 
  400. SNMPAPI_CALL   
  401. SnmpRecvMsg(
  402.     IN HSNMP_SESSION session,
  403.     OUT LPHSNMP_ENTITY srcEntity,
  404.     OUT LPHSNMP_ENTITY dstEntity,
  405.     OUT LPHSNMP_CONTEXT  context,
  406.     OUT LPHSNMP_PDU PDU
  407.     );
  408.  
  409. SNMPAPI_STATUS 
  410. SNMPAPI_CALL   
  411. SnmpRegister(
  412.     IN HSNMP_SESSION session,
  413.     IN HSNMP_ENTITY srcEntity,
  414.     IN HSNMP_ENTITY dstEntity,
  415.     IN HSNMP_CONTEXT context,
  416.     IN smiLPCOID notification,
  417.     IN smiUINT32 state
  418.     );
  419.  
  420. HSNMP_ENTITY   
  421. SNMPAPI_CALL   
  422. SnmpStrToEntity(
  423.     IN HSNMP_SESSION session,
  424.     IN LPCSTR string
  425.     );
  426.  
  427. SNMPAPI_STATUS 
  428. SNMPAPI_CALL   
  429. SnmpEntityToStr(
  430.     IN HSNMP_ENTITY entity,
  431.     IN smiUINT32 size,
  432.     OUT LPSTR string
  433.     );
  434.  
  435. SNMPAPI_STATUS 
  436. SNMPAPI_CALL   
  437. SnmpFreeEntity(
  438.     IN HSNMP_ENTITY entity
  439.     );
  440.  
  441. HSNMP_CONTEXT  
  442. SNMPAPI_CALL   
  443. SnmpStrToContext(
  444.     IN HSNMP_SESSION session,
  445.     IN smiLPCOCTETS string
  446.     );
  447.  
  448. SNMPAPI_STATUS 
  449. SNMPAPI_CALL   
  450. SnmpContextToStr(
  451.     IN HSNMP_CONTEXT context,
  452.     OUT smiLPOCTETS string
  453.     );
  454.  
  455. SNMPAPI_STATUS 
  456. SNMPAPI_CALL   
  457. SnmpFreeContext(
  458.     IN HSNMP_CONTEXT context
  459.     );
  460.  
  461. HSNMP_PDU      
  462. SNMPAPI_CALL   
  463. SnmpCreatePdu(
  464.     IN HSNMP_SESSION session,
  465.     IN smiINT PDU_type,
  466.     IN smiINT32 request_id,
  467.     IN smiINT error_status,
  468.     IN smiINT error_index,
  469.     IN HSNMP_VBL varbindlist
  470.     );
  471.  
  472. SNMPAPI_STATUS 
  473. SNMPAPI_CALL   
  474. SnmpGetPduData(
  475.     IN HSNMP_PDU PDU,
  476.     OUT smiLPINT PDU_type,
  477.     OUT smiLPINT32 request_id,
  478.     OUT smiLPINT error_status,
  479.     OUT smiLPINT error_index,
  480.     OUT LPHSNMP_VBL varbindlist
  481.     );
  482.  
  483. SNMPAPI_STATUS 
  484. SNMPAPI_CALL   
  485. SnmpSetPduData(
  486.     IN HSNMP_PDU PDU,
  487.     IN const smiINT FAR *PDU_type,
  488.     IN const smiINT32 FAR *request_id,
  489.     IN const smiINT FAR *non_repeaters,
  490.     IN const smiINT FAR *max_repetitions,
  491.     IN const HSNMP_VBL FAR *varbindlist
  492.     );
  493.  
  494. HSNMP_PDU      
  495. SNMPAPI_CALL   
  496. SnmpDuplicatePdu(
  497.     IN HSNMP_SESSION session,
  498.     IN HSNMP_PDU PDU
  499.     );
  500.  
  501. SNMPAPI_STATUS 
  502. SNMPAPI_CALL   
  503. SnmpFreePdu(
  504.     IN HSNMP_PDU PDU
  505.     );
  506.  
  507. HSNMP_VBL      
  508. SNMPAPI_CALL   
  509. SnmpCreateVbl(
  510.     IN HSNMP_SESSION session,
  511.     IN smiLPCOID name,
  512.     IN smiLPCVALUE value
  513.     );
  514.  
  515. HSNMP_VBL      
  516. SNMPAPI_CALL   
  517. SnmpDuplicateVbl(
  518.     IN HSNMP_SESSION session,
  519.     IN HSNMP_VBL vbl
  520.     );
  521.  
  522. SNMPAPI_STATUS 
  523. SNMPAPI_CALL   
  524. SnmpFreeVbl(
  525.     IN HSNMP_VBL vbl
  526.     );
  527.  
  528. SNMPAPI_STATUS 
  529. SNMPAPI_CALL   
  530. SnmpCountVbl(
  531.     IN HSNMP_VBL vbl
  532.     );
  533.  
  534. SNMPAPI_STATUS 
  535. SNMPAPI_CALL   
  536. SnmpGetVb(
  537.     IN HSNMP_VBL vbl,
  538.     IN smiUINT32 index,
  539.     OUT smiLPOID name,
  540.     OUT smiLPVALUE value
  541.     );
  542.  
  543. SNMPAPI_STATUS 
  544. SNMPAPI_CALL   
  545. SnmpSetVb(
  546.     IN HSNMP_VBL vbl,
  547.     IN smiUINT32 index,
  548.     IN smiLPCOID name,
  549.     IN smiLPCVALUE value
  550.     );
  551.  
  552. SNMPAPI_STATUS 
  553. SNMPAPI_CALL   
  554. SnmpDeleteVb(
  555.     IN HSNMP_VBL vbl,
  556.     IN smiUINT32 index
  557.     );
  558.  
  559. SNMPAPI_STATUS 
  560. SNMPAPI_CALL   
  561. SnmpGetLastError(
  562.     IN HSNMP_SESSION session
  563.     );
  564.  
  565. SNMPAPI_STATUS 
  566. SNMPAPI_CALL   
  567. SnmpStrToOid(
  568.     IN LPCSTR string,
  569.     OUT smiLPOID dstOID
  570.     );
  571.  
  572. SNMPAPI_STATUS 
  573. SNMPAPI_CALL   
  574. SnmpOidToStr(
  575.     IN smiLPCOID srcOID,
  576.     IN smiUINT32 size,
  577.     OUT LPSTR string
  578.     );
  579.  
  580. SNMPAPI_STATUS 
  581. SNMPAPI_CALL   
  582. SnmpOidCopy(
  583.     IN smiLPCOID srcOID,
  584.     OUT smiLPOID dstOID
  585.     );
  586.  
  587. SNMPAPI_STATUS 
  588. SNMPAPI_CALL   
  589. SnmpOidCompare(
  590.     IN smiLPCOID xOID,
  591.     IN smiLPCOID yOID,
  592.     IN smiUINT32 maxlen,
  593.     OUT smiLPINT result
  594.     );
  595.  
  596. SNMPAPI_STATUS 
  597. SNMPAPI_CALL   
  598. SnmpEncodeMsg(
  599.     IN HSNMP_SESSION session,
  600.     IN HSNMP_ENTITY srcEntity,
  601.     IN HSNMP_ENTITY dstEntity,
  602.     IN HSNMP_CONTEXT context,
  603.     IN HSNMP_PDU pdu,
  604.     OUT smiLPOCTETS msgBufDesc
  605.     );
  606.  
  607. SNMPAPI_STATUS 
  608. SNMPAPI_CALL   
  609. SnmpDecodeMsg(
  610.     IN HSNMP_SESSION session,
  611.     OUT LPHSNMP_ENTITY srcEntity,
  612.     OUT LPHSNMP_ENTITY dstEntity,
  613.     OUT LPHSNMP_CONTEXT context,
  614.     OUT LPHSNMP_PDU pdu,
  615.     IN smiLPCOCTETS msgBufDesc
  616.     );
  617.  
  618. SNMPAPI_STATUS 
  619. SNMPAPI_CALL   
  620. SnmpFreeDescriptor(
  621.     IN smiUINT32 syntax,
  622.     IN smiLPOPAQUE descriptor
  623.     );
  624.  
  625. #ifdef __cplusplus
  626. }
  627. #endif
  628.  
  629. #pragma option pop /*P_O_Pop*/
  630. #endif // _INC_WINSNMP 
  631.  
  632.