다음을 통해 공유


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 구현은 SNMP_PDU_GETNEXT 기본 PDU 형식을 제공합니다. 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. 확장 오류 정보를 얻으려면 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일 수 있습니다. 이 instance 새 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
라이브러리 Wsnmp32.lib
DLL Wsnmp32.dll

추가 정보

SnmpEncodeMsg

SnmpFreePdu

SnmpSendMsg

WinSNMP 함수

WinSNMP API 개요