次の方法で共有


SnmpSetPort 関数 (winsnmp.h)

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

WinSNMP アプリケーションは SnmpSetPort 関数を呼び出して、宛先エンティティに割り当てられたポートを変更します。 SnmpSetPort 関数は、WinSNMP API バージョン 2.0 の要素です。

構文

SNMPAPI_STATUS SNMPAPI_CALL SnmpSetPort(
  [in] HSNMP_ENTITY hEntity,
  [in] UINT         nPort
);

パラメーター

[in] hEntity

WinSNMP 変換先エンティティへのハンドル。 このパラメーターは、 SnmpListen 関数の呼び出しの結果として、SNMP エージェント アプリケーションの役割で動作するエンティティへのハンドルを指定できます。 詳細については、「解説」を参照してください。

[in] nPort

宛先エンティティの新しいポート割り当てを識別する符号なし整数を指定します。 ビジー状態のローカル アドレスを指定した場合、または使用できないリモート アドレスを指定した場合、 SnmpSetPort 関数の呼び出しは失敗します。

戻り値

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

関数が失敗した場合、戻り値はSNMPAPI_FAILURE。 拡張エラー情報を取得するには、セッション パラメーターに NULL 値を指定して SnmpGetLastError を呼び出します。 SnmpGetLastError 関数は、次のいずれかのエラーを返すことができます。

リターン コード 説明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 関数が正常に完了しませんでした。
SNMPAPI_OPERATION_INVALID
hEntity パラメーターで指定されたエンティティは、SnmpListen 関数の呼び出しの結果として、エージェント ロールで既に機能しています。 詳細については、「解説」を参照してください。
SNMPAPI_ENTITY_INVALID
hEntity パラメーターが無効です。 このパラメーターは、 SnmpStrToEntity 関数の以前の呼び出しによって返されるハンドルである必要があります。
SNMPAPI_OTHER_ERROR
不明または未定義のエラーが発生しました。

解説

Microsoft WinSNMP 実装では、WinSNMP アプリケーションが SnmpStrToEntity 関数を呼び出した結果、各管理エンティティにポートが割り当てられます。 実装でエンティティを作成するときにSNMPAPI_UNTRANSLATED モードが有効な場合、実装では通常、それぞれのプロトコル ファミリの標準 SNMP 要求ポートがエンティティに割り当てられます。たとえば、UDP 161 や IPX 36879 などです。 SNMPAPI_TRANSLATED モードが有効な場合、実装は WinSNMP データベース内のエンティティに指定されたポートを割り当てます。 実装に対して有効な現在のエンティティとコンテキスト変換モードを取得するために、アプリケーションは SnmpGetTranslateMode 関数を呼び出すことができます。 詳細については、「 エンティティとコンテキスト変換モードの設定 」および 「WinSNMP データベース」を参照してください

hEntity パラメーターで指定されたエンティティがエージェント ロールで現在機能している場合、SnmpSetPort 関数の呼び出しは失敗します。 これは、 エンティティが nPort パラメーターで指定されたポート以外のポートに既に割り当てられているためです。 エージェント アプリケーションを特定のポートに確実に割り当てるには、WinSNMP アプリケーションで次の手順を実行します。

  1. SnmpStrToEntity を次のように呼び出します。

    hAgent = SnmpStrToEntity (hSession, <addrString>);

  2. SnmpSetPort を次のように呼び出します。

    SnmpSetPort (hAgent, <nPort>);

  3. SnmpListen を次のように呼び出します。

    SnmpListen (hAgent, SNMPAPI_ON);

ここで <、addrString> には IP アドレスまたは IPX アドレスの文字列表現が含まれており <、nPort> にはエージェント アプリケーションの新しいポート割り当てが含まれます。

IPX アドレスには、8 桁の 16 進数 (必要に応じてゼロで入力) で構成されるネットワーク番号が含まれていることに注意してください。区切り記号 (":"、"." または " – ");と ノード番号は、12 桁の 16 進数 (必要に応じてゼロで塗りつぶされます) で構成されます (例: 00000001:00081A0D01C2)。 詳細については、「 WinSNMP での IPX アドレス文字列のサポート」を参照してください。

要件

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

関連項目

SnmpGetTranslateMode

SnmpListen

SnmpStrToEntity

WinSNMP 関数

WinSNMP API の概要