ネットワーク管理プロトコル SNMP SNMP Functions 開発


SDK HOME > Misc. > SNMP

SNMP Functions 開発

Windows NT/2000/XPでSNMPマネージャ、SNMPエージェント(SNMP拡張エージェント)を開発する場合、2種類のAPIライブラリが存在します。また、VisualStudio.NET では、TCP/IPアプリケーションが容易に開発できるため、SNMPプロトコルを理解していれば、APIライブラリを使用しなくてもSNMPマネージャ、エージェントが開発できます。

まず、ここでは APIライブラリの1つである「SNMP Functions」について説明します。SNMP Functionsは Platform SDK に含まれるAPIライブラリで、Windows NT 4.0の時代からあるSNMP開発用のライブラリなのですが、一部のAPIではSNMPv1仕様のSNMP拡張エージェント・SNMPマネージャ開発のみサポートしています。SNMPv1仕様だけをサポートするのであれば SNMP Functionsを使用したほうが簡単にプログラミングできます。

SNMP Functionsは、「SNMP拡張エージェント API」「SNMPマネージャAPI」「SNMPユーティリティAPI」の3つのグループに分類されています。ユーティリティAPIは共通で使用し、開発する対象により使うAPIが異なります。

SNMP拡張エージェント API

API名説 明
SnmpExtensionCloseSNMP ServiceがSNMP拡張エージェントDLLに対して、リソースの解放と操作の終了を要求する際に呼び出すエントリです。
SnmpExtensionInitSNMP ServiceがSNMP拡張エージェントDLLに対して、初期化を要求する際に呼び出すエントリです。SNMP拡張エージェントDLLが対象とするMIBのOIDなどを設定して、SNMP Serviceに通知します。
SnmpExtensionInitExSNMP ServiceがSNMP拡張エージェントDLLに対して、初期化を要求する際に呼び出すエントリです。
SnmpExtensionMonitorSNMP ServiceがSNMP拡張エージェントDLLに対して、内部カウンタやパラメータなどを提供させる際に呼び出すエントリです。このAPI(エントリ)は必須ではありません。
SnmpExtensionQuerySNMP ServiceがSNMP拡張エージェントDLLに対して、SNMP マネージャからのGetRequest/GetNextRequest/SetRequestが要求された際に呼び出すエントリです。このAPI(エントリ)は、SNMPv1のみをサポートしています。
SnmpExtensionQueryExSNMP ServiceがSNMP拡張エージェントDLLに対して、SNMP マネージャからのGetRequest/GetNextRequest/SetRequestが要求された際に呼び出すエントリです。このAPI(エントリ)は、SNMPv1とSNMPv2の両方をサポートしています。
SnmpExtensionTrapSnmpExtensionInitで作成されたイベントがセットされた際に、SNMP Serviceが呼び出すエントリです。Trap情報を設定して呼び元(SNMP Service)に返却すると、SNMP Trapメッセージが送信されます。このAPI(エントリ)は、SNMPv1のみをサポートしています。


SNMPマネージャAPI

API名説 明
SnmpMgrClose通信ソケットと指定されたSNMPセッションに関連したデータ構造をクローズします。
SnmpMgrCtlSNMPセッションに関連した操作パラメータを設定します。
SnmpMgrGetTrapSNMP Trapメッセージを受信します。
SnmpMgrGetTrapExSNMP Trapメッセージを受信後、付加的な情報を取得します。
SnmpMgrOidToStrOIDを文字列に変換します。
SnmpMgrOpen通信ソケットと関連データ構造を初期化します。
SnmpMgrRequest指定された操作(GetRequest/GetNextRequest/SetRequest)の実行を要求します。
SnmpMgrStrToOid文字列をOIDに変換します。
SnmpMgrTrapListenSNMP Trapメッセージの受信を受け付けます。


SNMPユーティリティAPI

API名説 明
SnmpSvcGetUptime SNMP Serviceが初期化されてから実行していた時間(100分の1秒単位)を取得します。
SnmpSvcSetLogLevel SNMP ServiceとSNMP拡張エージェントからのデバッグ出力の詳細のレベルを設定します。
SnmpSvcSetLogType SNMP ServiceとSNMP拡張エージェントからのデバッグ出力のタイプを設定します。
SnmpUtilAsnAnyCpy 変数バインディングをコピーします。
SnmpUtilAsnAnyFree AsnAny構造体のメモリを解放します。
SnmpUtilDbgPrint SNMP Serviceのデバッグ出力を有効(または無効)にします。
SnmpUtilIdsToA OID(整数型)をNULLで終了する文字列に変換します。
SnmpUtilMemAlloc プロセスヒープからダイナミックメモリを割り当てます。
SnmpUtilMemFree ダイナミックメモリを解放します。
SnmpUtilMemReAlloc ダイナミックメモリを再割り当てします。
SnmpUtilOctetsCmp 2つのOCTET STRING型のデータを比較します。
SnmpUtilOctetsCpy OCTET STRING型のデータをコピーします。
SnmpUtilOctetsFree OCTET STRING型のデータエリアを解放します。
SnmpUtilOctetsNCmp 2つのOCTET STRING型のデータを指定サイズ分、比較します。
SnmpUtilOidAppend 元のOIDに、指定のOIDを追加します。
SnmpUtilOidCmp 2つのOIDを比較します。
SnmpUtilOidCpy OIDをコピーします。
SnmpUtilOidFree OIDのデータエリアを解放します。
SnmpUtilOidNCmp 2つのOIDを指定サイズ分、比較します。
SnmpUtilOidToA OID(OID型)をNULLで終了する文字列に変換します。
SnmpUtilPrintAsnAny AsnAny構造体型のデータを標準出力に表示します。
SnmpUtilPrintOid OID型のデータを標準出力に表示します。
SnmpUtilVarBindCpy 変数バインディングをコピーします。
SnmpUtilVarBindListCpy 変数バインディングリストをコピーします。
SnmpUtilVarBindFree 変数バインディングのデータエリアを解放します。
SnmpUtilVarBindListFree 変数バインディングリストのデータエリアを解放します。


  WinSnmpAPI(プログラム開発)


Misc.
SNMP
  プロトコル
      RFC
      構成要素
      SNMPv1
      SNMPv2
      MIB概要
      MIB階層
  開発
      Windows実装
      SNMP Functions
      WinSnmpAPI
 

イベントログ管理ツール
イベントログ監視と管理には...

イベントログ分析ツール
サーバーのログを採るだけで満足ですか?


ついに手数料0円に!■伊藤忠グループ・FXプライム■

レンタルサーバのファーストサーバ
ファーストサーバ

SDK HOME > Misc. > SNMP