SnmpCreatePdu 函数 (winsnmp.h)
[SNMP 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 请改用 Windows 远程管理,这是 WS-Man 的 Microsoft 实现。]
WinSNMP SnmpCreatePdu 函数 (PDU) 创建并初始化 SNMP 协议数据单元。
语法
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。
[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。 若要获取扩展错误信息,请调用 SnmpGetLastError。 SnmpGetLastError 函数可能会返回以下错误之一。
返回代码 | 说明 |
---|---|
|
SnmpStartup 函数未成功完成。 |
|
内存分配期间出错。 |
|
会话句柄无效。 |
|
PDU 类型无效。 |
|
变量绑定列表无效。 |
|
发生未知或未定义错误。 |
注解
WinSNMP 应用程序必须先创建 PDU,然后才能调用 SnmpSendMsg 或 SnmpEncodeMsg 函数。
需要 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 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winsnmp.h |
Library | Wsnmp32.lib |
DLL | Wsnmp32.dll |