共用方式為


snmpDecodeMsg 函式 (winsnmp.h)

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

WinSNMP SnmpDecodeMsg 函式會將編碼的SNMP訊息譯碼為其元件。 此函式會執行 WinSNMP SnmpEncodeMsg 函 式的相反動作。

語法

SNMPAPI_STATUS SNMPAPI_CALL SnmpDecodeMsg(
  [in]  HSNMP_SESSION   session,
  [out] LPHSNMP_ENTITY  srcEntity,
  [out] LPHSNMP_ENTITY  dstEntity,
  [out] LPHSNMP_CONTEXT context,
  [out] LPHSNMP_PDU     pdu,
  [in]  smiLPCOCTETS    msgBufDesc
);

參數

[in] session

WinSNMP 會話的句柄。 此為必要參數。 如需詳細資訊,請參閱下列一節。

[out] srcEntity

接收來源管理實體句柄的變數指標。 如需詳細資訊,請參閱接下來的<備註>一節。

[out] dstEntity

接收目標管理實體句柄之變數的指標。 如需詳細資訊,請參閱接下來的<備註>一節。

[out] context

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

[out] pdu

接收SNMP 通訊協議數據單位句柄的變數指標, (PDU) 。

[in] msgBufDesc

smiOCTETS 結構的指標,其中包含要譯碼成其元件的 SNMP 訊息。 結構的 len 成員會指定要處理的位元元數目上限; ptr 成員會指向編碼的SNMP訊息。

傳回值

如果函式成功,傳回值就是譯碼的位元元組數目。 這個值可以等於或小於 msgBufDesc 參數所指向之 smiOCTETS 結構的 len 成員。

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

傳回碼 Description
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函式未順利完成。
SNMPAPI_ALLOC_ERROR
記憶體配置期間發生錯誤。
SNMPAPI_SESSION_INVALID
會話參數無效。
SNMPAPI_ENTITY_INVALID
一或兩個實體參數無效。
SNMPAPI_CONTEXT_INVALID
內容參數無效。
SNMPAPI_PDU_INVALID
pdu 參數無效。
SNMPAPI_OUTPUT_TRUNCATED
輸出緩衝區長度不足。 未建立輸出參數。
SNMPAPI_MESSAGE_INVALID
msgBufDesc 參數所指示之緩衝區中的SNMP訊息格式無效。 未建立輸出參數。
SNMPAPI_OTHER_ERROR
發生未知或未定義的錯誤。

備註

當應用程式將 SNMPv1 或 SNMPv2C 訊息提交至 SnmpDecodeMsg 函式時,Microsoft WinSNMP 實作會在 srcEntitydstEntity 參數中傳回零的值。 這是因為訊息格式不包含建立 WinSNMP 實體資源所需的地址資訊。

由於 成功呼叫 SnmpDecodeMsg 函式,Microsoft WinSNMP 實作會將資源配置給 WinSNMP 應用程式。 建議 WinSNMP 應用程式使用對應至資源的 WinSNMP 函式釋放個別資源。 如需詳細資訊,請參閱釋放 WinSNMP 描述元WinSNMP 資料管理 概念

規格需求

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

另請參閱

SnmpEncodeMsg

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpSendMsg

WinSNMP 函式

WinSNMP API 概觀

smiOCTETS