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 またはネットワーク トランスポート層のエラーのいずれかを返す場合があります。
リターン コード | 説明 |
---|---|
|
SnmpStartup 関数が正常に完了しませんでした。 |
|
メモリ割り当て中にエラーが発生しました。 |
|
セッション パラメーターが無効です。 |
|
エンティティ パラメーターの一方または両方が無効です。 |
|
context パラメーターが無効です。 |
|
PDU パラメーターが無効です。 |
|
PDU の PDU_type フィールドで指定された操作は、宛先エンティティに対して不適切です。 詳細については、「解説」を参照してください。 |
|
ネットワーク トランスポート層が初期化されませんでした。 |
|
ネットワーク トランスポート層では、SNMP プロトコルはサポートされていません。 |
|
ネットワーク サブシステムが失敗しました。 |
|
ネットワーク トランスポート層でリソース エラーが発生しました。 |
|
srcEntity パラメーターで指定されたエンティティが初期化されませんでした。 |
|
ネットワーク トランスポート層関数呼び出しが無効な入力パラメーターを受け取った。 |
|
PDU が大きすぎて、ネットワーク トランスポート 層で送受信が行えなすぎます。 |
|
未定義のネットワーク トランスポート層エラーが発生しました。 |
|
不明または未定義のエラーが発生しました。 |
詳細については、「 ネットワーク トランスポート エラー」を参照してください。
注釈
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 |