winapi_forked_icmpapi/um/
icmpapi.rs1use shared::minwindef::{BOOL, DWORD, FARPROC, LPVOID, WORD};
7use shared::ntdef::{HANDLE, PVOID};
8use shared::ws2ipdef::PSOCKADDR_IN6_LH;
9use um::ipexport::IPAddr;
10#[cfg(target_pointer_width = "32")]
11use um::ipexport::PIP_OPTION_INFORMATION;
12#[cfg(target_pointer_width = "64")]
13use um::ipexport::PIP_OPTION_INFORMATION32 as PIP_OPTION_INFORMATION;
14extern "system" {
15 pub fn IcmpCreateFile() -> HANDLE;
16 pub fn Icmp6CreateFile() -> HANDLE;
17 pub fn IcmpCloseHandle(IcmpHandle: HANDLE) -> BOOL;
18 pub fn IcmpSendEcho(
19 IcmpHandle: HANDLE,
20 DestinationAddress: IPAddr,
21 RequestData: LPVOID,
22 RequestSize: WORD,
23 RequestOptions: PIP_OPTION_INFORMATION,
24 ReplyBuffer: LPVOID,
25 ReplySize: DWORD,
26 Timeout: DWORD
27 ) -> DWORD;
28 pub fn IcmpSendEcho2(
29 IcmpHandle: HANDLE,
30 Event: HANDLE,
31 ApcRoutine: FARPROC, ApcContext: PVOID,
33 DestinationAddress: IPAddr,
34 RequestData: LPVOID,
35 RequestSize: WORD,
36 RequestOptions: PIP_OPTION_INFORMATION,
37 ReplyBuffer: LPVOID,
38 ReplySize: DWORD,
39 Timeout: DWORD
40 ) -> DWORD;
41 pub fn IcmpSendEcho2Ex(
42 IcmpHandle: HANDLE,
43 Event: HANDLE,
44 ApcRoutine: FARPROC, ApcContext: PVOID,
46 SourceAddress: IPAddr,
47 DestinationAddress: IPAddr,
48 RequestData: LPVOID,
49 RequestSize: WORD,
50 RequestOptions: PIP_OPTION_INFORMATION,
51 ReplyBuffer: LPVOID,
52 ReplySize: DWORD,
53 Timeout: DWORD
54 ) -> DWORD;
55 pub fn Icmp6SendEcho2(
56 IcmpHandle: HANDLE,
57 Event: HANDLE,
58 ApcRoutine: FARPROC, ApcContext: PVOID,
60 SourceAddress: PSOCKADDR_IN6_LH,
61 DestinationAddress: PSOCKADDR_IN6_LH,
62 RequestData: LPVOID,
63 RequestSize: WORD,
64 RequestOptions: PIP_OPTION_INFORMATION,
65 ReplyBuffer: LPVOID,
66 ReplySize: DWORD,
67 Timeout: DWORD
68 ) -> DWORD;
69 pub fn IcmpParseReplies(
70 ReplyBuffer: LPVOID,
71 ReplySize: DWORD,
72 ) -> DWORD;
73 pub fn Icmp6ParseReplies(
74 ReplyBuffer: LPVOID,
75 ReplySize: DWORD
76 ) -> DWORD;
77}