複数のトラップ登録

WinSNMP アプリケーションがトラップまたは通知のために WinSNMP セッションを登録する場合は、いくつかのオプションを使用できます。 このため、アプリケーションは SnmpRegister 関数を複数回呼び出すことができます。実際には、トラップと通知を受信するためのカスタム フィルターを定義します。 たとえば、通知 パラメーターの値に応じて、1 種類のトラップまたは通知、またはすべてのトラップと通知に登録できます。 さらに、アプリケーションは、SnmpRegister 関数に対して他のパラメーターの値を指定して、アプリケーションに到達するトラップと通知をさらに定義できます。 詳細については、「トラップと通知 の管理を参照してください。

SnmpRegister を する複数の呼び出しが冗長なインスタンスを次に示します。 これらのインスタンスでは、snmpRegister 関数が正常に完了した場合にSNMPAPI_SUCCESSを返しますが、冗長な登録は無効です。

  1. SnmpRegister への呼び出し、すべてのトラップと通知の配信 (フィルター処理されていない配信) を要求 SnmpRegister への以前の呼び出しの後に、セッションへのトラップと通知のフィルター処理された配信を要求する関数です。 この呼び出しは冗長です。これは、セッションが既にすべてのトラップと通知 (フィルターによって定義された単一の型を含む) を受信しているためです。
  2. SnmpRegister をする重複する呼び出し。または、セッションの SnmpRegister を する前の呼び出しでパラメーター リストがパラメーター リストと同じである呼び出し。
  3. SnmpRegister への呼び出し、snmpRegister への以前の呼び出しで指定された OID であるオブジェクト識別子 (OID) に基づいてトラップと通知のフィルター処理された配信要求する関数です。 たとえば、notification パラメーターに "1.3.6.1.4.1.311" を指定して、Microsoft SNMP エージェント エンティティから送信された通知を受信できます。 SnmpRegister を再度呼び出し、"1.3.6.1.4.1.311.1" を指定した場合、2 回目の呼び出しは冗長になります。これは、セッションが OID プレフィックス "1.3.6.1.4.1.311" を含むすべてのトラップと通知を既に受信しているためです。

セッションの登録を解除するには、SnmpRegister 関数に対する一意の登録呼び出しごとに一致する必要があります。 SnmpRegister 呼び出してセッションを登録解除し、SnmpRegister を する最初の 5 つのパラメーターが最初の登録呼び出しと同じであることを確認します。 初期呼び出しと登録解除呼び出しの唯一の違いは、登録時に、status パラメーターに値SNMPAPI_ONを指定する必要があり、登録解除する関数を呼び出すときは、SNMPAPI_OFFを指定する必要があるということです。 SnmpRegister 関数への冗長な登録呼び出しを照合する必要はありません。 必要なのは、最初の一意の登録呼び出しと一致することだけです。

フィルター条件を変更するには、アプリケーションが最初に特定のトラップまたは通知の配信の登録を解除して無効にする必要がある場合があります。 その後、アプリケーションで SnmpRegister呼び出し、適切な値を渡すことで、新しいフィルターを作成できます。