共用方式為


snmpExtensionTrap 函式 (snmp.h)

[SNMP 可用於需求一節中指定的作業系統。 它在後續版本中可能會變更或無法使用。 請改用 Windows 遠端管理,這是 WS-Man 的 Microsoft 實作。

Microsoft SNMP 服務會呼叫 SnmpExtensionTrap 函式,以擷取服務產生 SNMP 擴充代理程式陷阱所需的資訊。 服務只有在擴充代理程式在呼叫 SnmpExtensionInit 函式時,才會將陷阱事件句柄設定為訊號狀態。 SnmpExtensionTrap 函式是 SNMP 延伸模組代理程式 API 的元素。

語法

BOOL SNMP_FUNC_TYPE SnmpExtensionTrap(
  [out] AsnObjectIdentifier *pEnterpriseOid,
  [out] AsnInteger32        *pGenericTrapId,
  [out] AsnInteger32        *pSpecificTrapId,
  [out] AsnTimeticks        *pTimeStamp,
  [out] SnmpVarBindList     *pVarBindList
);

參數

[out] pEnterpriseOid

AsnObjectIdentifier 結構的指標,以接收產生陷阱之企業的對象標識碼。 SNMP 服務不會釋放此變數的記憶體。

[out] pGenericTrapId

要接收泛型陷阱指示的變數指標。 此參數可以是下列其中一個值。

意義
SNMP_GENERICTRAP_COLDSTART
代理程式正在受控模式上初始化通訊協議實體。 它可以在其檢視中改變物件。
SNMP_GENERICTRAP_WARMSTART
代理程式正在重新初始化本身,但不會在其檢視中改變物件。
SNMP_GENERICTRAP_LINKDOWN
附加介面已從「向上」狀態變更為「關閉」狀態。 第一個變數會識別 介面。
SNMP_GENERICTRAP_LINKUP
附加介面已從「關閉」狀態變更為「上」狀態。 第一個變數會識別 介面。
SNMP_GENERICTRAP_AUTHFAILURE
SNMP 實體已傳送 SNMP 訊息,但已誤宣告屬於已知的社群。
SNMP_GENERICTRAP_EGPNEIGHLOSS
EGP 對等互連已變更為關閉狀態。 第一個變數會識別 EGP 對等互連的IP位址。
SNMP_GENERICTRAP_ENTERSPECIFIC
發出 pSpecificTrapId 參數中所識別的異常事件訊號。

[out] pSpecificTrapId

要接收所產生特定陷阱之指示的變數指標。

[out] pTimeStamp

要接收時間戳之變數的指標。 建議您使用呼叫 SnmpSvcGetUptime 函式所傳回的值,初始化此參數。

[out] pVarBindList

變數系結清單的指標。 擴充代理程式必須配置此參數的記憶體。 SNMP 服務會使用 SnmpUtilVarBindListFree 函式的呼叫來釋放記憶體。

傳回值

如果 SnmpExtensionTrap 函式傳回陷阱,則傳回值為 TRUE。 SNMP 服務會重複呼叫 函式,直到函式傳回 FALSE 值為止。 如需詳細資訊,請參閱下列一節。

備註

phSubagentTrapEvent 事件句柄設定為訊號狀態時,SNMP 服務會重複呼叫 SnmpExtensionTrap 函式。 此句柄會在 呼叫 SnmpExtensionInit 進入點函式期間傳回。 SnmpExtensionTrap 函式必須傳回 TRUE,以指出參數包含單一陷阱的有效數據。 函式必須傳回 FALSE ,以指出參數不代表有效的陷阱數據,以及停止服務的重複呼叫。

請注意,SNMP 服務傳送陷阱之後,它會釋放與變數系結清單相關聯的記憶體。

請務必注意,先前的檔指出擴充代理程式應該動態配置企業對象標識碼的記憶體,因為 SNMP 服務會在傳送陷阱之後嘗試釋放記憶體。 服務不會釋放與企業物件標識符相關聯的記憶體。 建議您改為傳回靜態 AsnObjectIdentifier 結構的指標。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 snmp.h

另請參閱

SNMP 函式

SetEvent

Simple Network Management Protocol (SNMP) 概觀

SnmpExtensionInit

SnmpSvcGetUptime

SnmpUtilMemAlloc

SnmpUtilVarBindListFree

SnmpVarBindList