Piotr Caban : ntdll: Add stub implementation of NtQueryInformationThread( ThreadIsIoPending).

Alexandre Julliard julliard at winehq.org
Wed Feb 8 15:52:11 CST 2017


Module: wine
Branch: master
Commit: 05ab8b98be81929a742d98ba3f1baf95aeabfe78
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=05ab8b98be81929a742d98ba3f1baf95aeabfe78

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Feb  2 19:27:26 2017 +0100

ntdll: Add stub implementation of NtQueryInformationThread(ThreadIsIoPending).

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/tests/thread.c |  1 +
 dlls/kernel32/thread.c       | 13 +++++++++++--
 dlls/ntdll/thread.c          |  9 ++++++++-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
index 001128b..334bdf4 100644
--- a/dlls/kernel32/tests/thread.c
+++ b/dlls/kernel32/tests/thread.c
@@ -1969,6 +1969,7 @@ todo_wine
 
         case ThreadAffinityMask:
         case ThreadQuerySetWin32StartAddress:
+        case ThreadIsIoPending:
 todo_wine
             ok(status == STATUS_ACCESS_DENIED, "for info %u expected STATUS_ACCESS_DENIED, got %08x (ret_len %u)\n", i, status, ret_len);
             break;
diff --git a/dlls/kernel32/thread.c b/dlls/kernel32/thread.c
index 82ccebe..de46618 100644
--- a/dlls/kernel32/thread.c
+++ b/dlls/kernel32/thread.c
@@ -918,8 +918,17 @@ LANGID WINAPI GetThreadUILanguage( void )
  */
 BOOL WINAPI GetThreadIOPendingFlag( HANDLE thread, PBOOL io_pending )
 {
-    FIXME("%p, %p\n", thread, io_pending);
-    *io_pending = FALSE;
+    NTSTATUS status;
+
+    TRACE("%p, %p\n", thread, io_pending);
+
+    status = NtQueryInformationThread( thread, ThreadIsIoPending,
+                                       io_pending, sizeof(*io_pending), NULL );
+    if (status)
+    {
+        SetLastError( RtlNtStatusToDosError(status) );
+        return FALSE;
+    }
     return TRUE;
 }
 
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
index e3cc11a..c9a5da6 100644
--- a/dlls/ntdll/thread.c
+++ b/dlls/ntdll/thread.c
@@ -1157,6 +1157,14 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class,
             }
         }
         return status;
+    case ThreadIsIoPending:
+        FIXME( "ThreadIsIoPending info class not supported yet\n" );
+        if (length != sizeof(BOOL)) return STATUS_INFO_LENGTH_MISMATCH;
+        if (!data) return STATUS_ACCESS_DENIED;
+
+        *(BOOL*)data = FALSE;
+        if (ret_len) *ret_len = sizeof(BOOL);
+        return STATUS_SUCCESS;
     case ThreadPriority:
     case ThreadBasePriority:
     case ThreadImpersonationToken:
@@ -1167,7 +1175,6 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class,
     case ThreadIdealProcessor:
     case ThreadPriorityBoost:
     case ThreadSetTlsArrayAddress:
-    case ThreadIsIoPending:
     default:
         FIXME( "info class %d not supported yet\n", class );
         return STATUS_NOT_IMPLEMENTED;




More information about the wine-cvs mailing list