SnmpRecvMsg 関数 (winsnmp.h)
[SNMP は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。
WinSNMP SnmpRecvMsg 関数は、 SnmpSendMsg 関数の呼び出しによって送信された、完了した非同期要求の結果を SNMP メッセージの形式で取得します。 SnmpRecvMsg 関数は、WinSNMP セッションに登録されている未処理のトラップ データと通知も返します。
構文
SNMPAPI_STATUS SNMPAPI_CALL SnmpRecvMsg(
[in] HSNMP_SESSION session,
[out] LPHSNMP_ENTITY srcEntity,
[out] LPHSNMP_ENTITY dstEntity,
[out] LPHSNMP_CONTEXT context,
[out] LPHSNMP_PDU PDU
);
パラメーター
[in] session
WinSNMP セッションを処理します。
[out] srcEntity
メッセージを送信するエンティティへのハンドルを受け取る変数へのポインター。 SnmpRegister 関数の srcEntity パラメーターは、トラップ通知に登録する管理エンティティへのハンドルを指定します。
[out] dstEntity
メッセージを受信するエンティティへのハンドルを受け取る変数へのポインター。 SnmpRegister 関数の dstEntity パラメーターは、トラップを送信する管理エンティティへのハンドルを指定します。
[out] context
マネージド オブジェクト リソースのセットであるコンテキストへのハンドルを受け取る変数へのポインター。 srcEntity パラメーターで指定されたエンティティは、このコンテキストからメッセージを発行します。
[out] PDU
メッセージのプロトコル・データ・ユニット (PDU) コンポーネントへのハンドルを受け取る変数へのポインター。
戻り値
関数が成功した場合、戻り値はSNMPAPI_SUCCESSされ、出力パラメーターには前のパラメーターの説明で示した値が含まれます。
関数が失敗した場合、戻り値はSNMPAPI_FAILURE。 ネットワーク トランスポート層エラーを示す拡張エラー コード (つまり、SNMPAPI_TL_で始まるエラー) で関数が失敗した場合、出力パラメーターには、WinSNMP アプリケーションが正常に回復できるようにするために前に示した値も含まれます。
拡張エラー情報を取得するには、 SnmpGetLastError を呼び出します。 SnmpGetLastError 関数は、次の WinSNMP またはネットワーク トランスポート層のエラーのいずれかを返す場合があります。
リターン コード | 説明 |
---|---|
|
SnmpStartup 関数が正常に完了しませんでした。 |
|
メモリ割り当て中にエラーが発生しました。 |
|
セッション パラメーターが無効です。 |
|
指定されたセッションには、現時点ではキューにメッセージがありません。 |
|
ネットワーク トランスポート層が初期化されませんでした。 |
|
ネットワーク トランスポート層では、SNMP プロトコルはサポートされていません。 |
|
ネットワーク サブシステムが失敗しました。 |
|
ネットワーク トランスポート層でリソース エラーが発生しました。 |
|
dstEntity パラメーターで指定されたエンティティは使用できません。 |
|
srcEntity パラメーターで指定されたエンティティが初期化されませんでした。 |
|
ネットワーク トランスポート層関数呼び出しが無効な入力パラメーターを受け取った。 |
|
PDU が大きすぎて、ネットワーク トランスポート 層で送受信が行えなすぎます。 |
|
未定義のネットワーク トランスポート層エラーが発生しました。 |
|
不明または未定義のエラーが発生しました。 |
詳細については、「 ネットワーク トランスポート エラー」を参照してください。
注釈
SnmpCreateSession 関数は、アプリケーション ウィンドウ ハンドルと通知メッセージ識別子を Microsoft WinSNMP 実装に渡します。 アプリケーション ウィンドウで wMsg パラメーターで指定された通知メッセージを受信すると、WinSNMP アプリケーションは SnmpCreateSession によって返されるセッション ハンドルを使用して SnmpRecvMsg 関数を呼び出して、受信プロトコル データ ユニット (PDU) を取得する必要があります。 詳細については、「 SNMP メッセージについて」を参照してください。
SnmpRecvMsg 関数は、4 つのオブジェクトをインスタンス化し、2 つのエンティティ ハンドル、コンテキスト ハンドル、PDU ハンドルのリソースを割り当てます。 返された PDU の変数バインド リスト コンポーネントへのハンドルは、WinSNMP アプリケーションが SnmpGetPduData 関数を呼び出すまでインスタンス化されません。 SnmpRecvMsg が返すリソースが不要になった場合、WinSNMP アプリケーションは、リソースに対応する WinSNMP 関数を使用して個々のリソースを解放する必要があります。 詳細については、「 SnmpFreePdu、 SnmpFreeEntity、および SnmpFreeContext」を参照してください。
実装は、SNMP バージョン 1 フレームワーク (SNMPv1) で動作しているエンティティからトラップを受信すると、トラップを SNMP バージョン 2C (SNMPv2C) 形式に変換します。 したがって、 SnmpRecvMsg が トラップを配信すると、常に SNMPv2C 形式になります。 詳細については、「 SNMPv1 から SNMPv2C へのトラップの変換 」および 「WinSNMP プログラミング タスク」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winsnmp.h |
Library | Wsnmp32.lib |
[DLL] | Wsnmp32.dll |