|
1 | 1 | /* |
2 | | - * Interface to the ICMP functions. |
3 | | - * |
4 | | - * Copyright (C) 1999 Francois Gouget |
5 | | - * |
6 | | - * This library is free software; you can redistribute it and/or |
7 | | - * modify it under the terms of the GNU Lesser General Public |
8 | | - * License as published by the Free Software Foundation; either |
9 | | - * version 2.1 of the License, or (at your option) any later version. |
10 | | - * |
11 | | - * This library is distributed in the hope that it will be useful, |
12 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | | - * Lesser General Public License for more details. |
15 | | - * |
16 | | - * You should have received a copy of the GNU Lesser General Public |
17 | | - * License along with this library; if not, write to the Free Software |
18 | | - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| 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 <[email protected]> |
19 | 6 | */ |
20 | 7 |
|
21 | | -#ifndef __WINE_ICMPAPI_H |
22 | | -#define __WINE_ICMPAPI_H |
| 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 |
23 | 20 |
|
24 | 21 | #ifdef __cplusplus |
25 | 22 | extern "C" { |
26 | 23 | #endif |
27 | 24 |
|
28 | | -HANDLE WINAPI IcmpCreateFile( |
29 | | - VOID |
30 | | - ); |
| 25 | +IPHLPAPI_DLL_LINKAGE |
| 26 | +HANDLE |
| 27 | +WINAPI |
| 28 | +IcmpCreateFile( |
| 29 | + VOID); |
31 | 30 |
|
32 | | -HANDLE WINAPI Icmp6CreateFile( |
33 | | - VOID |
34 | | - ); |
| 31 | +#if (NTDDI_VERSION >= NTDDI_WINXP) |
| 32 | +IPHLPAPI_DLL_LINKAGE |
| 33 | +HANDLE |
| 34 | +WINAPI |
| 35 | +Icmp6CreateFile( |
| 36 | + VOID); |
| 37 | +#endif |
35 | 38 |
|
36 | | -BOOL WINAPI IcmpCloseHandle( |
37 | | - HANDLE IcmpHandle |
38 | | - ); |
| 39 | +IPHLPAPI_DLL_LINKAGE |
| 40 | +BOOL |
| 41 | +WINAPI |
| 42 | +IcmpCloseHandle( |
| 43 | + _In_ HANDLE IcmpHandle); |
39 | 44 |
|
40 | | -DWORD WINAPI IcmpSendEcho( |
41 | | - HANDLE IcmpHandle, |
42 | | - IPAddr DestinationAddress, |
43 | | - LPVOID RequestData, |
44 | | - WORD RequestSize, |
45 | | - PIP_OPTION_INFORMATION RequestOptions, |
46 | | - LPVOID ReplyBuffer, |
47 | | - DWORD ReplySize, |
48 | | - DWORD Timeout |
49 | | - ); |
| 45 | +IPHLPAPI_DLL_LINKAGE |
| 46 | +DWORD |
| 47 | +WINAPI |
| 48 | +IcmpSendEcho( |
| 49 | + _In_ HANDLE IcmpHandle, |
| 50 | + _In_ IPAddr DestinationAddress, |
| 51 | + _In_reads_bytes_(RequestSize) LPVOID RequestData, |
| 52 | + _In_ WORD RequestSize, |
| 53 | + _In_opt_ PIP_OPTION_INFORMATION RequestOptions, |
| 54 | + _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, |
| 55 | + _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + RequestSize + 8) |
| 56 | + DWORD ReplySize, |
| 57 | + _In_ DWORD Timeout); |
50 | 58 |
|
| 59 | +IPHLPAPI_DLL_LINKAGE |
51 | 60 | DWORD |
52 | 61 | WINAPI |
53 | 62 | IcmpSendEcho2( |
54 | | - HANDLE IcmpHandle, |
55 | | - HANDLE Event, |
56 | | - FARPROC ApcRoutine, |
57 | | - PVOID ApcContext, |
58 | | - IPAddr DestinationAddress, |
59 | | - LPVOID RequestData, |
60 | | - WORD RequestSize, |
61 | | - PIP_OPTION_INFORMATION RequestOptions, |
62 | | - LPVOID ReplyBuffer, |
63 | | - DWORD ReplySize, |
64 | | - DWORD Timeout |
65 | | - ); |
| 63 | + _In_ HANDLE IcmpHandle, |
| 64 | + _In_opt_ HANDLE Event, |
| 65 | +#ifdef PIO_APC_ROUTINE_DEFINED |
| 66 | + _In_opt_ PIO_APC_ROUTINE ApcRoutine, |
| 67 | +#else |
| 68 | + _In_opt_ FARPROC ApcRoutine, |
| 69 | +#endif |
| 70 | + _In_opt_ PVOID ApcContext, |
| 71 | + _In_ IPAddr DestinationAddress, |
| 72 | + _In_reads_bytes_(RequestSize) LPVOID RequestData, |
| 73 | + _In_ WORD RequestSize, |
| 74 | + _In_opt_ PIP_OPTION_INFORMATION RequestOptions, |
| 75 | + _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, |
| 76 | + _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + RequestSize + 8) |
| 77 | + DWORD ReplySize, |
| 78 | + _In_ DWORD Timeout); |
| 79 | + |
| 80 | +#if (NTDDI_VERSION >= NTDDI_VISTASP1) |
| 81 | +IPHLPAPI_DLL_LINKAGE |
| 82 | +DWORD |
| 83 | +WINAPI |
| 84 | +IcmpSendEcho2Ex( |
| 85 | + _In_ HANDLE IcmpHandle, |
| 86 | + _In_opt_ HANDLE Event, |
| 87 | +#ifdef PIO_APC_ROUTINE_DEFINED |
| 88 | + _In_opt_ PIO_APC_ROUTINE ApcRoutine, |
| 89 | +#else |
| 90 | + _In_opt_ FARPROC ApcRoutine, |
| 91 | +#endif |
| 92 | + _In_opt_ PVOID ApcContext, |
| 93 | + _In_ IPAddr SourceAddress, |
| 94 | + _In_ IPAddr DestinationAddress, |
| 95 | + _In_reads_bytes_(RequestSize) LPVOID RequestData, |
| 96 | + _In_ WORD RequestSize, |
| 97 | + _In_opt_ PIP_OPTION_INFORMATION RequestOptions, |
| 98 | + _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, |
| 99 | + _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + RequestSize + 8 + sizeof(IO_STATUS_BLOCK)) |
| 100 | + DWORD ReplySize, |
| 101 | + _In_ DWORD Timeout); |
| 102 | +#endif |
66 | 103 |
|
| 104 | +#if (NTDDI_VERSION >= NTDDI_WINXP) |
| 105 | +IPHLPAPI_DLL_LINKAGE |
67 | 106 | DWORD |
68 | 107 | WINAPI |
69 | 108 | Icmp6SendEcho2( |
70 | | - HANDLE IcmpHandle, |
71 | | - HANDLE Event, |
72 | | - FARPROC ApcRoutine, |
73 | | - PVOID ApcContext, |
74 | | - struct sockaddr_in6 *SourceAddress, |
75 | | - struct sockaddr_in6 *DestinationAddress, |
76 | | - LPVOID RequestData, |
77 | | - WORD RequestSize, |
78 | | - PIP_OPTION_INFORMATION RequestOptions, |
79 | | - LPVOID ReplyBuffer, |
80 | | - DWORD ReplySize, |
81 | | - DWORD Timeout |
82 | | - ); |
| 109 | + _In_ HANDLE IcmpHandle, |
| 110 | + _In_opt_ HANDLE Event, |
| 111 | +#ifdef PIO_APC_ROUTINE_DEFINED |
| 112 | + _In_opt_ PIO_APC_ROUTINE ApcRoutine, |
| 113 | +#else |
| 114 | + _In_opt_ FARPROC ApcRoutine, |
| 115 | +#endif |
| 116 | + _In_opt_ PVOID ApcContext, |
| 117 | + _In_ struct sockaddr_in6 *SourceAddress, |
| 118 | + _In_ struct sockaddr_in6 *DestinationAddress, |
| 119 | + _In_reads_bytes_(RequestSize) LPVOID RequestData, |
| 120 | + _In_ WORD RequestSize, |
| 121 | + _In_opt_ PIP_OPTION_INFORMATION RequestOptions, |
| 122 | + _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, |
| 123 | + _In_range_(>=, sizeof(ICMPV6_ECHO_REPLY) + RequestSize + 8 + sizeof(IO_STATUS_BLOCK)) |
| 124 | + DWORD ReplySize, |
| 125 | + _In_ DWORD Timeout); |
| 126 | +#endif |
83 | 127 |
|
| 128 | +IPHLPAPI_DLL_LINKAGE |
84 | 129 | DWORD |
85 | 130 | WINAPI |
86 | 131 | IcmpParseReplies( |
87 | | - LPVOID ReplyBuffer, |
88 | | - DWORD ReplySize |
89 | | - ); |
| 132 | + _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, |
| 133 | + _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + 8) |
| 134 | + DWORD ReplySize); |
90 | 135 |
|
| 136 | +#if (NTDDI_VERSION >= NTDDI_WINXP) |
| 137 | +IPHLPAPI_DLL_LINKAGE |
91 | 138 | DWORD |
92 | 139 | WINAPI |
93 | 140 | Icmp6ParseReplies( |
94 | | - LPVOID ReplyBuffer, |
95 | | - DWORD ReplySize |
96 | | - ); |
| 141 | + _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, |
| 142 | + _In_range_(>=, sizeof(ICMPV6_ECHO_REPLY) + 8) |
| 143 | + DWORD ReplySize); |
| 144 | +#endif |
97 | 145 |
|
98 | 146 | #ifdef __cplusplus |
99 | 147 | } |
100 | 148 | #endif |
101 | 149 |
|
102 | | - |
103 | | -#endif /* __WINE_ICMPAPI_H */ |
| 150 | +#endif /* _ICMP_INCLUDED_ */ |
0 commit comments