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 또는 네트워크 전송 계층 오류 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
SnmpStartup 함수가 성공적으로 완료되지 않았습니다. |
|
메모리 할당 중에 오류가 발생했습니다. |
|
세션 매개 변수가 잘못되었습니다. |
|
엔터티 매개 변수 중 하나 또는 둘 다 잘못되었습니다. |
|
컨텍스트 매개 변수가 잘못되었습니다. |
|
PDU 매개 변수가 잘못되었습니다. |
|
PDU의 PDU_type 필드에 지정된 작업은 대상 엔터티에 적합하지 않습니다. 자세한 내용은 아래 설명 부분을 참조하십시오. |
|
네트워크 전송 계층이 초기화되지 않았습니다. |
|
네트워크 전송 계층은 SNMP 프로토콜을 지원하지 않습니다. |
|
네트워크 하위 시스템이 실패했습니다. |
|
네트워크 전송 계층에서 리소스 오류가 발생했습니다. |
|
srcEntity 매개 변수로 지정된 엔터티가 초기화되지 않았습니다. |
|
네트워크 전송 계층 함수 호출이 잘못된 입력 매개 변수를 수신했습니다. |
|
PDU가 너무 커서 네트워크 전송 계층이 보내거나 받을 수 없습니다. |
|
정의되지 않은 네트워크 전송 계층 오류가 발생했습니다. |
|
알 수 없거나 정의되지 않은 오류가 발생했습니다. |
자세한 내용은 네트워크 전송 오류를 참조하세요.
설명
SnmpSendMsg 함수는 비동기적으로 실행되므로 즉시 반환됩니다.
구현은 비동기 요청이 완료되면 WinSNMP 애플리케이션에 알린 것입니다. 구현은 세션에 대한 SnmpCreateSession에 대한 초기 호출에서 각각 wMsg 및 hWnd 매개 변수로 지정된 창에 알림 메시지를 전송하여 이 작업을 수행합니다. 애플리케이션 창에서 알림 메시지를 받으면 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 |