private static unsafe int Main(string[] args) { Win32Error Error = Win32Error.ERROR_SUCCESS; bool IsWSAStartupCalled = false; HANDLE CancelHandle = default; uint QueryTimeout = 5 * 1000; // 5 seconds // Validate the parameters if (args.Length != 1) { Console.Write("Usage: ResolveName <QueryName>\n"); return(1); } // All Winsock functions require WSAStartup() to be called first Error = WSAStartup(Macros.MAKEWORD(2, 2), out _); if (Error.Failed) { Console.Write("WSAStartup failed with {0}\n", Error); return((int)Error); } IsWSAStartupCalled = true; ADDRINFOEXW Hints = new ADDRINFOEXW { ai_family = ADDRESS_FAMILY.AF_UNSPEC }; // Note that this is a simple sample that waits/cancels a single asynchronous query. The reader may extend this to support // multiple asynchronous queries. using var CompleteEvent = CreateEvent(default, true, false, default);
public unsafe void GetAddrInfoExWTest() { var hints = new ADDRINFOEXW { ai_flags = ADDRINFO_FLAGS.AI_CANONNAME, ai_family = ADDRESS_FAMILY.AF_INET }; var ovl = new NativeOverlapped(); Assert.That(GetAddrInfoExW(localIP4.ToString(), null, NS.NS_ALL, default, &hints, out var res,