次の方法で共有


SnmpCreatePdu 関数 (winsnmp.h)

[SNMP は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。

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
1 つの要求で複数の値を検索して取得します。
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。 拡張エラー情報を取得するには、 SnmpGetLastError を呼び出します。 SnmpGetLastError 関数は、次のいずれかのエラーを返すことができます。

リターン コード 説明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 関数が正常に完了しませんでした。
SNMPAPI_ALLOC_ERROR
メモリ割り当て中にエラーが発生しました。
SNMPAPI_SESSION_INVALID
セッション ハンドルが無効です。
SNMPAPI_PDU_INVALID
PDU の種類が無効です。
SNMPAPI_VBL_INVALID
変数バインドの一覧が無効です。
SNMPAPI_OTHER_ERROR
不明または未定義のエラーが発生しました。

注釈

WinSNMP アプリケーションは、 SnmpSendMsg または SnmpEncodeMsg 関数を呼び出す前に PDU 作成する必要があります。

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

こちらもご覧ください

SnmpEncodeMsg

SnmpFreePdu

SnmpSendMsg

WinSNMP 関数

WinSNMP API の概要