【发布时间】:2020-06-12 10:10:08
【问题描述】:
我开发了一个自定义的snmp 扩展代理来与Windows Snmp service 一起工作。我已经使用微软的snmp.h 提供的接口在C++ 中实现了,我正在创建一个64 位dll 用作扩展代理。
为了安装这个 dll 作为扩展代理,我在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents 下添加了一个注册表:
MyAgent REG_SZ SOFTWARE\MyAgent\CurrentVersion
在HKEY_LOCAL_MACHINE\SOFTWARE\MyAgent\CurrentVersion 下,我创建了另一个注册表,将 dll 的路径指定为:
Pathname REG_EXPAND_SZ C:\Program Files\testing\MyAgent.dll
当我在系统事件日志中执行此操作时,我不断收到 The SNMP Service is ignoring extension agent dll C:\Program Files\testing\MyAgent.dll because it is missing or misconfigured.
代理是无陷阱代理。它公开了来自snmp.h 的SnmpExtensionInit 和SnmpExtensionQuery 函数。我不知道有什么乱七八糟的。我需要一个 32 位的 dll 吗?互联网上的所有资源都非常古老,请参阅Windows NT。我需要在Windows 10 和Windows server 2016 等较新的操作系统上配置它。任何建议都会有所帮助。
对于同样的错误也有类似的问题,但它们都与 32 位 dll 的迁移有关。我从 64 位开始。
【问题讨论】:
标签: c++ windows operating-system snmp