共用方式為


SnmpCreatePdu 函式 (winsnmp.h)

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

WinSNMP SnmpCreatePdu 函式會建立並初始化 SNMP 通訊協定數據單位, (PDU) 。

語法

HSNMP_PDU SNMPAPI_CALL SnmpCreatePdu(
  [in] HSNMP_SESSION session,
  [in] smiINT        PDU_type,
  [in] smiINT32      request_id,
  [in] smiINT        error_status,
  [in] smiINT        error_index,
  [in] HSNMP_VBL     varbindlist
);

參數

[in] session

WinSNMP 會話的句柄。

[in] PDU_type

指定識別SNMP作業的 PDU 類型。 此參數可以是 NULL,也可以是下列其中一個值。 如果此參數為 NULL,Microsoft WinSNMP 實作會提供預設 PDU 類型SNMP_PDU_GETNEXT。 您可以使用 SnmpCreatePdu 函式呼叫建立的唯一陷阱 PDU 類型是 SNMPv2C 陷阱 PDU。

意義
SNMP_PDU_GET
從指定的SNMP變數搜尋和擷取值。
SNMP_PDU_GETNEXT
搜尋並擷取 SNMP 變數的值,而不知道變數的確切名稱。
SNMP_PDU_RESPONSE
回復SNMP_PDU_GET或SNMP_PDU_GETNEXT要求。
SNMP_PDU_SET
將值儲存在指定的SNMP變數中。
SNMP_PDU_GETBULK
使用單一要求搜尋和擷取多個值。
SNMP_PDU_TRAP
將管理系統警示到SNMPv2C下的事件。

[in] request_id

指定 WinSNMP 應用程式提供以識別 PDU 的唯一數值。 如果此參數為 NULL,則實作會指派值。

[in] error_status

如果 PDU_type 參數等於 SNMP_PDU_GETBULK,此參數會指定 PDU non_repeaters 欄位的值。 針對其他 PDU 類型,此參數會指定 PDU error_status 字段的值。 此參數可以是 Null

[in] error_index

如果 PDU_type 參數等於 SNMP_PDU_GETBULK,此參數會指定 PDU max_repetitions 欄位的值。 針對其他 PDU 類型,此參數會指定 PDU error_index 欄位的值。 此參數可以是 Null

[in] varbindlist

結構句柄,表示 SNMP 變數系結清單。 此參數可以是 Null

傳回值

如果函式成功,傳回值就是新 SNMP PDU 的句柄。

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

傳回碼 Description
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函式未順利完成。
SNMPAPI_ALLOC_ERROR
記憶體配置期間發生錯誤。
SNMPAPI_SESSION_INVALID
會話句柄無效。
SNMPAPI_PDU_INVALID
PDU 類型無效。
SNMPAPI_VBL_INVALID
變數系結清單無效。
SNMPAPI_OTHER_ERROR
發生未知或未定義的錯誤。

備註

WinSNMP 應用程式必須先建立 PDU,才能呼叫 SnmpSendMsgSnmpEncodeMsg 函 式。

需要 SnmpCreatePdu 函式的所有參數。 不過, 除了會話 參數之外的所有參數都可以是 NULL。 在此實例中,新的 PDU 具有下列預設值。

欄位 目錄
PDU_type SNMP_PDU_GETNEXT
request_id 實作會產生數值。
error_status SNMP_ERROR_NOERROR
error_index 0
varbindlist NULL
 

應用程式必須呼叫 SnmpFreePdu 函式,以釋放 SnmpCreatePdu 函式為新的 PDU 配置的資源。

規格需求

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

另請參閱

SnmpEncodeMsg

SnmpFreePdu

SnmpSendMsg

WinSNMP 函式

WinSNMP API 概觀