SnmpGetVb 関数 (winsnmp.h)

[SNMP は、[要件] セクションで指定したオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。

WinSNMP アプリケーションは SnmpGetVb 関数を呼び出して、変数バインディング リストから情報を取得します。 この WinSNMP 関数は、 index パラメーターで指定された変数バインド エントリから変数名とその関連値を取得します。

構文

SNMPAPI_STATUS SNMPAPI_CALL SnmpGetVb(
  [in]  HSNMP_VBL  vbl,
  [in]  smiUINT32  index,
  [out] smiLPOID   name,
  [out] smiLPVALUE value
);

パラメーター

[in] vbl

取得する変数バインド リストを処理します。

[in] index

取得する変数バインド エントリを識別する符号なし long 整数変数を指定します。 この変数には、変数バインド リスト内の変数バインド エントリの位置が含まれます。

このパラメーターの有効な値は 1 から n の範囲です。1 は変数バインド リストの最初の変数バインド エントリを示し、n はリスト内のエントリの合計数です。 詳細については、次の「備考」セクションを参照してください。

[out] name

変数バインド エントリの変数名を受け取る smiOID 構造体へのポインター。

[out] value

name パラメーターで識別される変数に関連付けられた値を受け取る smiVALUE 構造体へのポインター。

関数が成功した場合、value パラメーターが指す構造体の構文メンバーには、次のいずれかの構文データ型を指定できます。 詳細については、RFC 1902「Simple Network Management Protocol (SNMPv2) のバージョン 2 の管理情報の構造」を参照してください。

構文データ型 説明
SNMP_SYNTAX_INT
32 ビット符号付き整数変数を示します。
SNMP_SYNTAX_OCTETS
バイナリ データまたはテキスト データであるオクテット文字列変数を示します。
SNMP_SYNTAX_NULL
NULL 値を示します。
SNMP_SYNTAX_OID
最大 128 個のサブ識別子を持つ割り当てられた名前であるオブジェクト識別子変数を示します。
SNMP_SYNTAX_INT32
32 ビット符号付き整数変数を示します。
SNMP_SYNTAX_IPADDR
32 ビットのインターネット アドレス変数を示します。 SNMPv1 PDU トラップ形式を使用して IPv6 アドレスを表す場合、この値は 0.0.0.0 です。
SNMP_SYNTAX_CNTR32
最大値 (2^32) – 1 に達するまで増加するカウンター変数を示します。
SNMP_SYNTAX_GAUGE32
増減できるが最大値を超えない負以外の整数であるゲージ変数を示します。
SNMP_SYNTAX_TIMETICKS
最大値 (2^32) – 1 に達するまでの時間を 1 秒の 100 分の 1 で測定するカウンター変数を示します。 これは、特定のタイマー イベントを基準とする負以外の整数です。
SNMP_SYNTAX_OPAQUE
この型は下位互換性を提供し、新しいオブジェクト型には使用しないでください。 任意の抽象構文表記法 1 (ASN.1) 構文を渡す機能がサポートされています。
SNMP_SYNTAX_CNTR64
最大値 (2^64) – 1 に達するまで増加するカウンター変数を示します。
SNMP_SYNTAX_UINT32
32 ビット符号なし整数変数を示します。
SNMP_SYNTAX_NOSUCHOBJECT
エージェントが変数に対応するオブジェクト型をサポートしていないことを示します。
SNMP_SYNTAX_NOSUCHINSTANCE
操作にオブジェクト インスタンスが存在しないことを示します。
SNMP_SYNTAX_ENDOFMIBVIEW
WinSNMP アプリケーションが、エージェントがサポートする MIB ツリーの末尾を超えるオブジェクト識別子を参照しようとしていることを示します。

戻り値

関数が成功した場合、戻り値はSNMPAPI_SUCCESS。

関数が失敗した場合、戻り値はSNMPAPI_FAILURE。 拡張エラー情報を取得するには、 SnmpGetLastError を呼び出します。 SnmpGetLastError 関数は、次のいずれかのエラーを返すことができます。

リターン コード 説明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 関数が正常に完了しませんでした。
SNMPAPI_ALLOC_ERROR
メモリ割り当て中にエラーが発生しました。
SNMPAPI_INDEX_INVALID
index パラメーターが無効です。
SNMPAPI_VBL_INVALID
vbl パラメーターが無効です。
SNMPAPI_OTHER_ERROR
不明または未定義のエラーが発生しました。

解説

最後の 3 つの構文の種類では、SNMP バージョン 2C (SNMPv2C) フレームワークでの例外条件について説明します。

SnmpGetVb 関数は、name パラメーターが指す構造体の変数バインド エントリの変数名を返します。 value パラメーターによって指される構造体内の変数の関連付けられた を返します。

入力時に、SnmpGetVb 関数は、それぞれ名前パラメーターとパラメーターによって指される smiOID 構造体と smiVALUE 構造体のメンバーを無視します。 関数が正常に完了すると、Microsoft WinSNMP 実装によってメンバーが上書きされます。

インデックス パラメーターに使用する WinSNMP アプリケーションの有効な値は次のとおりです。

  • SnmpCountVbl 関数の呼び出しからの戻り値
  • SnmpRecvMsg 関数の呼び出しによって返されるSNMP_PDU_RESPONSE プロトコル・データ・ユニット (PDU) のエラー索引フィールド
WinSNMP アプリケーションは、snmpFreeDescriptor 関数を呼び出して、name パラメーターによって指される smiOID 構造体の ptr メンバーに割り当てられたリソースを解放する必要があります。 また、アプリケーションは SnmpFreeDescriptor 関数を呼び出して、次の条件で value パラメーターによって指される smiVALUE 構造体に割り当てられたリソースを解放する必要があります。 メンバーが smiOCTETS または smiOID 構造体である場合、アプリケーションは SnmpFreeDescriptor を呼び出して、これらの構造体に割り当てられたリソースを解放する必要があります。 詳細については、「WinSNMP データ管理の概念」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winsnmp.h
Library Wsnmp32.lib
[DLL] Wsnmp32.dll

関連項目

SnmpCountVbl

SnmpFreeDescriptor

SnmpRecvMsg

WinSNMP 関数

WinSNMP API の概要

smiOCTETS

smiOID

smiVALUE