IcmpCreateFile 함수(icmpapi.h)
IcmpCreateFile 함수는 IPv4 ICMP 에코 요청을 실행할 수 있는 핸들을 엽니다.
구문
IPHLPAPI_DLL_LINKAGE HANDLE IcmpCreateFile();
반환 값
IcmpCreateFile 함수는 성공 시 열린 핸들을 반환합니다. 실패 시 함수는 INVALID_HANDLE_VALUE 반환합니다. 확장 오류 정보는 GetLastError 함수를 호출합니다.
설명
IcmpCreateFile 함수는 Windows 2000의 Icmp.dll 내보냅니다. IcmpCreateFile 함수는 Windows XP 이상에서 Iphlpapi.dll 내보냅니다. 이 함수를 사용하려면 Windows 버전 검사를 사용하지 않는 것이 좋습니다. Windows 2000, Windows XP, Windows Server 2003 이상 Windows 버전에서 이 함수를 사용하여 이식성이 필요한 애플리케이션은 Icmp.lib 또는 Iphlpapi.lib 파일에 정적으로 연결해서는 안 됩니다. 대신 애플리케이션은 LoadLibrary 및 GetProcAddress를 호출하여 Iphlpapi.dllIcmpCreateFile이 있는지 검사 합니다. 실패하면 애플리케이션이 LoadLibrary 및 GetProcAddress를 호출하여 Icmp.dllIcmpCreateFile이 있는지 검사 합니다.
IPv6의 경우 Icmp6CreateFile, Icmp6SendEcho2 및 Icmp6ParseReplies 함수를 사용합니다.
Iphlpapi.h 헤더 파일에 대한 include 지시문은 Icmpapi.h 헤더 파일 앞에 배치해야 합니다.
예제
다음 예제에서는 ICMP 에코 요청을 실행할 수 있는 핸들을 엽니다.
#include <windows.h>
#include <stdio.h>
#include <iphlpapi.h>
#include <icmpapi.h>
// Need to link with Iplhlapi.lib
#pragma comment(lib, "IPHLPAPI.lib")
void main()
{
HANDLE hIcmpFile;
hIcmpFile = IcmpCreateFile();
if (hIcmpFile == INVALID_HANDLE_VALUE) {
printf("\tUnable to open handle.\n");
printf("IcmpCreatefile returned error: %ld\n", GetLastError() );
}
else {
printf("\tHandle created.\n");
// Need to close the handle when done using it
IcmpCloseHandle(hIcmpFile);
}
}
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | icmpapi.h |
라이브러리 | Iphlpapi.lib |
DLL | Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP의 Iphlpapi.dll Windows 2000 Server 및 Windows 2000 Professional의 Icmp.dll |
참고 항목
IcmpSendEcho