다음을 통해 공유


SnmpRecvMsg 함수(winsnmp.h)

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

WinSNMP SnmpRecvMsg 함수는 SNMP 메시지 형식으로 SnmpSendMsg 함수 호출로 제출된 완료된 비동기 요청의 결과를 검색합니다. 또한 SnmpRecvMsg 함수는 WinSNMP 세션에 등록된 미해결 트랩 데이터 및 알림을 반환합니다.

구문

SNMPAPI_STATUS SNMPAPI_CALL SnmpRecvMsg(
  [in]  HSNMP_SESSION   session,
  [out] LPHSNMP_ENTITY  srcEntity,
  [out] LPHSNMP_ENTITY  dstEntity,
  [out] LPHSNMP_CONTEXT context,
  [out] LPHSNMP_PDU     PDU
);

매개 변수

[in] session

WinSNMP 세션에 대한 핸들입니다.

[out] srcEntity

메시지를 보내는 엔터티에 대한 핸들을 받는 변수에 대한 포인터입니다. SnmpRegister 함수에 대한 srcEntity 매개 변수는 트랩 알림을 등록하는 관리 엔터티에 대한 핸들을 지정합니다.

[out] dstEntity

메시지를 받는 엔터티에 대한 핸들을 받는 변수에 대한 포인터입니다. SnmpRegister 함수에 대한 dstEntity 매개 변수는 트랩을 보내는 관리 엔터티에 대한 핸들을 지정합니다.

[out] context

관리되는 개체 리소스 집합인 컨텍스트에 대한 핸들을 수신하는 변수에 대한 포인터입니다. srcEntity 매개 변수로 지정된 엔터티가 이 컨텍스트의 메시지를 발급합니다.

[out] PDU

메시지의 PDU(프로토콜 데이터 단위) 구성 요소에 대한 핸들을 수신하는 변수에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 SNMPAPI_SUCCESS 출력 매개 변수에는 이전 매개 변수 설명에 표시된 값이 포함됩니다.

함수가 실패하면 반환 값이 SNMPAPI_FAILURE. 네트워크 전송 계층 오류, 즉 SNMPAPI_TL_ 시작하는 확장 오류 코드로 인해 함수가 실패하는 경우 출력 매개 변수에는 WinSNMP 애플리케이션이 정상적으로 복구할 수 있도록 앞에 표시된 값도 포함됩니다.

확장된 오류 정보를 얻으려면 SnmpGetLastError를 호출합니다. SnmpGetLastError 함수는 다음 WinSNMP 또는 네트워크 전송 계층 오류 중 하나를 반환할 수 있습니다.

반환 코드 설명
SNMPAPI_NOT_INITIALIZED
SnmpStartup 함수가 성공적으로 완료되지 않았습니다.
SNMPAPI_ALLOC_ERROR
메모리 할당 중에 오류가 발생했습니다.
SNMPAPI_SESSION_INVALID
세션 매개 변수가 잘못되었습니다.
SNMPAPI_NOOP
지정된 세션에는 현재 큐에 메시지가 없습니다.
SNMPAPI_TL_NOT_INITIALIZED
네트워크 전송 계층이 초기화되지 않았습니다.
SNMPAPI_TL_NOT_SUPPORTED
네트워크 전송 계층은 SNMP 프로토콜을 지원하지 않습니다.
SNMPAPI_TL_NOT_AVAILABLE
네트워크 하위 시스템이 실패했습니다.
SNMPAPI_TL_RESOURCE_ERROR
네트워크 전송 계층에서 리소스 오류가 발생했습니다.
SNMPAPI_TL_UNDELIVERABLE
dstEntity 매개 변수로 지정된 엔터티를 사용할 수 없습니다.
SNMPAPI_TL_SRC_INVALID
srcEntity 매개 변수로 지정된 엔터티가 초기화되지 않았습니다.
SNMPAPI_TL_INVALID_PARAM
네트워크 전송 계층 함수 호출이 잘못된 입력 매개 변수를 수신했습니다.
SNMPAPI_TL_PDU_TOO_BIG
PDU가 너무 커서 네트워크 전송 계층이 보내거나 받을 수 없습니다.
SNMPAPI_TL_OTHER
정의되지 않은 네트워크 전송 계층 오류가 발생했습니다.
SNMPAPI_OTHER_ERROR
알 수 없거나 정의되지 않은 오류가 발생했습니다.
 

자세한 내용은 네트워크 전송 오류를 참조하세요.

설명

SnmpCreateSession 함수는 애플리케이션 창 핸들 및 알림 메시지 식별자를 Microsoft WinSNMP 구현에 전달합니다. 애플리케이션 창이 wMsg 매개 변수로 지정된 알림 메시지를 받으면 WinSNMP 애플리케이션은 SnmpCreateSession에서 반환된 세션 핸들을 사용하여 SnmpRecvMsg 함수를 호출하여 들어오는 PDU(프로토콜 데이터 단위)를 검색해야 합니다. 자세한 내용은 SNMP 메시지 정보를 참조하세요.

SnmpRecvMsg 함수는 4개의 개체를 인스턴스화하고 해당 리소스를 할당합니다. 두 개의 엔터티 핸들, 컨텍스트 핸들 및 PDU 핸들. 반환된 PDU의 변수 바인딩 목록 구성 요소에 대한 핸들은 WinSNMP 애플리케이션이 SnmpGetPduData 함수를 호출할 때까지 인스턴스화되지 않습니다. SnmpRecvMsg에서 반환하는 리소스가 더 이상 필요하지 않은 경우 WinSNMP 애플리케이션은 리소스에 해당하는 WinSNMP 함수를 사용하여 개별 리소스를 해제해야 합니다. 자세한 내용은 SnmpFreePdu, SnmpFreeEntitySnmpFreeContext를 참조하세요.

구현은 SNMP 버전 1 프레임워크(SNMPv1)에서 작동하는 엔터티에서 트랩을 수신하면 트랩을 SNMP 버전 2C(SNMPv2C) 형식으로 변환합니다. 따라서 SnmpRecvMsg 가 트랩을 제공하는 경우 항상 SNMPv2C 형식입니다. 자세한 내용은 SNMPv1에서 SNMPv2C로 트랩 변환WinSNMP 프로그래밍 작업을 참조하세요.

요구 사항

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

추가 정보

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpGetPduData

SnmpRegister

SnmpSendMsg

WinSNMP 함수

WinSNMP API 개요