SnmpExtensionQuery 関数 (snmp.h)
[SNMP は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。
Microsoft SNMP サービスは SnmpExtensionQuery 関数を呼び出して、1 つ以上の SNMP 拡張エージェントの登録済み MIB サブツリー内の変数を含む SNMP 要求を解決します。 この関数は、SNMP 拡張エージェント API の要素です。
構文
BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(
[in] BYTE bPduType,
[in, out] SnmpVarBindList *pVarBindList,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
パラメーター
[in] bPduType
SNMP バージョン 1 (SNMPv1) PDU 要求の種類を指定します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
指定した変数の値を取得します。 |
|
指定した変数の辞書式後続の値または値を取得します。 |
|
特定の変数内に値を書き込みます。 |
PDU 要求の種類の名前が変更されていることに注意してください。 詳細については、「 SNMP 変数の種類」および「PDU の種類の要求」を参照してください。
[in, out] pVarBindList
変数バインド リストへのポインター。
[out] pErrorStatus
エラー状態の結果が返される変数へのポインター。 このパラメーターには、SNMPv1 で定義されている次のいずれかの値を指定できます。
[out] pErrorIndex
エラー インデックスの結果が返される変数へのポインター。
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。
注釈
SNMP サービスは、SNMP PDU 要求を受信すると、 SnmpExtensionQuery 関数を呼び出して要求を処理します。 拡張エージェントは、RFC 1157 の規則に従って、変数バインディングを解決するか、エラーを生成する必要があります。
拡張エージェントが Get Next 要求で変数バインディングを解決できない場合は、SnmpVarBind 構造体の name フィールドを、現在サポートされている MIB サブツリー ビューの直後にあるオブジェクト識別子の値に変更する必要があります。 たとえば、拡張機能エージェントでビュー ".1.3.6.1.4.1.77.1" がサポートされている場合、".1.3.6.1.4.1.77.1.5.1" の Get Next 要求は".1.3.6.1.4.1.7.7.2" という 変更された名前 フィールドになります。 これにより、SNMP サービスは、他の拡張エージェントとの変数バインディングの解決の試行を続行するように通知します。
SNMP サービスと拡張エージェントは、 SnmpExtensionQuery 関数の呼び出し中に動的に割り当てられたメモリを交換する必要がある場合があることに注意してください。 サービスは、拡張機能エージェントに渡す各 SnmpVarBind 構造体にオブジェクト識別子を動的に割り当てます。 ただし、Get Next 要求を処理するときにオブジェクト識別子を置き換えるには、拡張エージェントがこのメモリを解放 する 必要があります。 拡張エージェントは、可変長オブジェクト型に動的メモリを割り当てます。 SNMP サービスは、オブジェクトが応答 PDU に配置された後、このメモリを解放します。
ヒープの破損とメモリ リークを回避するには、SNMP サービスと拡張エージェントの両方で、同じヒープに解決されるメモリ割り当てルーチンを使用する必要があります。 拡張機能エージェントは 、SNMPUtilMemAlloc 関数を使用して、SNMP サービスに渡すメモリを割り当てる必要があります。 サービスが拡張エージェントに渡すメモリを解放するには、 SnmpUtilMemFree 関数を使用する必要があります。 これらの関数は、ユーティリティダイナミックリンクライブラリ SNMPAPI.DLL にあります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | snmp.h |