reactos/sdk/include/psdk/icmpapi.h
Ged Murphy 344f367211
[TRACERT] Rewrite tracert
- Full rewrite. This commit replaces the old utility.
- Use the new ICMP APIs instead of manually crafting ping requests using raw sockets.
- Add support for additional languages (the previous utility was hardcoded)
- Add support for IPv6
- Make the icmpapi header C++ compatible. (we don't appear to sync this with wine anymore.)
- Now runs on Win10, is much more reliable, and brings the code somewhat into the 21st century.
(It's currently missing source routing (-j), but as most routers disable this anyway, I'm not sure that it's worth adding)
2018-01-02 09:43:14 +00:00

104 lines
2.7 KiB
C

/*
* Interface to the ICMP functions.
*
* Copyright (C) 1999 Francois Gouget
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef __WINE_ICMPAPI_H
#define __WINE_ICMPAPI_H
#ifdef __cplusplus
extern "C" {
#endif
HANDLE WINAPI IcmpCreateFile(
VOID
);
HANDLE WINAPI Icmp6CreateFile(
VOID
);
BOOL WINAPI IcmpCloseHandle(
HANDLE IcmpHandle
);
DWORD WINAPI IcmpSendEcho(
HANDLE IcmpHandle,
IPAddr DestinationAddress,
LPVOID RequestData,
WORD RequestSize,
PIP_OPTION_INFORMATION RequestOptions,
LPVOID ReplyBuffer,
DWORD ReplySize,
DWORD Timeout
);
DWORD
WINAPI
IcmpSendEcho2(
HANDLE IcmpHandle,
HANDLE Event,
FARPROC ApcRoutine,
PVOID ApcContext,
IPAddr DestinationAddress,
LPVOID RequestData,
WORD RequestSize,
PIP_OPTION_INFORMATION RequestOptions,
LPVOID ReplyBuffer,
DWORD ReplySize,
DWORD Timeout
);
DWORD
WINAPI
Icmp6SendEcho2(
HANDLE IcmpHandle,
HANDLE Event,
FARPROC 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
);
DWORD
WINAPI
IcmpParseReplies(
LPVOID ReplyBuffer,
DWORD ReplySize
);
DWORD
WINAPI
Icmp6ParseReplies(
LPVOID ReplyBuffer,
DWORD ReplySize
);
#ifdef __cplusplus
}
#endif
#endif /* __WINE_ICMPAPI_H */