SnmpListen 関数 (winsnmp.h)
[SNMP は、[要件] セクションで指定したオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。
WinSNMP SnmpListen 関数は、WinSNMP アプリケーションを SNMP エージェントとして登録します。 エージェント アプリケーションは、この関数を呼び出して、エンティティが SNMP エージェントの役割で動作することを Microsoft WinSNMP 実装に通知します。 また、アプリケーションはこの関数を呼び出して、エンティティがこのロールで動作しなくなるときに実装に通知します。 SnmpListen 関数は、WinSNMP API バージョン 2.0 の要素です。
構文
SNMPAPI_STATUS SNMPAPI_CALL SnmpListen(
[in] HSNMP_ENTITY hEntity,
[in] SNMPAPI_STATUS lStatus
);
パラメーター
[in] hEntity
WinSNMP エンティティを処理して、Microsoft WinSNMP 実装が受信 SNMP 要求メッセージ (PDU) を受信したときに通知します。 このパラメーターは、エージェント アプリケーションを識別します。 詳細については、次の「備考」および「戻り値」セクションを参照してください。
SnmpCreateSession 関数を呼び出すときに、SNMP メッセージまたは非同期イベントが使用可能になったときにアプリケーションに通知するために、実装でウィンドウ通知メッセージまたはSNMPAPI_CALLBACK関数のどちらを使用するかを指定できます。
[in] lStatus
hEntity パラメーターによって識別される WinSNMP エンティティが SNMP エージェント ロールで動作しているか、またはこのロールで機能しなくなったかを示す符号なし long 整数変数を指定します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
指定された WinSNMP エンティティがエージェント ロールで機能しています。 |
|
指定された WinSNMP エンティティがエージェント ロールで機能していません。 |
SNMPAPI_OFFの値を渡すと、エンティティに割り当てられたリソースと、割り当てられたポートの両方が解放されます。 詳細については、「解説」を参照してください。
戻り値
関数が成功した場合、戻り値はSNMPAPI_SUCCESS。
関数が失敗した場合、戻り値はSNMPAPI_FAILURE。 拡張エラー情報を取得するには、 SnmpGetLastError を呼び出します。 SnmpGetLastError 関数は、次のいずれかのエラーを返すことができます。
リターン コード | 説明 |
---|---|
|
SnmpStartup 関数が正常に完了しませんでした。 |
|
メモリ割り当て中にエラーが発生しました。 |
|
hEntity パラメーターが無効です。 このパラメーターは、 SnmpStrToEntity 関数の以前の呼び出しによって返されるハンドルである必要があります。 |
|
lStatus パラメーターが無効です。 |
|
hEntity パラメーターで指定されたエンティティは、SNMP エージェントのロールで既に機能しています。 |
|
ネットワーク トランスポート層エラーが発生しました。 hEntity パラメーターで指定されたエンティティに対してソケットを作成できませんでした。 |
|
hEntity パラメーターで指定されたエンティティのソケットをバインドしようとしたときに、ネットワーク トランスポート層でエラーが発生しました。 |
|
不明または未定義のエラーが発生しました。 |
注釈
エンティティを指定する場合は、エンティティのアドレス ファミリ、インターフェイス アドレス、およびポートを明示的に指定します。 これは、 SnmpStrToEntity 関数の呼び出しの結果として、WinSNMP によってこれらの属性が各 WinSNMP エンティティに割り当てられるためです。 実装では、エージェント アプリケーションに通知を送信するときに 、hEntity パラメーターで指定されたエンティティに現在割り当てられているアドレスとポートの設定を使用します。 詳細については、「 SnmpSetPort」を参照してください。
WinSNMP セッションの SnmpClose 関数と WinSNMP アプリケーションの SnmpCleanup 関数を呼び出す場合は、WinSNMP エージェント アプリケーションに関連付けられているすべてのポートを解放する必要があります。
SNMP 管理アプリケーションとエージェント アプリケーションの詳細については、「 SNMP エージェント アプリケーションの登録 」および「 SNMP について」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winsnmp.h |
Library | Wsnmp32.lib |
[DLL] | Wsnmp32.dll |