首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与开发SNMP扩展代理DLL有关吗?

与开发SNMP扩展代理DLL有关吗?
EN

Stack Overflow用户
提问于 2011-07-16 18:47:50
回答 1查看 1.1K关注 0票数 1

我按照下面的教程创建扩展代理DLL。下面是我的教程:http://www.codeproject.com/KB/IP/SNMP_Agent_DLL__Part1_.aspx

根据本教程,除其他外,我必须至少使用这1个方法签名:

代码语言:javascript
复制
BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(BYTE bPduType, 
                SnmpVarBindList *pVarBindList, 
                AsnInteger32 *pErrorStatus, 
                AsnInteger32 *pErrorIndex)

问题在于SnmpVarBindList *pVarBindList参数。我准备在SnmpVarBindList数据类型中插入以下数据,例如“关于”、“名称”、“年龄”,然后将其传递给上面的方法.

但我不确定如何创建SnmpVarBindList数据类型列表并将以下数据(“关于”、“名称”、“年龄”)插入到列表中??

代码语言:javascript
复制
MIB_ENTRY g_MyMibTable[] = {
{   
    {OID_SIZEOF(g_unAboutOid),g_unAboutOid},
    &g_szAbout,
    "About",
    ASN_OCTETSTRING,
    SNMP_ACCESS_READ_ONLY,
    &g_MyMibTable[1]
},
{
    {OID_SIZEOF(g_unNameOid),g_unNameOid},
    &g_szName,
    "Name",
    ASN_OCTETSTRING,
    SNMP_ACCESS_READ_WRITE,
    &g_MyMibTable[2]
},
{
    {OID_SIZEOF(g_unAgeOid),g_unAgeOid},
    &g_asnIntAge,
    "Age",
    ASN_INTEGER,
    SNMP_ACCESS_READ_WRITE,
    NULL
}

};

========================================================================================== // struct定义供您参考:

代码语言:javascript
复制
typedef struct {
AsnObjectName    name;
AsnObjectSyntax  value;

} SnmpVarBind;

代码语言:javascript
复制
typedef struct {
SnmpVarBind * list;
UINT          len;

} SnmpVarBindList;

提供的任何指南或代码示例将不胜感激,我是C++的新手。

由衷地,

EN

回答 1

Stack Overflow用户

发布于 2011-07-18 15:04:13

这是你需要的。

代码语言:javascript
复制
/* Définitions of vars leaves.
    Terminal zero is needed
*/       
UINT MIB_About[]     = { 2, 1, 0 };
UINT MIB_Name[]      = { 2, 2, 0 };
UINT MIB_Age[]       = { 2, 3, 0 };

/* Physical (Har-coded) data of the MIB
*/
char       MIB_AboutStor[]     = "The about text";
char       MIB_NameStor[]      = "The Name text";
AsnInteger MIB_AgeStor         = 20;
extern MIB_ENTRY Mib[];
extern UINT      MIB_num_variables;

/* initialisation du modèle d'accès aux variables de la MIB 
*/
MIB_ENTRY Mib[] = {
      { { OID_SIZEOF(MIB_About), MIB_About },
        &MIB_AboutStor, ASN_RFC1213_DISPSTRING,
        MIB_ACCESS_READ, MIB_leaf_func, &Mib[1] },

      { { OID_SIZEOF(MIB_Name), MIB_Name },
        &MIB_NameStor, ASN_RFC1213_DISPSTRING,
        MIB_ACCESS_READ, MIB_leaf_func, &Mib[2] },

      { { OID_SIZEOF(MIB_Age), MIB_Age },
        &MIB_AgeStor, ASN_INTEGER,
        MIB_ACCESS_READWRITE, MIB_control_func, NULL }
      };

UINT MIB_num_variables = sizeof Mib / sizeof( MIB_ENTRY );

您可以在Microsoft示例中完成MIB_leaf_funcMIB_control_func

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6719454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档