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 또는 네트워크 전송 계층 오류 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
SnmpStartup 함수가 성공적으로 완료되지 않았습니다. |
|
메모리 할당 중에 오류가 발생했습니다. |
|
세션 매개 변수가 잘못되었습니다. |
|
지정된 세션에는 현재 큐에 메시지가 없습니다. |
|
네트워크 전송 계층이 초기화되지 않았습니다. |
|
네트워크 전송 계층은 SNMP 프로토콜을 지원하지 않습니다. |
|
네트워크 하위 시스템이 실패했습니다. |
|
네트워크 전송 계층에서 리소스 오류가 발생했습니다. |
|
dstEntity 매개 변수로 지정된 엔터티를 사용할 수 없습니다. |
|
srcEntity 매개 변수로 지정된 엔터티가 초기화되지 않았습니다. |
|
네트워크 전송 계층 함수 호출이 잘못된 입력 매개 변수를 수신했습니다. |
|
PDU가 너무 커서 네트워크 전송 계층이 보내거나 받을 수 없습니다. |
|
정의되지 않은 네트워크 전송 계층 오류가 발생했습니다. |
|
알 수 없거나 정의되지 않은 오류가 발생했습니다. |
자세한 내용은 네트워크 전송 오류를 참조하세요.
설명
SnmpCreateSession 함수는 애플리케이션 창 핸들 및 알림 메시지 식별자를 Microsoft WinSNMP 구현에 전달합니다. 애플리케이션 창이 wMsg 매개 변수로 지정된 알림 메시지를 받으면 WinSNMP 애플리케이션은 SnmpCreateSession에서 반환된 세션 핸들을 사용하여 SnmpRecvMsg 함수를 호출하여 들어오는 PDU(프로토콜 데이터 단위)를 검색해야 합니다. 자세한 내용은 SNMP 메시지 정보를 참조하세요.
SnmpRecvMsg 함수는 4개의 개체를 인스턴스화하고 해당 리소스를 할당합니다. 두 개의 엔터티 핸들, 컨텍스트 핸들 및 PDU 핸들. 반환된 PDU의 변수 바인딩 목록 구성 요소에 대한 핸들은 WinSNMP 애플리케이션이 SnmpGetPduData 함수를 호출할 때까지 인스턴스화되지 않습니다. SnmpRecvMsg에서 반환하는 리소스가 더 이상 필요하지 않은 경우 WinSNMP 애플리케이션은 리소스에 해당하는 WinSNMP 함수를 사용하여 개별 리소스를 해제해야 합니다. 자세한 내용은 SnmpFreePdu, SnmpFreeEntity 및 SnmpFreeContext를 참조하세요.
구현은 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 |