次の方法で共有


SnmpSendMsg 関数 (winsnmp.h)

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

WinSNMP アプリケーションは SnmpSendMsg 関数を呼び出して、Microsoft WinSNMP 実装が SNMP プロトコル データ ユニット (PDU) を SNMP メッセージの形式で送信するように要求します。 WinSNMP アプリケーションは、ソース エンティティ、宛先エンティティ、および要求のコンテキストを指定します。

WinSNMP アプリケーションが SnmpSendMsg 要求に応答して PDU を受け取る場合は、PDU を取得する必要があります。 これを行うには、SnmpCreateSession によって返されるセッション ハンドルを使用して、アプリケーションで SnmpRecvMsg 関数を呼び出す必要があります。

構文

SNMPAPI_STATUS SNMPAPI_CALL SnmpSendMsg(
  [in] HSNMP_SESSION session,
  [in] HSNMP_ENTITY  srcEntity,
  [in] HSNMP_ENTITY  dstEntity,
  [in] HSNMP_CONTEXT context,
  [in] HSNMP_PDU     PDU
);

パラメーター

[in] session

WinSNMP セッションを処理します。

[in] srcEntity

SNMP メッセージの送信要求を開始する管理エンティティを処理します。

[in] dstEntity

SNMP 要求に応答するターゲット エンティティを処理します。

[in] context

ターゲット管理エンティティが制御するコンテキスト (マネージド オブジェクト リソースのセット) を処理します。

[in] PDU

SNMP 操作要求を含むプロトコル・データ・ユニットへのハンドル。

戻り値

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

関数が失敗した場合、戻り値はSNMPAPI_FAILURE。 拡張エラー情報を取得するには、 SnmpGetLastError を呼び出します。 SnmpGetLastError 関数は、次の WinSNMP またはネットワーク トランスポート層のエラーのいずれかを返す場合があります。

リターン コード 説明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 関数が正常に完了しませんでした。
SNMPAPI_ALLOC_ERROR
メモリ割り当て中にエラーが発生しました。
SNMPAPI_SESSION_INVALID
セッション パラメーターが無効です。
SNMPAPI_ENTITY_INVALID
エンティティ パラメーターの一方または両方が無効です。
SNMPAPI_CONTEXT_INVALID
context パラメーターが無効です。
SNMPAPI_PDU_INVALID
PDU パラメーターが無効です。
SNMPAPI_OPERATION_INVALID
PDU の PDU_type フィールドで指定された操作は、宛先エンティティに対して不適切です。 詳細については、「解説」を参照してください。
SNMPAPI_TL_NOT_INITIALIZED
ネットワーク トランスポート層が初期化されませんでした。
SNMPAPI_TL_NOT_SUPPORTED
ネットワーク トランスポート層では、SNMP プロトコルはサポートされていません。
SNMPAPI_TL_NOT_AVAILABLE
ネットワーク サブシステムが失敗しました。
SNMPAPI_TL_RESOURCE_ERROR
ネットワーク トランスポート層でリソース エラーが発生しました。
SNMPAPI_TL_SRC_INVALID
srcEntity パラメーターで指定されたエンティティが初期化されませんでした。
SNMPAPI_TL_INVALID_PARAM
ネットワーク トランスポート層関数呼び出しが無効な入力パラメーターを受け取った。
SNMPAPI_TL_PDU_TOO_BIG
PDU が大きすぎて、ネットワーク トランスポート 層で送受信が行えなすぎます。
SNMPAPI_TL_OTHER
未定義のネットワーク トランスポート層エラーが発生しました。
SNMPAPI_OTHER_ERROR
不明または未定義のエラーが発生しました。
 

詳細については、「 ネットワーク トランスポート エラー」を参照してください。

注釈

SnmpSendMsg 関数は非同期的に実行されるため、すぐにを返します。

実装は、非同期要求が完了したときに WinSNMP アプリケーションに通知します。 実装では、セッションの SnmpCreateSession の最初の呼び出しで、wMsg パラメーターと hWnd パラメーターで指定されたウィンドウに通知メッセージを送信することでこれを行います。 アプリケーション ウィンドウが通知メッセージを受信すると、WinSNMP アプリケーションは受信 PDU を取得する必要があります。 アプリケーションは、SnmpCreateSession によって返されるセッション ハンドルを使用して SnmpRecvMsg 関数を呼び出すことによってこれを行います。

WinSNMP アプリケーションが SnmpSendMsg 関数を呼び出すと、転送要求を完了するために使用するネットワーク トランスポート プロトコルと SNMP バージョン フレームワークが実装によって決定されます。 実装では、要求セッションに関連付けられているプロパティとターゲット管理エンティティとの機能を照合することで、これを決定します。 この情報は、実装のデータベースの値から入手できます。

WinSNMP アプリケーションが SNMP バージョン 2C フレームワーク (SNMPv2C) で使用可能な機能を要求し、ターゲット エンティティが SNMP バージョン 1 フレームワーク (SNMPv1) を使用している場合、実装は要求を SNMPv1 に変換しようとします。 これを行うために、実装では、「インターネット標準ネットワーク管理フレームワークのバージョン 1 とバージョン 2 の共存」RFC1908で定義されている手順を使用します。変換できない場合、 SnmpSendMsg は 拡張エラー コード SNMPAPI_OPERATION_INVALIDで失敗します。 この状況は、たとえば、アプリケーションが SNMP_PDU_InformRequest データ型の PDU を SNMPv1 宛先エンティティに送信しようとしたときに発生します。

詳細については、「 WinSNMP プログラミング タスク 」および 「SNMP メッセージについて」を参照してください。

要件

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

こちらもご覧ください

SnmpCreateSession

SnmpRecvMsg

WinSNMP 関数

WinSNMP API の概要