SnmpMgrGetTrap 函式 (mgmtapi.h)

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

如果啟用陷阱接收, SnmpMgrGetTrap 函式會傳回呼叫端尚未收到的未完成陷阱數據。 此函式是SNMP管理 API 的元素。

除了此函式傳回的資訊之外, SnmpMgrGetTrapEx 函式還會傳回傳輸來源的位址和陷阱的社群字串。

語法

BOOL SNMP_FUNC_TYPE SnmpMgrGetTrap(
  [out] AsnObjectIdentifier *enterprise,
  [out] AsnNetworkAddress   *IPAddress,
  [out] AsnInteger          *genericTrap,
  [out] AsnInteger          *specificTrap,
  [out] AsnTimeticks        *timeStamp,
  [out] RFC1157VarBindList  *variableBindings
);

參數

[out] enterprise

AsnObjectIdentifier 結構的指標,以接收產生 SNMP 陷阱的企業。

[out] IPAddress

要接收產生SNMP陷阱之代理程式的位址之變數指標。

[out] genericTrap

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

值 意義
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
發生異常事件,而且會在具有企業特定值的 specificTrap 參數中識別。

[out] specificTrap

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

[out] timeStamp

要接收時間戳之變數的指標。

[out] variableBindings

要接收變數系結清單之 SnmpVarBindList 結構的指標。

傳回值

如果函式傳回陷阱,則傳回值為 TRUE。 呼叫之後立即呼叫 SnmpGetLastError 即可擷取錯誤的程序代碼。

您應該重複呼叫 SnmpMgrGetTrap 函式,直到傳回 FALSE (零) 為止。 函式也可以傳回下列錯誤碼。

傳回碼 Description
SNMP_MGMTAPI_TRAP_ERRORS
指出發生錯誤;無法存取陷阱。
SNMP_MGMTAPI_NOTRAPS
表示沒有可用的陷阱。
SNMP_MEM_ALLOC_ERROR
表示記憶體配置錯誤。

備註

應用程式必須一律呼叫 SnmpMgrTrapListen 函式,才能呼叫 SnmpMgrGetTrap 函式。 這是因為 SnmpMgrTrapListen 函式的 phTrapAvailable 參數所指向的事件句柄可啟用 SNMP 陷阱的事件驅動取得。 SNMP 管理 API 會在 SNMP 陷阱服務提供陷阱時發出應用程式事件的訊號。

應用程式也可以定期輪詢 SnmpMgrGetTrap 函式中的陷阱。 在此情況下,應用程式應該重複呼叫 SnmpMgrGetTrap ,直到函式傳回零為止。

規格需求

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

另請參閱

AsnObjectIdentifier

SNMP 函式

Simple Network Management Protocol (SNMP) 概觀

SnmpMgrTrapListen

SnmpVarBindList