Sebastian Lackner : ntdll: Return STATUS_INVALID_DEVICE_REQUEST when trying to call NtReadFile on directory.

Alexandre Julliard julliard at winehq.org
Fri Feb 5 16:50:48 CST 2021


Module: wine
Branch: master
Commit: 43de1407e92296882c9c04e095f141a5df968808
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=43de1407e92296882c9c04e095f141a5df968808

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Thu Feb  4 18:05:00 2021 -0600

ntdll: Return STATUS_INVALID_DEVICE_REQUEST when trying to call NtReadFile on directory.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/tests/file.c | 1 -
 dlls/ntdll/unix/file.c  | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 2507437c8c3..839046a7488 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -171,7 +171,6 @@ static void create_file_test(void)
     U(io).Status = 0xdeadbeef;
     offset.QuadPart = 0;
     status = pNtReadFile( dir, NULL, NULL, NULL, &io, buf, sizeof(buf), &offset, NULL );
-    todo_wine
     ok( status == STATUS_INVALID_DEVICE_REQUEST || status == STATUS_PENDING, "NtReadFile error %08x\n", status );
     if (status == STATUS_PENDING)
     {
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index c41d6bbfa6c..68ce40eb700 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -344,7 +344,7 @@ NTSTATUS errno_to_status( int err )
     case EACCES:    return STATUS_ACCESS_DENIED;
     case ENOTDIR:   return STATUS_OBJECT_PATH_NOT_FOUND;
     case ENOENT:    return STATUS_OBJECT_NAME_NOT_FOUND;
-    case EISDIR:    return STATUS_FILE_IS_A_DIRECTORY;
+    case EISDIR:    return STATUS_INVALID_DEVICE_REQUEST;
     case EMFILE:
     case ENFILE:    return STATUS_TOO_MANY_OPENED_FILES;
     case EINVAL:    return STATUS_INVALID_PARAMETER;




More information about the wine-cvs mailing list