snmpGetPduData 函式 (winsnmp.h)
[SNMP 可用於需求一節中指定的作業系統。 它在後續版本中可能會變更或無法使用。 請改用 Windows 遠端系統管理,這是 WS-Man 的 Microsoft 實作。
WinSNMP SnmpGetPduData 函式會從指定的 SNMP 通訊協定資料單位傳回選取的資料欄位, (PDU) 。
語法
SNMPAPI_STATUS SNMPAPI_CALL SnmpGetPduData(
[in] HSNMP_PDU PDU,
[out] smiLPINT PDU_type,
[out] smiLPINT32 request_id,
[out] smiLPINT error_status,
[out] smiLPINT error_index,
[out] LPHSNMP_VBL varbindlist
);
參數
[in] PDU
SNMP PDU 的控制碼。
[out] PDU_type
接收指定 PDU 之PDU_type 欄位之變數的指標。 此參數可以是 Null,或下列其中一個值。
[out] request_id
接收指定 PDU 之request_id 欄位之變數的指標。 此參數可以是 Null。
[out] error_status
接收指定 PDU 之error_status 欄位之變數的指標。 如果 PDU_type 參數等於 SNMP_PDU_GETBULK,此參數會收到 PDU non_repeaters 欄位的值。
此參數可以是 Null,或下列其中一個值。 SNMP 第 1 版 (SNMPv1) 和 SNMP 第 2C 版 (SNMPv2C) 常見前六個錯誤。 其餘錯誤僅適用于 SNMPv2C。
[out] error_index
接收指定 PDU 之error_index 欄位之變數的指標。
如果 PDU_type 參數等於 SNMP_PDU_GETBULK,此參數會收到指定 PDU 的 max_repetitions 欄位值。 此參數可以是 Null。
[out] varbindlist
接收指定 PDU 之變數系結清單欄位控制碼的變數指標。 此參數可以是 Null。 如需詳細資訊,請參閱下列一節。
傳回值
如果函式成功,傳回值會SNMPAPI_SUCCESS。
如果函式失敗,傳回值會SNMPAPI_FAILURE。 若要取得擴充的錯誤資訊,請呼叫 SnmpGetLastError。 SnmpGetLastError 函式可以傳回下列其中一個錯誤。
傳回碼 | 描述 |
---|---|
|
SnmpStartup函式未順利完成。 |
|
記憶體配置期間發生錯誤。 |
|
所有輸出參數都是 Null。 未執行 SNMP 作業。 |
|
PDU 類型無效。 |
|
發生未知或未定義的錯誤。 |
備註
需要 SnmpGetPduData 函式的所有參數。 不過, PDU 參數以外的所有參數都可以是 Null。 在應用程式傳遞為 Null的參數中, SnmpGetPduData 函式不會傳回值。
如果varbindlist參數不是Null,SnmpGetPduData函式一律會傳回新變數系結清單物件的控制碼。 此外,如果 PDU 參數指定新的 PDU ,函式也會將控制碼附加至新的 PDU。
當應用程式使用不是Null的varbindlist參數呼叫SnmpGetPduData時,PDU參數會指定現有的 PDU,此函式會將控制碼傳回給新的重複變數系結清單。 函式呼叫不會干擾附加至現有 PDU 的控制碼。 現有的 PDU 是應用程式使用 對 SnmpCreatePdu 函式的呼叫所建立的 PDU,或使用 對 SnmpGetPduData的呼叫來讀取應用程式所建立的 PDU。
當應用程式使用 SnmpCreatePdu建立 PDU 時,或在應用程式使用 SnmpGetPduData 讀取 PDU之後,Microsoft WinSNMP 實作會預期應用程式「知道」PDU 欄位的值。 如果應用程式第二次使用 SnmpGetPduData 讀取 PDU,則呼叫會產生指定 PDU 的變數系結清單複本。 這種類型的 SnmpGetPduData 呼叫也會複製 PDU 的控制碼。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winsnmp.h |
程式庫 | Wsnmp32.lib |
Dll | Wsnmp32.dll |