icmpCreateFile 函式 (icmpapi.h)

IcmpCreateFile函式會開啟可發出 IPv4 ICMP 回應要求的控制碼。

Syntax

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 檔案。 相反地,應用程式應該檢查Iphlpapi.dll中是否有 IcmpCreateFile,並呼叫LoadLibrary和GetProcAddress。 失敗,應用程式應該檢查Icmp.dll中是否有 IcmpCreateFile,並呼叫LoadLibrary和GetProcAddress。

針對 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 專業版 [傳統型應用程式 |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

另請參閱

GetLastError

Icmp6CreateFile

Icmp6ParseReplies

Icmp6SendEcho2

IcmpCloseHandle

IcmpParseReplies

IcmpSendecho

IcmpSendEcho2

IcmpSendEcho2Ex