1 /*
2  * PROJECT:     ReactOS API Tests
3  * LICENSE:     LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
4  * PURPOSE:     Utility function declarations for calling AFD
5  * COPYRIGHT:   Copyright 2015 Thomas Faber (thomas.faber@reactos.org)
6  *              Copyright 2019 Pierre Schweitzer (pierre@reactos.org)
7  */
8 
9 #pragma once
10 
11 NTSTATUS
12 AfdCreateSocket(
13     _Out_ PHANDLE SocketHandle,
14     _In_ int AddressFamily,
15     _In_ int SocketType,
16     _In_ int Protocol);
17 
18 NTSTATUS
19 AfdBind(
20     _In_ HANDLE SocketHandle,
21     _In_ const struct sockaddr *Address,
22     _In_ ULONG AddressLength);
23 
24 NTSTATUS
25 AfdConnect(
26     _In_ HANDLE SocketHandle,
27     _In_ const struct sockaddr *Address,
28     _In_ ULONG AddressLength);
29 
30 NTSTATUS
31 AfdSend(
32     _In_ HANDLE SocketHandle,
33     _In_ const void *Buffer,
34     _In_ ULONG BufferLength);
35 
36 NTSTATUS
37 AfdSendTo(
38     _In_ HANDLE SocketHandle,
39     _In_ const void *Buffer,
40     _In_ ULONG BufferLength,
41     _In_ const struct sockaddr *Address,
42     _In_ ULONG AddressLength);
43 
44 NTSTATUS
45 AfdSetInformation(
46     _In_ HANDLE SocketHandle,
47     _In_ ULONG InformationClass,
48     _In_opt_ PBOOLEAN Boolean,
49     _In_opt_ PULONG Ulong,
50     _In_opt_ PLARGE_INTEGER LargeInteger);
51 
52 NTSTATUS
53 AfdGetInformation(
54     _In_ HANDLE SocketHandle,
55     _In_ ULONG InformationClass,
56     _In_opt_ PBOOLEAN Boolean,
57     _In_opt_ PULONG Ulong,
58     _In_opt_ PLARGE_INTEGER LargeInteger);
59