snmpSendMsg 函式 (winsnmp.h)

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

WinSNMP 應用程式會呼叫 SnmpSendMsg 函式,要求 Microsoft WinSNMP 實作會以 SNMP 訊息的形式 (PDU) 傳輸 SNMP 通訊協定數據單位。 WinSNMP 應用程式會指定來源實體、目的地實體和要求的內容。

如果 WinSNMP 應用程式預期 PDU 回應 SnmpSendMsg 要求,則必須擷取 PDU。 若要這樣做,應用程式必須使用 SnmpCreateSession 所傳回的會話句柄來呼叫 SnmpRecvMsg 函式。

語法

SNMPAPI_STATUS SNMPAPI_CALL SnmpSendMsg(
  [in] HSNMP_SESSION session,
  [in] HSNMP_ENTITY  srcEntity,
  [in] HSNMP_ENTITY  dstEntity,
  [in] HSNMP_CONTEXT context,
  [in] HSNMP_PDU     PDU
);

參數

[in] session

WinSNMP 會話的句柄。

[in] srcEntity

處理起始傳送SNMP訊息之要求的管理實體。

[in] dstEntity

處理將回應 SNMP 要求的目標實體。

[in] context

(目標管理實體所控制) 一組Managed物件資源的內容句柄。

[in] PDU

包含SNMP作業要求的通訊協議數據單位句柄。

傳回值

如果函式成功,傳回值會SNMPAPI_SUCCESS。

如果函式失敗,傳回值會SNMPAPI_FAILURE。 若要取得擴充的錯誤資訊,請呼叫 SnmpGetLastErrorSnmpGetLastError 函式可能會傳回下列其中一個 WinSNMP 或網路傳輸層錯誤。

傳回碼 Description
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函式未順利完成。
SNMPAPI_ALLOC_ERROR
記憶體配置期間發生錯誤。
SNMPAPI_SESSION_INVALID
會話參數無效。
SNMPAPI_ENTITY_INVALID
一或兩個實體參數無效。
SNMPAPI_CONTEXT_INVALID
內容參數無效。
SNMPAPI_PDU_INVALID
PDU 參數無效。
SNMPAPI_OPERATION_INVALID
PDU 的 [PDU_type ] 字段中指定的作業不適用於目的地實體。 如需詳細資訊,請參閱接下來的<備註>一節。
SNMPAPI_TL_NOT_INITIALIZED
網路傳輸層未初始化。
SNMPAPI_TL_NOT_SUPPORTED
網路傳輸層不支援SNMP通訊協定。
SNMPAPI_TL_NOT_AVAILABLE
網路子系統失敗。
SNMPAPI_TL_RESOURCE_ERROR
網路傳輸層發生資源錯誤。
SNMPAPI_TL_SRC_INVALID
srcEntity 參數指定的實體未初始化。
SNMPAPI_TL_INVALID_PARAM
網路傳輸層函式呼叫收到無效的輸入參數。
SNMPAPI_TL_PDU_TOO_BIG
PDU 太大,網路傳輸層無法傳送或接收。
SNMPAPI_TL_OTHER
發生未定義的網路傳輸層錯誤。
SNMPAPI_OTHER_ERROR
發生未知或未定義的錯誤。
 

如需詳細資訊,請參閱 網路傳輸錯誤

備註

SnmpSendMsg 函式會以異步方式執行,因此會立即傳回 。

實作會在異步要求完成時通知 WinSNMP 應用程式。 實作會藉由將通知訊息分別傳送至 wMsghWnd 參數所指定的視窗,分別在會話對 SnmpCreateSession 的初始呼叫中執行此動作。 當應用程式視窗收到通知訊息時,WinSNMP 應用程式必須擷取傳入的 PDU。 應用程式會呼叫 SnmpRecvMsg 函式,並使用 SnmpCreateSession 傳回的會話句柄來執行此動作。

當 WinSNMP 應用程式呼叫 SnmpSendMsg 函 式時,實作會決定要用來完成傳輸要求的網路傳輸通訊協定和 SNMP 版本架構。 實作會將其功能與要求會話和目標管理實體相關聯的屬性比對,以判斷此情況。 這項資訊可從實作資料庫中的值取得。

如果 WinSNMP 應用程式要求在 SNMP 第 2C 版 2C 架構下可用的功能, (SNMPv2C) ,但目標實體會使用 SNMP 第 1 版架構 (SNMPv1) ,實作會嘗試將要求轉譯為 SNMPv1。 為了這樣做,實作會使用RFC1908中定義的程式:「因特網標準網路管理架構第1版和第2版之間共存」。如果無法翻譯, SnmpSendMsg 會失敗,並出現擴充錯誤碼SNMPAPI_OPERATION_INVALID。 例如,當應用程式嘗試將 具有SNMP_PDU_InformRequest 數據類型的 PDU 傳送至 SNMPv1 目的地實體時,就會發生這種情況。

如需詳細資訊,請參閱 WinSNMP 程式設計工作關於 SNMP 訊息

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winsnmp.h
程式庫 Wsnmp32.lib
Dll Wsnmp32.dll

另請參閱

SnmpCreateSession

SnmpRecvMsg

WinSNMP 函式

WinSNMP API 概觀