次の方法で共有


SnmpDecodeMsg 関数 (winsnmp.h)

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

WinSNMP SnmpDecodeMsg 関数は、エンコードされた SNMP メッセージをコンポーネントにデコードします。 この関数は、WinSNMP SnmpEncodeMsg 関数の反対のアクションを実行します。

構文

SNMPAPI_STATUS SNMPAPI_CALL SnmpDecodeMsg(
  [in]  HSNMP_SESSION   session,
  [out] LPHSNMP_ENTITY  srcEntity,
  [out] LPHSNMP_ENTITY  dstEntity,
  [out] LPHSNMP_CONTEXT context,
  [out] LPHSNMP_PDU     pdu,
  [in]  smiLPCOCTETS    msgBufDesc
);

パラメーター

[in] session

WinSNMP セッションを処理します。 このパラメーターは必須です。 詳細については、次の「解説」セクションを参照してください。

[out] srcEntity

ソース管理エンティティへのハンドルを受け取る変数へのポインター。 詳細については、「解説」を参照してください。

[out] dstEntity

ターゲット管理エンティティへのハンドルを受け取る変数へのポインター。 詳細については、「解説」を参照してください。

[out] context

ターゲット管理エンティティが制御するコンテキスト (マネージド オブジェクト リソースのセット) へのハンドルを受け取る変数へのポインター。

[out] pdu

SNMP プロトコル・データ・ユニット (PDU) へのハンドルを受け取る変数へのポインター。

[in] msgBufDesc

コンポーネントにデコードする SNMP メッセージを含む smiOCTETS 構造体へのポインター。 構造体の len メンバーは、処理する最大バイト数を指定します。 ptr メンバーは、エンコードされた SNMP メッセージを指します。

戻り値

関数が成功した場合、戻り値はデコードされたバイト数です。 この値は、msgBufDesc パラメーターが指す smiOCTETS 構造体の len メンバーと等しいか、それより小さい値にすることができます。

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

リターン コード 説明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 関数が正常に完了しませんでした。
SNMPAPI_ALLOC_ERROR
メモリ割り当て中にエラーが発生しました。
SNMPAPI_SESSION_INVALID
セッション パラメーターが無効です。
SNMPAPI_ENTITY_INVALID
エンティティ パラメーターの一方または両方が無効です。
SNMPAPI_CONTEXT_INVALID
context パラメーターが無効です。
SNMPAPI_PDU_INVALID
pdu パラメーターが無効です。
SNMPAPI_OUTPUT_TRUNCATED
出力バッファーの長さが不十分です。 出力パラメーターは作成されませんでした。
SNMPAPI_MESSAGE_INVALID
msgBufDesc パラメーターによって示されるバッファー内の SNMP メッセージ形式が無効です。 出力パラメーターは作成されませんでした。
SNMPAPI_OTHER_ERROR
不明または未定義のエラーが発生しました。

注釈

Microsoft WinSNMP 実装では、アプリケーションが SNMPv1 または SNMPv2C メッセージを SnmpDecodeMsg 関数に送信すると、srcEntity パラメーターと dstEntity パラメーターに 0 の値が返されます。 これは、メッセージ形式に WinSNMP エンティティ リソースを作成するために必要なアドレス情報が含まれていないためです。

Microsoft WinSNMP 実装では、 SnmpDecodeMsg 関数の呼び出しが成功した結果、リソースが WinSNMP アプリケーションに割り当てられます。 WinSNMP アプリケーションでは、リソースに対応する WinSNMP 関数を使用して個々のリソースを解放することをお勧めします。 詳細については、「WinSNMP 記述子の解放」と「WinSNMP データ管理概念」を参照してください。

要件

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

こちらもご覧ください

SnmpEncodeMsg

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpSendMsg

WinSNMP 関数

WinSNMP API の概要

smiOCTETS