次の方法で共有


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 関数は、次のいずれかのエラーを返すことができます。

リターン コード 説明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 関数が正常に完了しませんでした。
SNMPAPI_ALLOC_ERROR
メモリ割り当て中にエラーが発生しました。
SNMPAPI_HWND_INVALID
fCallback パラメーターは NULL ですが、hWnd パラメーターは有効なウィンドウ ハンドルではありません。
SNMPAPI_MESSAGE_INVALID
fCallback パラメーターは NULL ですが、wMsg パラメーターは有効なメッセージ値ではありません。
SNMPAPI_MODE_INVALID
fCallback パラメーターは NULL で、hWnd パラメーターと wMsg パラメーターは個別に有効です。 ただし、値は Windows プラットフォームでは相互に互換性がありません。
SNMPAPI_OPERATION_INVALID
パラメーター値の組み合わせでは、コールバック通知やウィンドウ通知メッセージは指定されません。
SNMPAPI_OTHER_ERROR
不明または未定義のエラーが発生しました。

注釈

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

こちらもご覧ください

SNMPAPI_CALLBACK

SnmpCleanup

SnmpClose

SnmpRecvMsg

WinSNMP 関数

WinSNMP API の概要