SnmpExtensionQueryEx 関数 (snmp.h)
[SNMP は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。
Microsoft SNMP サービスは SnmpExtensionQueryEx 関数を呼び出して、SNMP 拡張エージェントによって登録された 1 つ以上の MIB サブツリー内の変数を指定する SNMP 要求を処理します。 この関数は、SNMP 拡張エージェント API の要素です。
構文
BOOL SNMP_FUNC_TYPE SnmpExtensionQueryEx(
[in] UINT nRequestType,
[in] UINT nTransactionId,
[in, out] SnmpVarBindList *pVarBindList,
[in, out] AsnOctetString *pContextInfo,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
パラメーター
[in] nRequestType
SNMP サービスが拡張エージェントに実行を要求する操作の種類を指定します。 このパラメーターには、次の値のいずれかを指定できます。
SET 要求の種類 、つまり、SNMP_EXTENSION_SET_で始まる要求の種類の詳細については、次の「解説」セクションを参照してください。
[in] nTransactionId
受信 SNMP 要求 PDU の一意識別子である DWORD 変数を指定します。 拡張エージェントはこの値を使用して、同じ PDU を含む SNMP サービスによる複数の呼び出しを関連付けることができます。
[in, out] pVarBindList
目的の変数を含む変数バインド リストへのポインター。
[in, out] pContextInfo
ユーザー定義のコンテキスト情報を含むオクテット文字列へのポインター。
拡張エージェントは、このパラメーターを使用して、マルチフェーズ SNMP SET 操作中に使用されるコンテキスト情報を格納できます。 拡張機能エージェントは、CLEANUP 要求中にこのパラメーターに関連付けられているリソースを解放する必要があります。 SNMP サービスは、このパラメーターに関連付けられているリソースを解放しません。 詳細については、次の「解説」セクションを参照してください。
[out] pErrorStatus
エラー状態の結果を受け取る変数へのポインター。 このパラメーターには、SNMPv2C で定義されている次のいずれかの値を指定できます。
[out] pErrorIndex
エラー インデックスの結果を受け取る変数へのポインター。
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。
注釈
SNMP サービスは SnmpExtensionQueryEx 関数を複数回呼び出して、受信 SNMP SET 要求を処理します。 サービスは、TEST 要求フェーズ、COMMIT 要求フェーズ、UNDO 要求フェーズ、CLEANUP 要求フェーズの間に SnmpExtensionQueryEx を呼び出すことができます。
TEST 要求
SNMP サービスは、最初に dwRequestType が SNMP_EXTENSION_SET_TESTの SnmpExtensionQueryEx 関数を呼び出すことによって、SNMP SET 要求の種類を処理します。 サービスは、要求内の変数バインドを担当する各拡張機能エージェントを呼び出します。 各拡張エージェントは、変数バインド リスト内の変数を検証する必要があります。 必要に応じて、 pContextInfo パラメーターによって指される変数に、次の要求に必要なコンテキスト情報を格納できます。TEST 要求が失敗した場合、サービスは CLEANUP 要求を開始します。 このサービスは、以前に TRUE を 返した各拡張機能エージェントを 、SnmpExtensionQueryEx 関数を使用して再度 TEST 要求に呼び出します。 サービスは、 SNMP_EXTENSION_SET_CLEANUP dwRequestType を使用して各拡張機能エージェントを呼び出します。
COMMIT 要求
すべての拡張エージェントが TEST 要求に TRUE を返す場合、SNMP サービスは、SNMP_EXTENSION_SET_COMMIT dwRequestType を使用して SnmpExtensionQueryEx 関数を使用して各拡張エージェントを呼び出します。 サービスは、拡張機能エージェントがサービスに渡した拡張エージェントコンテキスト情報に戻ります。 これは、TEST 要求中に pContextInfo パラメーターで渡された拡張エージェントのコンテキスト情報です。 拡張エージェントは、コンテキスト情報を使用して、インストルメンテーション固有の方法で指定された変数の値を更新できます。拡張機能エージェントがロールバック処理をサポートしている場合、この時点で pContextInfo パラメーターのコンテキスト情報を更新できます。 SNMP サービスは、UNDO 要求中に拡張機能エージェントに情報を渡します。
すべての拡張機能エージェントが COMMIT 要求に TRUE を返す場合、サービスは、SNMP_EXTENSION_SET_CLEANUP dwRequestType を使用して SnmpExtensionQueryEx 関数を使用して各拡張機能エージェントを呼び出します。
拡張機能エージェントが COMMIT 要求に失敗した場合、サービスは CLEANUP 要求も開始します。 このサービスは、以前に TRUE を 返した各拡張機能エージェントを 、SnmpExtensionQueryEx 関数を使用して COMMIT 要求に再度呼び出します。 サービスは、 SNMP_EXTENSION_SET_CLEANUP dwRequestType を使用して各拡張機能エージェントを呼び出します。
CLEANUP 要求
サービスは、TEST または COMMIT 要求中に pContextInfo パラメーターで渡されたコンテキスト情報を拡張機能エージェントに返します。 拡張機能エージェントは、この時点で パラメーターに関連付けられているリソースを解放する必要があります。UNDO 要求
拡張機能エージェントが COMMIT 要求に FALSE を 返した場合、SNMP サービスは COMMIT 要求を終了します。 このサービスは、 TRUE を 返した各拡張機能エージェントを、 dwRequestType が SNMP_EXTENSION_SET_UNDOの COMMIT 要求に呼び出します。 これにより、COMMIT 要求が失敗したことを拡張エージェントに通知し、ロールバック処理を開始する必要があります。拡張エージェントは、COMMIT 要求が失敗する前の値に戻って、目的の変数の値のリセットを試みる必要があります。 これを行うには、拡張機能エージェントは COMMIT 要求中に pContextInfo パラメーターで返されるコンテキスト情報を使用します。
拡張エージェントが UNDO 要求に FALSE を 返した場合、SET 操作全体がエラー コード SNMP_ERRORSTATUS_UNDOFAILEDで失敗します。 すべての拡張エージェントが UNDO 要求に TRUE を 返した場合、SNMP SET 操作は、COMMIT 要求に失敗した拡張機能エージェントによって設定されたエラー コードで失敗します。
UNDO 要求の後、サービスは常に、SNMP_EXTENSION_SET_CLEANUP dwRequestType を使用して SnmpExtensionQueryEx 関数を使用して各拡張機能エージェントを呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | snmp.h |