SnmpGetPduData 関数 (winsnmp.h)
[SNMP は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、WS-Man の Microsoft 実装である Windows リモート管理を使用します。
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 または次のいずれかの値を指定できます。 最初の 6 つのエラーは、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 関数を呼び出してアプリケーションが作成する 1 つ、またはアプリケーションが SnmpGetPduData の呼び出しを使用して受信して読み取る 1 つです。
アプリケーションが SnmpCreatePdu を使用して PDU を作成するとき、またはアプリケーションが SnmpGetPduData を使用して PDU を読み取った後、Microsoft WinSNMP 実装では、アプリケーションが PDU フィールドの値を "認識" することを想定しています。 アプリケーションが SnmpGetPduData を使用して PDU を 2 回目に読み取ると、その呼び出しによって、指定された PDU の変数バインド リストのコピーが生成されます。 この種類の SnmpGetPduData の呼び出しでは、PDU へのハンドルも複製されます。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winsnmp.h |
Library | Wsnmp32.lib |
[DLL] | Wsnmp32.dll |