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);
Exemple #2
0
        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,