ReactOS 0.4.16-dev-1946-g52006dd
icmpapi.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS PSDK
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: ICMP API definitions
5 * COPYRIGHT: Copyright 2025 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
6 */
7
8#ifndef _ICMP_INCLUDED_
9#define _ICMP_INCLUDED_
10
11#pragma once
12
13#ifndef IPHLPAPI_DLL_LINKAGE
14#ifdef DECLSPEC_IMPORT
15#define IPHLPAPI_DLL_LINKAGE DECLSPEC_IMPORT
16#else
17#define IPHLPAPI_DLL_LINKAGE
18#endif
19#endif
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
29 VOID);
30
31#if (NTDDI_VERSION >= NTDDI_WINXP)
36 VOID);
37#endif
38
40BOOL
43 _In_ HANDLE IcmpHandle);
44
49 _In_ HANDLE IcmpHandle,
55 _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + RequestSize + 8)
56 DWORD ReplySize,
58
63 _In_ HANDLE IcmpHandle,
67#else
69#endif
76 _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + RequestSize + 8)
77 DWORD ReplySize,
79
80#if (NTDDI_VERSION >= NTDDI_VISTASP1)
85 _In_ HANDLE IcmpHandle,
89#else
91#endif
99 _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + RequestSize + 8 + sizeof(IO_STATUS_BLOCK))
100 DWORD ReplySize,
102#endif
103
104#if (NTDDI_VERSION >= NTDDI_WINXP)
106DWORD
107WINAPI
109 _In_ HANDLE IcmpHandle,
113#else
115#endif
123 _In_range_(>=, sizeof(ICMPV6_ECHO_REPLY) + RequestSize + 8 + sizeof(IO_STATUS_BLOCK))
124 DWORD ReplySize,
126#endif
127
129DWORD
130WINAPI
133 _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + 8)
134 DWORD ReplySize);
135
136#if (NTDDI_VERSION >= NTDDI_WINXP)
138DWORD
139WINAPI
142 _In_range_(>=, sizeof(ICMPV6_ECHO_REPLY) + 8)
143 DWORD ReplySize);
144#endif
145
146#ifdef __cplusplus
147}
148#endif
149
150#endif /* _ICMP_INCLUDED_ */
int(* FARPROC)()
Definition: compat.h:36
HANDLE WINAPI Icmp6CreateFile(void)
Definition: icmp.c:15
HANDLE WINAPI IcmpCreateFile(void)
Definition: icmp.c:219
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID ReplyBuffer
Definition: fltkernel.h:1902
#define PIO_APC_ROUTINE_DEFINED
Definition: winternl.h:299
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
Definition: iofuncs.h:727
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE ApcRoutine
Definition: iofuncs.h:726
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _In_range_(l, h)
Definition: no_sal2.h:368
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
VOID(* PIO_APC_ROUTINE)(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved)
Definition: nt_native.h:880
ULONG IPAddr
Definition: pfhook.h:35
static ULONG Timeout
Definition: ping.c:61
static ULONG RequestSize
Definition: ping.c:63
#define IPHLPAPI_DLL_LINKAGE
Definition: icmpapi.h:17
IPHLPAPI_DLL_LINKAGE DWORD WINAPI IcmpSendEcho2Ex(_In_ HANDLE IcmpHandle, _In_opt_ HANDLE Event, _In_opt_ FARPROC ApcRoutine, _In_opt_ PVOID ApcContext, _In_ IPAddr SourceAddress, _In_ IPAddr DestinationAddress, _In_reads_bytes_(RequestSize) LPVOID RequestData, _In_ WORD RequestSize, _In_opt_ PIP_OPTION_INFORMATION RequestOptions, _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, _In_range_(>=, sizeof(ICMP_ECHO_REPLY)+RequestSize+8+sizeof(IO_STATUS_BLOCK)) DWORD ReplySize, _In_ DWORD Timeout)
IPHLPAPI_DLL_LINKAGE DWORD WINAPI IcmpSendEcho2(_In_ HANDLE IcmpHandle, _In_opt_ HANDLE Event, _In_opt_ FARPROC ApcRoutine, _In_opt_ PVOID ApcContext, _In_ IPAddr DestinationAddress, _In_reads_bytes_(RequestSize) LPVOID RequestData, _In_ WORD RequestSize, _In_opt_ PIP_OPTION_INFORMATION RequestOptions, _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, _In_range_(>=, sizeof(ICMP_ECHO_REPLY)+RequestSize+8) DWORD ReplySize, _In_ DWORD Timeout)
IPHLPAPI_DLL_LINKAGE DWORD WINAPI Icmp6SendEcho2(_In_ HANDLE IcmpHandle, _In_opt_ HANDLE Event, _In_opt_ FARPROC ApcRoutine, _In_opt_ PVOID ApcContext, _In_ struct sockaddr_in6 *SourceAddress, _In_ struct sockaddr_in6 *DestinationAddress, _In_reads_bytes_(RequestSize) LPVOID RequestData, _In_ WORD RequestSize, _In_opt_ PIP_OPTION_INFORMATION RequestOptions, _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, _In_range_(>=, sizeof(ICMPV6_ECHO_REPLY)+RequestSize+8+sizeof(IO_STATUS_BLOCK)) DWORD ReplySize, _In_ DWORD Timeout)
IPHLPAPI_DLL_LINKAGE DWORD WINAPI Icmp6ParseReplies(_Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, _In_range_(>=, sizeof(ICMPV6_ECHO_REPLY)+8) DWORD ReplySize)
IPHLPAPI_DLL_LINKAGE DWORD WINAPI IcmpParseReplies(_Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, _In_range_(>=, sizeof(ICMP_ECHO_REPLY)+8) DWORD ReplySize)
IPHLPAPI_DLL_LINKAGE DWORD WINAPI IcmpSendEcho(_In_ HANDLE IcmpHandle, _In_ IPAddr DestinationAddress, _In_reads_bytes_(RequestSize) LPVOID RequestData, _In_ WORD RequestSize, _In_opt_ PIP_OPTION_INFORMATION RequestOptions, _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, _In_range_(>=, sizeof(ICMP_ECHO_REPLY)+RequestSize+8) DWORD ReplySize, _In_ DWORD Timeout)
IPHLPAPI_DLL_LINKAGE BOOL WINAPI IcmpCloseHandle(_In_ HANDLE IcmpHandle)
Definition: icmp.c:202
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
Definition: wdfiotarget.h:867
#define WINAPI
Definition: msvc.h:6
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Out_ PPHYSICAL_ADDRESS DestinationAddress
Definition: iotypes.h:1128
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS SourceAddress
Definition: iotypes.h:1127