<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=408910&amp;view=findpost&amp;p=3672340</guid>
        <pubDate>Tue, 31 May 2016 04:09:15 +0000</pubDate>
        <title>SNMP Extension agent</title>
        <link>https://forum.sources.ru/index.php?showtopic=408910&amp;view=findpost&amp;p=3672340</link>
        <description><![CDATA[ldem0n: Создаю агента используя <a class='tag-url' href='http://www.codeproject.com/Articles/9024/How-to-develop-a-SNMP-extension-agent-DLL' target='_blank'>http://www.codeproject.com/Articles/9024/H...nsion-agent-DLL</a> <br>
<br>
Проблема заключается в том что при запуске службы моя DLL выгружается после загрузки функции SnmpExtensionInit в логах винды также ошибки.<br>
<br>
function SnmpExtensionInit(dwUptimeReference: DWORD;var phSubagentTrapEvent: PHandle;<br>
 var pFirstSupportedRegion: PAsnObjectIdentifier): BOOL; export; stdcall;<br>
begin<br>
  g_hSimulateTrap := CreateEvent(nil, false, false,nil);<br>
<br>
  pFirstSupportedRegion := @MIB_OidPrefix;<br>
  phSubagentTrapEvent := @g_hSimulateTrap;<br>
<br>
  g_hTrapGenThread := CreateThread(nil,0, @TrapGenThread,nil,0,ThreadId1);<br>
<br>
  g_dwStartTime := GetTickCount();<br>
<br>
  Result := SNMPAPI_NOERROR;<br>
end;<br>
<br>
если экспортировать только одну функцию SnmpExtensionInit DLL выгружается без ошибок, при добавлении SnmpExtensionQuery в логах винды сразу ошибка &quot;Код исключения: 0xc0000005 Смещение ошибки: 0x00729e62&quot;<br>
<br>
function SnmpExtensionQuery(bPduType: BYTE; pVarBindList: PSnmpVarBindList;<br>
    pErrorStatus, pErrorIndex: PAsnInteger32): BOOL; export; stdcall;<br>
<br>
SnmpExtensionQuery пока пустая <br>
<br>
exports<br>
  SnmpExtensionInit,<br>
  SnmpExtensionQuery;<br>
//  SnmpExtensionClose;<br>
//  SnmpExtensionTrap;<br>
begin<br>
    New(MIB_OidPrefix);<br>
    MIB_OidPrefix^.idLength := Length(g_unMyOIDPrefix);<br>
    MIB_OidPrefix^.ids :=@g_unMyOIDPrefix;<br>
    ThreadId1 :=0;<br>
end;]]></description>
        <author>ldem0n</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	