32 #define WIN32_LEAN_AND_MEAN 34 #define WIN32_NO_STATUS 49 #define SIZEOF_ICMP_ERROR 8 50 #define SIZEOF_IO_STATUS_BLOCK 8 51 #define DEFAULT_TIMEOUT 1000 52 #define MAX_SEND_SIZE 65500 56 static void Ping(
void);
427 if (SendBuffer ==
NULL)
501 ZeroMemory(&SockAddrIn6,
sizeof(SockAddrIn6));
527 switch (pEchoReply->
Status)
576 SockAddrIn.
sin_addr.S_un.S_addr = *IP4Addr;
590 switch (pEchoReply->
Status)
static WCHAR CanonName[NI_MAXHOST]
namespace GUID const ADDRINFOEXW * hints
#define IDS_REQUEST_TIMED_OUT
int wmain(int argc, WCHAR *argv[])
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
struct _IPV6_ADDRESS_EX * PIPV6_ADDRESS_EX
ADDRESS_FAMILY sin6_family
INT WSAAPI WSAAddressToStringW(IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPWSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength)
#define IDS_REPLY_TIME_0MS
#define IDS_APPROXIMATE_RTT
static BOOL ResolveTarget(PCWSTR target)
struct icmp_echo_reply * PICMP_ECHO_REPLY
static ULONG EchosSuccessful
INT WSAAPI WSACleanup(VOID)
#define IDS_DEST_NET_UNREACHABLE
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
struct sockaddr * PSOCKADDR
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
#define IDS_PINGING_ADDRESS
#define IP_TTL_EXPIRED_TRANSIT
static BOOL ParseCmdLine(int argc, PWSTR argv[])
static BOOL WINAPI ConsoleCtrlHandler(DWORD ControlType)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define ConInitStdStreams()
INT WSAAPI GetAddrInfoW(IN PCWSTR pszNodeName, IN PCWSTR pszServiceName, IN const ADDRINFOW *ptHints, OUT PADDRINFOW *pptResult)
#define IDS_REPLY_TIME_MS
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine, BOOL Add)
INT WINAPI WSAStartup(IN WORD wVersionRequested, OUT LPWSADATA lpWSAData)
#define IDS_MISSING_ADDRESS
static ULONG EchosReceived
HANDLE WINAPI Icmp6CreateFile(VOID)
INT __cdecl ConResPrintf(IN PCON_STREAM Stream, IN UINT uID,...)
#define IDS_DEST_HOST_UNREACHABLE
static void PrintStats(void)
INT WSAAPI WSAGetLastError(VOID)
ICMPV6_ECHO_REPLY_LH * PICMPV6_ECHO_REPLY
#define IP_DEST_NET_UNREACHABLE
INT WSAAPI GetNameInfoW(IN CONST SOCKADDR *pSockaddr, IN socklen_t SockaddrLength, OUT PWCHAR pNodeBuffer, IN DWORD NodeBufferSize, OUT PWCHAR pServiceBuffer, IN DWORD ServiceBufferSize, IN INT Flags)
ICMPV6_ECHO_REPLY_LH ICMPV6_ECHO_REPLY
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID ReplyBuffer
#define IDS_TRANSMIT_FAILED
static IP_OPTION_INFORMATION IpOptions
#define IDS_BAD_PARAMETER
IN PVOID IN PVOID IN USHORT IN USHORT Size
unsigned int RoundTripTime
#define IDS_MISSING_VALUE
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
#define SIZEOF_IO_STATUS_BLOCK
#define SIZEOF_ICMP_ERROR
BOOL WINAPI IcmpCloseHandle(HANDLE IcmpHandle)
struct sockaddr_in SOCKADDR_IN
#define IDS_PINGING_HOSTNAME
static BOOL ResolveAddress
INT ConPuts(IN PCON_STREAM Stream, IN LPWSTR szStr)
struct sockaddr * ai_addr
WINSOCK_API_LINKAGE VOID WSAAPI FreeAddrInfoW(_In_opt_ PADDRINFOW pAddrInfo)
SOCKADDR_IN6_LH SOCKADDR_IN6
struct icmp_echo_reply ICMP_ECHO_REPLY
HANDLE WINAPI IcmpCreateFile(VOID)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
struct ip_option_information Options
#define IP_DEST_HOST_UNREACHABLE
DWORD WINAPI IcmpSendEcho2(HANDLE IcmpHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, IPAddr DestinationAddress, LPVOID RequestData, WORD RequestSize, PIP_OPTION_INFORMATION RequestOptions, LPVOID ReplyBuffer, DWORD ReplySize, DWORD Timeout)
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
DWORD WINAPI Icmp6SendEcho2(HANDLE IcmpHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, struct sockaddr_in6 *SourceAddress, struct sockaddr_in6 *DestinationAddress, LPVOID RequestData, WORD RequestSize, PIP_OPTION_INFORMATION RequestOptions, LPVOID ReplyBuffer, DWORD ReplySize, DWORD Timeout)