diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index 765e1bf..e121262 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -521,3 +521,15 @@
     if not rel_list:
         return curdir
     return join(*rel_list)
+
+try:
+    # The genericpath.isdir implementation uses os.stat and checks the mode
+    # attribute to tell whether or not the path is a directory.
+    # This is overkill on Windows - just pass the path to GetFileAttributes
+    # and check the attribute from there.
+    from nt import _isdir
+except ImportError:
+    from genericpath import isdir as _isdir
+
+def isdir(path):
+    return _isdir(path)
diff --git a/Misc/NEWS b/Misc/NEWS
index f68a346..3419894 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -16,6 +16,9 @@
 Library
 -------
 
+- Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes
+  instead of os.stat.
+
 - Issue #12080: Fix a performance issue in Decimal._power_exact that caused
   some corner-case Decimal.__pow__ calls to take an unreasonably long time.
 
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 48762c1..e5fdc5a 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -4199,6 +4199,41 @@
     CloseHandle(handle);
     return result;
 }
+
+static PyObject *
+posix__isdir(PyObject *self, PyObject *args)
+{
+    PyObject *opath;
+    char *path;
+    PyUnicodeObject *po;
+    DWORD attributes;
+
+    if (PyArg_ParseTuple(args, "U|:_isdir", &po)) {
+        Py_UNICODE *wpath = PyUnicode_AS_UNICODE(po);
+
+        attributes = GetFileAttributesW(wpath);
+        if (attributes == INVALID_FILE_ATTRIBUTES)
+            Py_RETURN_FALSE;
+        goto check;
+    }
+    /* Drop the argument parsing error as narrow strings
+       are also valid. */
+    PyErr_Clear();
+
+    if (!PyArg_ParseTuple(args, "et:_isdir",
+                          Py_FileSystemDefaultEncoding, &path))
+        return NULL;
+
+    attributes = GetFileAttributesA(path);
+    if (attributes == INVALID_FILE_ATTRIBUTES)
+        Py_RETURN_FALSE;
+
+check:
+    if (attributes & FILE_ATTRIBUTE_DIRECTORY)
+        Py_RETURN_TRUE;
+    else
+        Py_RETURN_FALSE;
+}
 #endif /* MS_WINDOWS */
 
 #ifdef HAVE_PLOCK
@@ -8968,6 +9003,7 @@
     {"abort",           posix_abort, METH_NOARGS, posix_abort__doc__},
 #ifdef MS_WINDOWS
     {"_getfullpathname",        posix__getfullpathname, METH_VARARGS, NULL},
+    {"_isdir",                  posix__isdir, METH_VARARGS, NULL},
 #endif
 #ifdef HAVE_GETLOADAVG
     {"getloadavg",      posix_getloadavg, METH_NOARGS, posix_getloadavg__doc__},
