[TDILIB, IPHLPAPI, WSHTCPIP]
[reactos.git] / drivers / network / tcpip / tcpip / ainfo.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS TCP/IP protocol driver
4 * FILE: tcpip/ainfo.c
5 * PURPOSE: Per-socket information.
6 * PROGRAMMER: Cameron Gutman
7 */
8
9 #include "precomp.h"
10
11 TDI_STATUS SetAddressFileInfo(TDIObjectID *ID,
12 PADDRESS_FILE AddrFile,
13 PVOID Buffer,
14 UINT BufferSize)
15 {
16 KIRQL OldIrql;
17
18 switch (ID->toi_id)
19 {
20 case AO_OPTION_TTL:
21 if (BufferSize < sizeof(UINT))
22 return TDI_INVALID_PARAMETER;
23
24 LockObject(AddrFile, &OldIrql);
25 AddrFile->TTL = *((PUCHAR)Buffer);
26 UnlockObject(AddrFile, OldIrql);
27
28 return TDI_SUCCESS;
29
30 case AO_OPTION_IP_DONTFRAGMENT:
31 if (BufferSize < sizeof(UINT))
32 return TDI_INVALID_PARAMETER;
33
34 LockObject(AddrFile, &OldIrql);
35 AddrFile->DF = *((PUINT)Buffer);
36 UnlockObject(AddrFile, OldIrql);
37
38 return TDI_SUCCESS;
39
40 case AO_OPTION_BROADCAST:
41 if (BufferSize < sizeof(UINT))
42 return TDI_INVALID_PARAMETER;
43
44 LockObject(AddrFile, &OldIrql);
45 AddrFile->BCast = *((PUINT)Buffer);
46 UnlockObject(AddrFile, OldIrql);
47
48 return TDI_SUCCESS;
49
50 case AO_OPTION_IP_HDRINCL:
51 if (BufferSize < sizeof(UINT))
52 return TDI_INVALID_PARAMETER;
53
54 LockObject(AddrFile, &OldIrql);
55 AddrFile->HeaderIncl = *((PUINT)Buffer);
56 UnlockObject(AddrFile, OldIrql);
57
58 return TDI_SUCCESS;
59
60 default:
61 DbgPrint("Unimplemented option %x\n", ID->toi_id);
62
63 return TDI_INVALID_REQUEST;
64 }
65 }
66
67 TDI_STATUS GetAddressFileInfo(TDIObjectID *ID,
68 PADDRESS_FILE AddrFile,
69 PVOID Buffer,
70 PUINT BufferSize)
71 {
72 UNIMPLEMENTED
73
74 return TDI_INVALID_REQUEST;
75 }