mirror of
https://github.com/reactos/reactos.git
synced 2024-11-18 13:01:40 +00:00
341 lines
5.4 KiB
C
341 lines
5.4 KiB
C
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS Ancillary Function Driver DLL
|
|
* FILE: include/mswsock.h
|
|
* PURPOSE: Ancillary Function Driver DLL header
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
/* INCLUDES ******************************************************************/
|
|
#include <ws2atm.h>
|
|
|
|
/* ENUMERATIONS **************************************************************/
|
|
|
|
typedef enum _DNS_STRING_TYPE
|
|
{
|
|
UnicodeString = 1,
|
|
Utf8String,
|
|
AnsiString,
|
|
} DNS_STRING_TYPE;
|
|
|
|
#define IpV4Address 3
|
|
|
|
/* TYPES *********************************************************************/
|
|
|
|
typedef struct _DNS_IPV6_ADDRESS
|
|
{
|
|
ULONG Unknown;
|
|
ULONG Unknown2;
|
|
IP6_ADDRESS Address;
|
|
ULONG Unknown3;
|
|
ULONG Unknown4;
|
|
DWORD Reserved;
|
|
ULONG Unknown5;
|
|
} DNS_IPV6_ADDRESS, *PDNS_IPV6_ADDRESS;
|
|
|
|
typedef struct _DNS_ADDRESS
|
|
{
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
WORD AddressFamily;
|
|
WORD Port;
|
|
ATM_ADDRESS AtmAddress;
|
|
};
|
|
SOCKADDR_IN Ip4Address;
|
|
SOCKADDR_IN6 Ip6Address;
|
|
};
|
|
ULONG AddressLength;
|
|
DWORD Sub;
|
|
ULONG Flag;
|
|
} DNS_ADDRESS, *PDNS_ADDRESS;
|
|
|
|
typedef struct _DNS_ARRAY
|
|
{
|
|
ULONG AllocatedAddresses;
|
|
ULONG UsedAddresses;
|
|
ULONG Unknown[0x6];
|
|
DNS_ADDRESS Addresses[1];
|
|
} DNS_ARRAY, *PDNS_ARRAY;
|
|
|
|
typedef struct _DNS_BLOB
|
|
{
|
|
LPWSTR Name;
|
|
PDNS_ARRAY DnsAddrArray;
|
|
PHOSTENT Hostent;
|
|
ULONG AliasCount;
|
|
ULONG Unknown;
|
|
LPWSTR Aliases[8];
|
|
} DNS_BLOB, *PDNS_BLOB;
|
|
|
|
typedef struct _DNS_FAMILY_INFO
|
|
{
|
|
WORD AddrType;
|
|
WORD DnsType;
|
|
DWORD AddressSize;
|
|
DWORD SockaddrSize;
|
|
DWORD AddressOffset;
|
|
} DNS_FAMILY_INFO, *PDNS_FAMILY_INFO;
|
|
|
|
typedef struct _FLATBUFF
|
|
{
|
|
PVOID Buffer;
|
|
PVOID BufferEnd;
|
|
ULONG_PTR BufferPos;
|
|
SIZE_T BufferSize;
|
|
SIZE_T BufferFreeSize;
|
|
} FLATBUFF, *PFLATBUFF;
|
|
|
|
/*
|
|
* memory.c
|
|
*/
|
|
VOID
|
|
WINAPI
|
|
Dns_Free(IN PVOID Address);
|
|
|
|
PVOID
|
|
WINAPI
|
|
Dns_AllocZero(IN SIZE_T Size);
|
|
|
|
/*
|
|
* addr.c
|
|
*/
|
|
PDNS_FAMILY_INFO
|
|
WINAPI
|
|
FamilyInfo_GetForFamily(IN WORD AddressFamily);
|
|
|
|
/*
|
|
* dnsaddr.c
|
|
*/
|
|
VOID
|
|
WINAPI
|
|
DnsAddr_BuildFromIp4(
|
|
IN PDNS_ADDRESS DnsAddress,
|
|
IN IN_ADDR Address,
|
|
IN WORD Unknown
|
|
);
|
|
|
|
VOID
|
|
WINAPI
|
|
DnsAddr_BuildFromIp6(
|
|
IN PDNS_ADDRESS DnsAddress,
|
|
IN PIN6_ADDR Address,
|
|
IN ULONG ScopeId,
|
|
IN WORD Port
|
|
);
|
|
|
|
PDNS_ARRAY
|
|
WINAPI
|
|
DnsAddrArray_Create(ULONG Count);
|
|
|
|
BOOL
|
|
WINAPI
|
|
DnsAddrArray_AddAddr(
|
|
IN PDNS_ARRAY DnsAddrArray,
|
|
IN PDNS_ADDRESS DnsAddress,
|
|
IN WORD AddressFamily OPTIONAL,
|
|
IN DWORD AddressType OPTIONAL
|
|
);
|
|
|
|
VOID
|
|
WINAPI
|
|
DnsAddrArray_Free(IN PDNS_ARRAY DnsAddrArray);
|
|
|
|
BOOL
|
|
WINAPI
|
|
DnsAddrArray_AddIp4(
|
|
IN PDNS_ARRAY DnsAddrArray,
|
|
IN IN_ADDR Address,
|
|
IN DWORD AddressType
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
DnsAddrArray_ContainsAddr(
|
|
IN PDNS_ARRAY DnsAddrArray,
|
|
IN PDNS_ADDRESS DnsAddress,
|
|
IN DWORD AddressType
|
|
);
|
|
|
|
BOOLEAN
|
|
WINAPI
|
|
DnsAddr_BuildFromDnsRecord(
|
|
IN PDNS_RECORD DnsRecord,
|
|
OUT PDNS_ADDRESS DnsAddr
|
|
);
|
|
|
|
/*
|
|
* hostent.c
|
|
*/
|
|
PHOSTENT
|
|
WINAPI
|
|
Hostent_Init(
|
|
IN PVOID *Buffer,
|
|
IN WORD AddressFamily,
|
|
IN ULONG AddressSize,
|
|
IN ULONG AddressCount,
|
|
IN ULONG AliasCount
|
|
);
|
|
|
|
VOID
|
|
WINAPI
|
|
Hostent_ConvertToOffsets(IN PHOSTENT Hostent);
|
|
|
|
/*
|
|
* flatbuf.c
|
|
*/
|
|
VOID
|
|
WINAPI
|
|
FlatBuf_Init(
|
|
IN PFLATBUFF FlatBuffer,
|
|
IN PVOID Buffer,
|
|
IN SIZE_T Size
|
|
);
|
|
|
|
PVOID
|
|
WINAPI
|
|
FlatBuf_Arg_CopyMemory(
|
|
IN OUT PULONG_PTR Position,
|
|
IN OUT PSIZE_T FreeSize,
|
|
IN PVOID Buffer,
|
|
IN SIZE_T Size,
|
|
IN ULONG Align
|
|
);
|
|
|
|
PVOID
|
|
WINAPI
|
|
FlatBuf_Arg_Reserve(
|
|
IN OUT PULONG_PTR Position,
|
|
IN OUT PSIZE_T FreeSize,
|
|
IN SIZE_T Size,
|
|
IN ULONG Align
|
|
);
|
|
|
|
PVOID
|
|
WINAPI
|
|
FlatBuf_Arg_WriteString(
|
|
IN OUT PULONG_PTR Position,
|
|
IN OUT PSIZE_T FreeSize,
|
|
IN PVOID String,
|
|
IN BOOLEAN IsUnicode
|
|
);
|
|
|
|
/*
|
|
* sablob.c
|
|
*/
|
|
PDNS_BLOB
|
|
WINAPI
|
|
SaBlob_Create(
|
|
IN ULONG Count
|
|
);
|
|
|
|
PDNS_BLOB
|
|
WINAPI
|
|
SaBlob_CreateFromIp4(
|
|
IN LPWSTR Name,
|
|
IN ULONG Count,
|
|
IN PIN_ADDR AddressArray
|
|
);
|
|
|
|
VOID
|
|
WINAPI
|
|
SaBlob_Free(IN PDNS_BLOB Blob);
|
|
|
|
PHOSTENT
|
|
WINAPI
|
|
SaBlob_CreateHostent(
|
|
IN OUT PULONG_PTR BufferPosition,
|
|
IN OUT PSIZE_T RemainingBufferSpace,
|
|
IN OUT PSIZE_T HostEntrySize,
|
|
IN PDNS_BLOB Blob,
|
|
IN DWORD StringType,
|
|
IN BOOLEAN Relative,
|
|
IN BOOLEAN BufferAllocated
|
|
);
|
|
|
|
INT
|
|
WINAPI
|
|
SaBlob_WriteNameOrAlias(
|
|
IN PDNS_BLOB Blob,
|
|
IN LPWSTR String,
|
|
IN BOOLEAN IsAlias
|
|
);
|
|
|
|
PDNS_BLOB
|
|
WINAPI
|
|
SaBlob_Query(
|
|
IN LPWSTR Name,
|
|
IN WORD DnsType,
|
|
IN ULONG Flags,
|
|
IN PVOID *Reserved,
|
|
IN DWORD AddressFamily
|
|
);
|
|
|
|
/*
|
|
* string.c
|
|
*/
|
|
ULONG
|
|
WINAPI
|
|
Dns_StringCopy(
|
|
OUT PVOID Destination,
|
|
IN OUT PULONG DestinationSize,
|
|
IN PVOID String,
|
|
IN ULONG StringSize OPTIONAL,
|
|
IN DWORD InputType,
|
|
IN DWORD OutputType
|
|
);
|
|
|
|
LPWSTR
|
|
WINAPI
|
|
Dns_CreateStringCopy_W(IN LPWSTR Name);
|
|
|
|
ULONG
|
|
WINAPI
|
|
Dns_GetBufferLengthForStringCopy(
|
|
IN PVOID String,
|
|
IN ULONG Size OPTIONAL,
|
|
IN DWORD InputType,
|
|
IN DWORD OutputType
|
|
);
|
|
|
|
/*
|
|
* straddr.c
|
|
*/
|
|
BOOLEAN
|
|
WINAPI
|
|
Dns_StringToAddressW(
|
|
OUT PVOID Address,
|
|
IN OUT PULONG AddressSize,
|
|
IN LPWSTR AddressName,
|
|
IN OUT PDWORD AddressFamily
|
|
);
|
|
|
|
LPWSTR
|
|
WINAPI
|
|
Dns_Ip4AddressToReverseName_W(
|
|
OUT LPWSTR Name,
|
|
IN IN_ADDR Address
|
|
);
|
|
|
|
LPWSTR
|
|
WINAPI
|
|
Dns_Ip6AddressToReverseName_W(
|
|
OUT LPWSTR Name,
|
|
IN IN6_ADDR Address
|
|
);
|
|
|
|
BOOLEAN
|
|
WINAPI
|
|
Dns_ReverseNameToDnsAddr_W(
|
|
OUT PDNS_ADDRESS DnsAddr,
|
|
IN LPWSTR Name
|
|
);
|
|
|
|
BOOLEAN
|
|
WINAPI
|
|
Dns_Ip4ReverseNameToAddress_W(
|
|
OUT PIN_ADDR Address,
|
|
IN LPWSTR Name
|
|
);
|