다음을 통해 공유


SnmpGetVb 함수(winsnmp.h)

[SNMP는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다. 대신 WS-Man의 Microsoft 구현인 Windows 원격 관리를 사용합니다.]

WinSNMP 애플리케이션은 SnmpGetVb 함수를 호출하여 변수 바인딩 목록에서 정보를 검색합니다. 이 WinSNMP 함수는 인덱 스 매개 변수로 지정된 변수 바인딩 항목에서 변수 이름과 관련 값을 검색합니다.

구문

SNMPAPI_STATUS SNMPAPI_CALL SnmpGetVb(
  [in]  HSNMP_VBL  vbl,
  [in]  smiUINT32  index,
  [out] smiLPOID   name,
  [out] smiLPVALUE value
);

매개 변수

[in] vbl

검색할 변수 바인딩 목록에 대한 핸들입니다.

[in] index

검색할 변수 바인딩 항목을 식별하는 부호 없는 long 정수 변수를 지정합니다. 이 변수는 변수 바인딩 목록 내에서 변수 바인딩 항목의 위치를 포함합니다.

이 매개 변수의 유효한 값은 1에서 n까지의 범위에 있습니다. 여기서 1은 변수 바인딩 목록의 첫 번째 변수 바인딩 항목을 나타내고 n은 목록의 총 항목 수입니다. 자세한 내용은 다음 설명 섹션을 참조하세요.

[out] name

변수 바인딩 항목의 변수 이름을 수신하는 smiOID 구조체에 대한 포인터입니다.

[out] value

name 매개 변수로 식별된 변수와 연결된 값을 수신하는 smiVALUE 구조체에 대한 포인터입니다.

함수가 성공하면 value 매개 변수가 가리키는 구조체의 구문 멤버가 다음 구문 데이터 형식 중 하나일 수 있습니다. 자세한 내용은 RFC 1902, "SNMPv2(Simple Network Management Protocol) 버전 2에 대한 관리 정보 구조"를 참조하세요.

구문 데이터 형식 의미
SNMP_SYNTAX_INT
서명된 32비트 정수 변수를 나타냅니다.
SNMP_SYNTAX_OCTETS
이진 또는 텍스트 데이터인 8진수 문자열 변수를 나타냅니다.
SNMP_SYNTAX_NULL
NULL 값을 나타냅니다.
SNMP_SYNTAX_OID
최대 128개의 하위 ID를 가진 할당된 이름인 개체 식별자 변수를 나타냅니다.
SNMP_SYNTAX_INT32
서명된 32비트 정수 변수를 나타냅니다.
SNMP_SYNTAX_IPADDR
32비트 인터넷 주소 변수를 나타냅니다. SNMPv1 PDU 트랩 형식을 사용하여 IPv6 주소를 나타내는 경우 이 값은 0.0.0.0입니다.
SNMP_SYNTAX_CNTR32
최대 값(2^32) – 1에 도달할 때까지 증가하는 카운터 변수를 나타냅니다.
SNMP_SYNTAX_GAUGE32
최대값을 초과하지 않고 늘리거나 줄일 수 있는 음수가 아닌 정수인 계기 변수를 나타냅니다.
SNMP_SYNTAX_TIMETICKS
최대값(2^32)-1에 도달할 때까지의 시간을 수백 초로 측정하는 카운터 변수를 나타냅니다. 특정 타이머 이벤트를 기준으로 하는 음수가 아닌 정수입니다.
SNMP_SYNTAX_OPAQUE
이 형식은 이전 버전과의 호환성을 제공하며 새 개체 형식에 사용하면 안 됩니다. ASN.1(임의 추상 구문 표기법 1) 구문을 전달하는 기능을 지원합니다.
SNMP_SYNTAX_CNTR64
최대 값(2^64) – 1에 도달할 때까지 증가하는 카운터 변수를 나타냅니다.
SNMP_SYNTAX_UINT32
부호 없는 32비트 정수 변수를 나타냅니다.
SNMP_SYNTAX_NOSUCHOBJECT
에이전트가 변수에 해당하는 개체 형식을 지원하지 않음을 나타냅니다.
SNMP_SYNTAX_NOSUCHINSTANCE
작업에 대한 개체 instance 존재하지 않음을 나타냅니다.
SNMP_SYNTAX_ENDOFMIBVIEW
WinSNMP 애플리케이션이 에이전트가 지원하는 MIB 트리의 끝을 벗어난 개체 식별자를 참조하려고 했음을 나타냅니다.

반환 값

함수가 성공하면 반환 값이 SNMPAPI_SUCCESS.

함수가 실패하면 반환 값이 SNMPAPI_FAILURE. 확장 오류 정보를 얻으려면 SnmpGetLastError를 호출합니다. SnmpGetLastError 함수는 다음 오류 중 하나를 반환할 수 있습니다.

반환 코드 설명
SNMPAPI_NOT_INITIALIZED
SnmpStartup 함수가 성공적으로 완료되지 않았습니다.
SNMPAPI_ALLOC_ERROR
메모리 할당 중에 오류가 발생했습니다.
SNMPAPI_INDEX_INVALID
인덱스 매개 변수가 잘못되었습니다.
SNMPAPI_VBL_INVALID
vbl 매개 변수가 잘못되었습니다.
SNMPAPI_OTHER_ERROR
알 수 없거나 정의되지 않은 오류가 발생했습니다.

설명

마지막 세 가지 구문 형식은 SNMP 버전 2C(SNMPv2C) 프레임워크의 예외 조건을 설명합니다.

SnmpGetVb 함수는 name 매개 변수가 가리키는 구조체에서 변수 바인딩 항목의 변수 이름을 반환합니다. 값 매개 변수가 가리키는 구조체에서 변수의 연결된 값을 반환합니다.

입력 시 SnmpGetVb 함수는 각각 이름 매개 변수로 가리키는 smiOIDsmiVALUE 구조체의 멤버를 무시합니다. 함수가 성공적으로 완료되면 Microsoft WinSNMP 구현이 멤버를 덮어씁니다.

인덱스 매개 변수에 사용할 WinSNMP 애플리케이션의 유효한 값은 다음과 같습니다.

  • SnmpCountVbl 함수 호출의 반환 값입니다.
  • SnmpRecvMsg 함수 호출에서 반환된 SNMP_PDU_RESPONSE PDU(프로토콜 데이터 단위)의 오류 인덱스 필드
WinSNMP 애플리케이션은 SnmpFreeDescriptor 함수를 호출하여 이름 매개 변수가 가리키는 smiOID 구조체의 ptr 멤버에 할당된 리소스를 해제해야 합니다. 또한 애플리케이션은 SnmpFreeDescriptor 함수를 호출하여 다음 조건에서 매개 변수가 가리키는 smiVALUE 구조에 할당된 리소스를 해제해야 합니다. 멤버가 smiOCTETS 또는 smiOID 구조체인 경우 애플리케이션은 SnmpFreeDescriptor를 호출하여 이러한 구조체에 할당된 리소스를 해제해야 합니다. 자세한 내용은 WinSNMP 데이터 관리 개념을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winsnmp.h
라이브러리 Wsnmp32.lib
DLL Wsnmp32.dll

추가 정보

SnmpCountVbl

SnmpFreeDescriptor

SnmpRecvMsg

WinSNMP 함수

WinSNMP API 개요

smiOCTETS

smiOID

smiVALUE