Reactos
at master 150 lines 3.6 kB view raw
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 25IPHLPAPI_DLL_LINKAGE 26HANDLE 27WINAPI 28IcmpCreateFile( 29 VOID); 30 31#if (NTDDI_VERSION >= NTDDI_WINXP) 32IPHLPAPI_DLL_LINKAGE 33HANDLE 34WINAPI 35Icmp6CreateFile( 36 VOID); 37#endif 38 39IPHLPAPI_DLL_LINKAGE 40BOOL 41WINAPI 42IcmpCloseHandle( 43 _In_ HANDLE IcmpHandle); 44 45IPHLPAPI_DLL_LINKAGE 46DWORD 47WINAPI 48IcmpSendEcho( 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); 58 59IPHLPAPI_DLL_LINKAGE 60DWORD 61WINAPI 62IcmpSendEcho2( 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) 81IPHLPAPI_DLL_LINKAGE 82DWORD 83WINAPI 84IcmpSendEcho2Ex( 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 103 104#if (NTDDI_VERSION >= NTDDI_WINXP) 105IPHLPAPI_DLL_LINKAGE 106DWORD 107WINAPI 108Icmp6SendEcho2( 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 127 128IPHLPAPI_DLL_LINKAGE 129DWORD 130WINAPI 131IcmpParseReplies( 132 _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, 133 _In_range_(>=, sizeof(ICMP_ECHO_REPLY) + 8) 134 DWORD ReplySize); 135 136#if (NTDDI_VERSION >= NTDDI_WINXP) 137IPHLPAPI_DLL_LINKAGE 138DWORD 139WINAPI 140Icmp6ParseReplies( 141 _Out_writes_bytes_(ReplySize) LPVOID ReplyBuffer, 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_ */