diff --git a/BUILD b/BUILD
index 3e6b0e2cbe2cca51056b9fa8f98906b6c81c4757..2652f40b595a543a03922f06f80920e833f75474 100644
--- a/BUILD
+++ b/BUILD
@@ -521,6 +521,7 @@ cc_library(
     "src/core/ext/lb_policy/pick_first/pick_first.c",
     "src/core/ext/lb_policy/round_robin/round_robin.c",
     "src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c",
+    "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c",
@@ -1273,6 +1274,7 @@ cc_library(
     "src/core/ext/client_channel/subchannel_index.c",
     "src/core/ext/client_channel/uri_parser.c",
     "src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c",
+    "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c",
@@ -2195,6 +2197,7 @@ objc_library(
     "src/core/ext/lb_policy/pick_first/pick_first.c",
     "src/core/ext/lb_policy/round_robin/round_robin.c",
     "src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c",
+    "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6e6db36f60a543e8e6a92949b67628f457e5c7f9..4ec7b20ebda7ffc9d5d0808432e6959409dfacc5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -505,6 +505,7 @@ add_library(grpc
   src/core/ext/lb_policy/pick_first/pick_first.c
   src/core/ext/lb_policy/round_robin/round_robin.c
   src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
+  src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
@@ -993,6 +994,7 @@ add_library(grpc_unsecure
   src/core/ext/client_channel/subchannel_index.c
   src/core/ext/client_channel/uri_parser.c
   src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
+  src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
diff --git a/Makefile b/Makefile
index a811e10e6ac53ae48899918d773b652eb1e86993..c0e7648e0f10e20f02291444974a5fbb8997cf97 100644
--- a/Makefile
+++ b/Makefile
@@ -2823,6 +2823,7 @@ LIBGRPC_SRC = \
     src/core/ext/lb_policy/pick_first/pick_first.c \
     src/core/ext/lb_policy/round_robin/round_robin.c \
     src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
+    src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
@@ -3571,6 +3572,7 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/ext/client_channel/subchannel_index.c \
     src/core/ext/client_channel/uri_parser.c \
     src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
+    src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
diff --git a/binding.gyp b/binding.gyp
index 9dcd2e36400d8c75c24d69984c24b3f24812869c..5d707cd6041b354021b658d03857afc8822b1796 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -761,6 +761,7 @@
         'src/core/ext/lb_policy/pick_first/pick_first.c',
         'src/core/ext/lb_policy/round_robin/round_robin.c',
         'src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c',
+        'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c',
         'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c',
         'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c',
         'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c',
diff --git a/build.yaml b/build.yaml
index 02caafc0c091efc6f14d26b6ded9aededa2f38b9..99fb2d87bc9aa1bdee599495d489d4a9bc820914 100644
--- a/build.yaml
+++ b/build.yaml
@@ -465,6 +465,7 @@ filegroups:
   - src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h
   src:
   - src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
+  - src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c
   - src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
   - src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
   - src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
diff --git a/config.m4 b/config.m4
index a7effbf06f8d57071fe5fc3b66f28670cf50d7a5..45d30a7ef0af7754efd2022427bd88bb16071026 100644
--- a/config.m4
+++ b/config.m4
@@ -273,6 +273,7 @@ if test "$PHP_GRPC" != "no"; then
     src/core/ext/lb_policy/pick_first/pick_first.c \
     src/core/ext/lb_policy/round_robin/round_robin.c \
     src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
+    src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index ad4d985063352b66d87d2563ccc39f47b053db8b..7e08f9170f4ea507a12dad98d31b1ade5e059560 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -616,6 +616,7 @@ Pod::Spec.new do |s|
                       'src/core/ext/lb_policy/pick_first/pick_first.c',
                       'src/core/ext/lb_policy/round_robin/round_robin.c',
                       'src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c',
+                      'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c',
                       'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c',
                       'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c',
                       'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c',
diff --git a/grpc.gemspec b/grpc.gemspec
index f8793e0e5073a2961d6aa6139c5a7a4ab0197478..860f42bbc1abde02e12728729c31d74f4abd22f6 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -535,6 +535,7 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/ext/lb_policy/pick_first/pick_first.c )
   s.files += %w( src/core/ext/lb_policy/round_robin/round_robin.c )
   s.files += %w( src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c )
+  s.files += %w( src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c )
   s.files += %w( src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c )
   s.files += %w( src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c )
   s.files += %w( src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c )
diff --git a/package.xml b/package.xml
index 15310d751be72e7f4a4a9e5a217ef4f0eddda4b3..c485dfbf938785a973ad329edd45566cb988c353 100644
--- a/package.xml
+++ b/package.xml
@@ -542,6 +542,7 @@
     <file baseinstalldir="/" name="src/core/ext/lb_policy/pick_first/pick_first.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/round_robin/round_robin.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c" role="src" />
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver.h b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver.h
index 4d2b451321b11c2d823a726f2284d2bc82521490..f31d9580a1ddbdaa4f412a47cab38597621e6cb0 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver.h
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver.h
@@ -34,9 +34,6 @@
 #ifndef GRPC_CORE_EXT_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H
 #define GRPC_CORE_EXT_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H
 
-#include <grpc/support/port_platform.h>
-#ifndef GRPC_NATIVE_ADDRESS_RESOLVE
-
 #include "src/core/lib/iomgr/exec_ctx.h"
 #include "src/core/lib/iomgr/pollset_set.h"
 
@@ -64,6 +61,4 @@ grpc_error *grpc_ares_ev_driver_create(grpc_ares_ev_driver **ev_driver,
 void grpc_ares_ev_driver_destroy(grpc_exec_ctx *exec_ctx,
                                  grpc_ares_ev_driver *ev_driver);
 
-#endif /* GRPC_NATIVE_ADDRESS_RESOLVE */
-
 #endif /* GRPC_CORE_EXT_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H */
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_windows.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c
similarity index 72%
rename from src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_windows.c
rename to src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c
index 4c055d90d92a6cdfed84ca8b2761742dddc5cfe7..2b5fd44f05abbb04b665971867925e934413dbfa 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_windows.c
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c
@@ -30,8 +30,27 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
+
 #include <grpc/support/port_platform.h>
-#ifdef GPR_WINSOCK_SOCKET
+#ifdef GRPC_NATIVE_ADDRESS_RESOLVE
+
 #include "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver.h"
 
-#endif /* GPR_WINSOCK_SOCKET */
+struct grpc_ares_ev_driver {};
+
+void grpc_ares_ev_driver_start(grpc_exec_ctx *exec_ctx,
+                               grpc_ares_ev_driver *ev_driver) {}
+
+void *grpc_ares_ev_driver_get_channel(grpc_ares_ev_driver *ev_driver) {
+  return NULL;
+}
+
+grpc_error *grpc_ares_ev_driver_create(grpc_ares_ev_driver **ev_driver,
+                                       grpc_pollset_set *pollset_set) {
+  return GRPC_ERROR_NONE;
+}
+
+void grpc_ares_ev_driver_destroy(grpc_exec_ctx *exec_ctx,
+                                 grpc_ares_ev_driver *ev_driver) {}
+
+#endif /* GRPC_NATIVE_ADDRESS_RESOLVE */
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
index 6c1053a5550e71384de11fe429827e546615af24..05eae51d0d7bb5557b0c4b6c0ff90724a67b42ea 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
@@ -40,7 +40,7 @@
 
 void grpc_resolve_address_ares_impl(grpc_exec_ctx *exec_ctx, const char *name,
                                     const char *default_port,
-                                    grpc_pollset_set *pollset_set,
+                                    grpc_ares_ev_driver *ev_driver,
                                     grpc_closure *on_done,
                                     grpc_resolved_addresses **addrs) {
   grpc_resolve_address(exec_ctx, name, default_port, on_done, addrs);
@@ -48,7 +48,7 @@ void grpc_resolve_address_ares_impl(grpc_exec_ctx *exec_ctx, const char *name,
 
 void (*grpc_resolve_address_ares)(
     grpc_exec_ctx *exec_ctx, const char *name, const char *default_port,
-    grpc_pollset_set *pollset_set, grpc_closure *on_done,
+    grpc_ares_ev_driver *ev_driver, grpc_closure *on_done,
     grpc_resolved_addresses **addrs) = grpc_resolve_address_ares_impl;
 
 grpc_error *grpc_ares_init(void) { return GRPC_ERROR_NONE; }
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index ab3fe9cfbb0a014ac27e72dc8535ed1b63cbd55b..7aeb491b045faf18a21af32d3a577a44bd32c90d 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -267,6 +267,7 @@ CORE_SOURCE_FILES = [
   'src/core/ext/lb_policy/pick_first/pick_first.c',
   'src/core/ext/lb_policy/round_robin/round_robin.c',
   'src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c',
+  'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c',
   'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c',
   'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c',
   'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c',
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 5d6d6f2c1602f7f0dffca210ad23e1c60ae433d9..bd30636c752ebd44f06e9419bb695561e8e591f1 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1152,6 +1152,7 @@ third_party/nanopb/pb_encode.c \
 src/core/ext/lb_policy/pick_first/pick_first.c \
 src/core/ext/lb_policy/round_robin/round_robin.c \
 src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
+src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c \
 src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
 src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
 src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index aa8b1b9c82ff4480ae5ac023344c5e41733bd5f9..f294eb1e18c55651f921b5ab1c912b507b5984c0 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -7087,6 +7087,7 @@
     "src": [
       "src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c", 
       "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver.h", 
+      "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_fallback.c", 
       "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c", 
       "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c", 
       "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h", 
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index d39a8241dff51b43cc06eb63e6f8f71b30a38268..e217f4cc05a00a60bd799cbc2699e7f9d85d970a 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -853,6 +853,8 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\dns_resolver_ares.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_fallback.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_posix.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper.c">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index 41954f22e62e5f9db4a24c7356a9804ef0c49702..65c42292d191515f836f9679e476f202def48c0d 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -571,6 +571,9 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\dns_resolver_ares.c">
       <Filter>src\core\ext\resolver\dns\c_ares</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_fallback.c">
+      <Filter>src\core\ext\resolver\dns\c_ares</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_posix.c">
       <Filter>src\core\ext\resolver\dns\c_ares</Filter>
     </ClCompile>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index 7c4b4d6cbb25ddb2f3e4d4fc53d8b98890f5b37b..258efdf7c38d96d843cd20080e7ce929aada34fa 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -747,6 +747,8 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\dns_resolver_ares.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_fallback.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_posix.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper.c">
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 3d3a2e767eaf0b173bbbe708f670fed4c17eeda3..f2528bfcbf21fd27a602a05c580f9b462c75fab9 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -463,6 +463,9 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\dns_resolver_ares.c">
       <Filter>src\core\ext\resolver\dns\c_ares</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_fallback.c">
+      <Filter>src\core\ext\resolver\dns\c_ares</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_ev_driver_posix.c">
       <Filter>src\core\ext\resolver\dns\c_ares</Filter>
     </ClCompile>