SnmpCreateSession 関数 (winsnmp.h)
[SNMP は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。
SnmpCreateSession 関数は、WinSNMP アプリケーションのセッションを開くよう Microsoft WinSNMP 実装に要求します。 アプリケーションでは、使用可能な SNMP メッセージと非同期イベントを WinSNMP セッションに実装で通知する方法を指定できます。 アプリケーションでは、ウィンドウ通知メッセージまたはセッションに通知する SNMPAPI_CALLBACK 関数を指定できます。
SnmpCreateSession 関数は、WinSNMP API バージョン 2.0 の要素です。 新しい WinSNMP アプリケーションを開発する場合は、SnmpOpen 関数を呼び出す代わりに、SnmpCreateSession を呼び出して WinSNMP セッションを開くことをお勧めします。
構文
HSNMP_SESSION SNMPAPI_CALL SnmpCreateSession(
[in] HWND hWnd,
[in] UINT wMsg,
[in] SNMPAPI_CALLBACK fCallBack,
[in] LPVOID lpClientData
);
パラメーター
[in] hWnd
WinSNMP アプリケーションのウィンドウを処理して、非同期要求が完了したとき、またはトラップ通知が発生したときに通知します。 このパラメーターは、セッションのウィンドウ通知メッセージに必要です。
[in] wMsg
WinSNMP アプリケーション ウィンドウに送信する通知メッセージを識別する符号なし整数を指定します。 このパラメーターは、セッションのウィンドウ通知メッセージに必要です。
[in] fCallBack
アプリケーション定義のセッション固有のSNMPAPI_CALLBACK関数のアドレス を 指定します。 実装では、この関数を呼び出して、通知が使用可能になったときに WinSNMP セッションに通知します。
このパラメーターは、セッションのコールバック通知を指定するために必要です。 セッションのウィンドウ通知メッセージを指定するには、このパラメーターは NULL である 必要があります。 詳細については、次の「解説」セクションを参照してください。
[in] lpClientData
fCallback パラメーターで指定されたコールバック関数に渡すアプリケーション定義データへのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 fCallback パラメーターが NULL の場合、実装はこのパラメーターを無視します。
戻り値
関数が成功した場合、戻り値は、呼び出し元のアプリケーションに対して実装が開く WinSNMP セッションを識別するハンドルです。
関数が失敗した場合、戻り値はSNMPAPI_FAILURE。 拡張エラー情報を取得するには、 SnmpGetLastError を呼び出します。 SnmpGetLastError 関数は、次のいずれかのエラーを返すことができます。
リターン コード | 説明 |
---|---|
|
SnmpStartup 関数が正常に完了しませんでした。 |
|
メモリ割り当て中にエラーが発生しました。 |
|
fCallback パラメーターは NULL ですが、hWnd パラメーターは有効なウィンドウ ハンドルではありません。 |
|
fCallback パラメーターは NULL ですが、wMsg パラメーターは有効なメッセージ値ではありません。 |
|
fCallback パラメーターは NULL で、hWnd パラメーターと wMsg パラメーターは個別に有効です。 ただし、値は Windows プラットフォームでは相互に互換性がありません。 |
|
パラメーター値の組み合わせでは、コールバック通知やウィンドウ通知メッセージは指定されません。 |
|
不明または未定義のエラーが発生しました。 |
注釈
SnmpCreateSession 関数は、呼び出し元の WinSNMP アプリケーション内で開いている各 WinSNMP セッションに対して一意のハンドルを返します。 アプリケーションは、実装によるリソースの割り当てと割り当て解除を容易にするために、 SnmpCreateSession が他の WinSNMP 関数呼び出しで返すセッション ハンドルを使用する必要があります。
WinSNMP アプリケーションでは、SnmpCreateSession 関数の呼び出しの結果として実装が開くセッションごとに SnmpClose 関数を 1 回呼び出することをお勧めします。 WinSNMP アプリケーションが予期せず終了した場合、実装ですべてのリソースの割り当てを解除できるようにするには、終了する前に SnmpCleanup を呼び出す必要があります。
コールバック通知
SnmpCreateSession 関数の正常な呼び出しで fCallback パラメーターが NULL でない場合、fCallback パラメーターで指定されたコールバック関数を使用してセッションに通知が送信されます。SnmpCreateSession 関数の呼び出しの例を次に示します。この実装では、コールバック通知を使用してメッセージとイベントに関するセッションを通知するように要求します。
hSession = SnmpCreateSession (0, 0, myFunc, <NULL|myData>);
ウィンドウ通知メッセージ
SnmpCreateSession 関数は、アプリケーション ウィンドウと通知メッセージ識別子へのハンドルを実装に渡します。 アプリケーション ウィンドウで wMsg パラメーターで指定された通知メッセージを受信すると、WinSNMP アプリケーションは受信プロトコル データ ユニット (PDU) を取得する必要があります。 アプリケーションは、SnmpCreateSession によって返されるセッション ハンドルを使用して SnmpRecvMsg 関数を呼び出すことによってこれを行います。1 つの WinSNMP アプリケーションで、複数の WinSNMP セッションを開くことができます。 アプリケーションが同じウィンドウ ハンドルを使用して複数のセッションを開く場合は、WinSNMP アプリケーションでセッションごとに一意の wMsg パラメーターを指定することをお勧めします。
SnmpCreateSession 関数の呼び出しの例を次に示します。この実装では、ウィンドウ通知メッセージを使用してメッセージとイベントに関するセッションを通知するように要求します。
hSession = SnmpCreateSession (myWnd, myMsg, NULL, NULL);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winsnmp.h |
Library | Wsnmp32.lib |
[DLL] | Wsnmp32.dll |