다음을 통해 공유


SnmpSendMsg 함수(winsnmp.h)

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

WinSNMP 애플리케이션은 SnmpSendMsg 함수를 호출하여 Microsoft WinSNMP 구현이 SNMP 메시지 형식으로 SNMP PDU(프로토콜 데이터 단위)를 전송하도록 요청합니다. WinSNMP 애플리케이션은 원본 엔터티, 대상 엔터티 및 요청에 대한 컨텍스트를 지정합니다.

WinSNMP 애플리케이션에서 SnmpSendMsg 요청에 대한 응답으로 PDU가 필요한 경우 PDU를 검색해야 합니다. 이렇게 하려면 애플리케이션이 SnmpCreateSession에서 반환된 세션 핸들을 사용하여 SnmpRecvMsg 함수를 호출해야 합니다.

구문

SNMPAPI_STATUS SNMPAPI_CALL SnmpSendMsg(
  [in] HSNMP_SESSION session,
  [in] HSNMP_ENTITY  srcEntity,
  [in] HSNMP_ENTITY  dstEntity,
  [in] HSNMP_CONTEXT context,
  [in] HSNMP_PDU     PDU
);

매개 변수

[in] session

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

[in] srcEntity

SNMP 메시지를 보내는 요청을 시작하는 관리 엔터티에 대한 핸들입니다.

[in] dstEntity

SNMP 요청에 응답할 대상 엔터티에 대한 핸들입니다.

[in] context

대상 관리 엔터티가 제어하는 컨텍스트(관리되는 개체 리소스 집합)에 대한 핸들입니다.

[in] PDU

SNMP 작업 요청을 포함하는 프로토콜 데이터 단위에 대한 핸들입니다.

반환 값

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

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

반환 코드 설명
SNMPAPI_NOT_INITIALIZED
SnmpStartup 함수가 성공적으로 완료되지 않았습니다.
SNMPAPI_ALLOC_ERROR
메모리 할당 중에 오류가 발생했습니다.
SNMPAPI_SESSION_INVALID
세션 매개 변수가 잘못되었습니다.
SNMPAPI_ENTITY_INVALID
엔터티 매개 변수 중 하나 또는 둘 다 잘못되었습니다.
SNMPAPI_CONTEXT_INVALID
컨텍스트 매개 변수가 잘못되었습니다.
SNMPAPI_PDU_INVALID
PDU 매개 변수가 잘못되었습니다.
SNMPAPI_OPERATION_INVALID
PDU의 PDU_type 필드에 지정된 작업은 대상 엔터티에 적합하지 않습니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
SNMPAPI_TL_NOT_INITIALIZED
네트워크 전송 계층이 초기화되지 않았습니다.
SNMPAPI_TL_NOT_SUPPORTED
네트워크 전송 계층은 SNMP 프로토콜을 지원하지 않습니다.
SNMPAPI_TL_NOT_AVAILABLE
네트워크 하위 시스템이 실패했습니다.
SNMPAPI_TL_RESOURCE_ERROR
네트워크 전송 계층에서 리소스 오류가 발생했습니다.
SNMPAPI_TL_SRC_INVALID
srcEntity 매개 변수로 지정된 엔터티가 초기화되지 않았습니다.
SNMPAPI_TL_INVALID_PARAM
네트워크 전송 계층 함수 호출이 잘못된 입력 매개 변수를 수신했습니다.
SNMPAPI_TL_PDU_TOO_BIG
PDU가 너무 커서 네트워크 전송 계층이 보내거나 받을 수 없습니다.
SNMPAPI_TL_OTHER
정의되지 않은 네트워크 전송 계층 오류가 발생했습니다.
SNMPAPI_OTHER_ERROR
알 수 없거나 정의되지 않은 오류가 발생했습니다.
 

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

설명

SnmpSendMsg 함수는 비동기적으로 실행되므로 즉시 반환됩니다.

구현은 비동기 요청이 완료되면 WinSNMP 애플리케이션에 알린 것입니다. 구현은 세션에 대한 SnmpCreateSession에 대한 초기 호출에서 각각 wMsghWnd 매개 변수로 지정된 창에 알림 메시지를 전송하여 이 작업을 수행합니다. 애플리케이션 창에서 알림 메시지를 받으면 WinSNMP 애플리케이션은 들어오는 PDU를 검색해야 합니다. 애플리케이션은 SnmpCreateSession에서 반환된 세션 핸들을 사용하여 SnmpRecvMsg 함수를 호출하여 이 작업을 수행합니다.

WinSNMP 애플리케이션이 SnmpSendMsg 함수를 호출하는 경우 구현은 전송 요청을 완료하는 데 사용할 네트워크 전송 프로토콜 및 SNMP 버전 프레임워크를 결정합니다. 구현은 해당 기능을 요청 세션 및 대상 관리 엔터티와 연결된 속성과 일치시켜 이를 결정합니다. 이 정보는 구현 데이터베이스의 값에서 사용할 수 있습니다.

WinSNMP 애플리케이션이 SNMP 버전 2C 프레임워크(SNMPv2C)에서 사용할 수 있는 기능을 요청하지만 대상 엔터티가 SNMP 버전 1 프레임워크(SNMPv1)를 사용하는 경우 구현은 요청을 SNMPv1로 변환하려고 시도합니다. 이를 위해 구현에서는 "인터넷 표준 네트워크 관리 프레임워크의 버전 1과 버전 2 간의 공존"RFC1908 정의된 절차를 사용합니다. 번역이 불가능한 경우 확장 오류 코드 SNMPAPI_OPERATION_INVALID SnmpSendMsg 가 실패합니다. 예를 들어 애플리케이션이 SNMP_PDU_InformRequest 데이터 형식의 PDU를 SNMPv1 대상 엔터티로 보내려고 할 때 이러한 상황이 발생합니다.

자세한 내용은 WinSNMP 프로그래밍 작업SNMP 메시지 정보를 참조하세요.

요구 사항

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

추가 정보

SnmpCreateSession

SnmpRecvMsg

WinSNMP 함수

WinSNMP API 개요