41 Size =
sizeof(IP_ADAPTER_ADDRESSES);
45 skip(
"Memory failure\n");
56 skip(
"Memory failure\n");
65 skip(
"GetAdaptersAddresses() failure\n");
70 for (Current = Addresses; Current; Current = Current->Next)
81 if (!Current->FirstUnicastAddress)
84 ok(Current->FirstUnicastAddress->Address.iSockaddrLength ==
sizeof(
SOCKADDR_IN),
"Unexpected length: %u\n", Current->FirstUnicastAddress->Address.iSockaddrLength);
85 SockAddr = (
PSOCKADDR_IN)Current->FirstUnicastAddress->Address.lpSockaddr;
86 IpAddr = SockAddr->
sin_addr.S_un.S_addr;
88 trace(
"IP address found: %lu.%lu.%lu.%lu\n", IpAddr & 0xFF, (IpAddr >> 8) & 0xFF, (IpAddr >> 16) & 0xFF, (IpAddr >> 24) & 0xFF);
96 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
100 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
102 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
110 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
114 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
125 skip(
"No suitable interface found\n");
133 skip(
"Memory failure\n");
144 skip(
"Memory failure\n");
153 skip(
"GetAdaptersInfo() failure\n");
159 for (CurrentA = Adapters; CurrentA; CurrentA = CurrentA->
Next)
163 const CHAR * Terminator;
175 trace(
"Gateway found: %lu.%lu.%lu.%lu\n", IpAddr & 0xFF, (IpAddr >> 8) & 0xFF, (IpAddr >> 16) & 0xFF, (IpAddr >> 24) & 0xFF);
187 skip(
"No suitable gateway found\n");
197 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
201 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
209 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
213 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
221 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
225 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
233 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
237 ok(Err ==
ERROR_SUCCESS,
"Expected error: ERROR_SUCCESS. Got: %lx\n", Err);
262 skip(
"NtCreateFile() failed with status: %lx\n",
Status);
285 memset(Ip, 0,
sizeof(Ip));
495 skip(
"No suitable gateway found\n");
712 skip(
"No suitable interface found\n");
static VOID TestKM(IPAddr Source, IPAddr Gateway)
static VOID TestUM(IPAddr *Source, IPAddr *Gateway)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define FILE_ATTRIBUTE_NORMAL
#define OBJ_CASE_INSENSITIVE
static PIP_ADAPTER_ADDRESSES
DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
DWORD WINAPI SendARP(IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr, PULONG PhyAddrLen)
#define GAA_FLAG_SKIP_FRIENDLY_NAME
#define IF_TYPE_SOFTWARE_LOOPBACK
struct _IP_ADAPTER_INFO IP_ADAPTER_INFO
struct _IP_ADAPTER_INFO * PIP_ADAPTER_INFO
static OUT PIO_STATUS_BLOCK IoStatusBlock
#define InitializeObjectAttributes(p, n, a, r, s)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
NTSYSAPI NTSTATUS NTAPI RtlIpv4StringToAddressA(_In_ PCSTR String, _In_ BOOLEAN Strict, _Out_ PCSTR *Terminator, _Out_ struct in_addr *Addr)
NTSYSAPI NTSTATUS NTAPI NtDeviceIoControlFile(IN HANDLE hFile, IN HANDLE hEvent OPTIONAL, IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL, IN PVOID IoApcContext OPTIONAL, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG DeviceIoControlCode, IN PVOID InBuffer OPTIONAL, IN ULONG InBufferLength, OUT PVOID OutBuffer OPTIONAL, IN ULONG OutBufferLength)
NTSYSAPI NTSTATUS NTAPI NtWaitForSingleObject(IN HANDLE hObject, IN BOOLEAN bAlertable, IN PLARGE_INTEGER Timeout)
NTSTATUS NTAPI NtCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength)
#define STATUS_INVALID_BUFFER_SIZE
IP_ADDR_STRING IpAddressList
IP_ADDR_STRING GatewayList
struct _IP_ADAPTER_INFO * Next
IP_ADDRESS_STRING IpAddress
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
#define IOCTL_QUERY_IP_HW_ADDRESS
#define RTL_CONSTANT_STRING(s)
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
DWORD WINAPI GetLastError(void)
#define ERROR_BUFFER_OVERFLOW
#define ERROR_GEN_FAILURE
#define ERROR_NO_SYSTEM_RESOURCES
struct sockaddr_in * PSOCKADDR_IN