[ntdll] More descriptive info class stubs

Felix Nawothnig felix.nawothnig at t-online.de
Sat Jul 2 12:16:37 CDT 2005


ChangeLog:
Replace stubs for information classes in NtQueryVirtualMemory and 
NtQueryInformationProcess by more descriptive messages.
-------------- next part --------------
Index: virtual.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/virtual.c,v
retrieving revision 1.55
diff -u -r1.55 virtual.c
--- virtual.c	25 Jun 2005 18:00:57 -0000	1.55
+++ virtual.c	2 Jul 2005 17:15:13 -0000
@@ -1403,6 +1403,10 @@
     return status;
 }
 
+#define UNIMPLEMENTED_INFO_CLASS(c) \
+    case c: \
+        FIXME("(process=%p,addr=%p) Unimplemented information class: " #c "\n", process, addr); \
+        return STATUS_INVALID_INFO_CLASS; \
 
 /***********************************************************************
  *             NtQueryVirtualMemory   (NTDLL.@)
@@ -1420,9 +1424,17 @@
 
     if (info_class != MemoryBasicInformation)
     {
-        FIXME("(%p, %p, %d, %p, %ld, %p) Unimplemented information class\n", process, addr,
-              info_class, buffer, len, res_len);
-        return STATUS_INVALID_INFO_CLASS;
+        switch(info_class)
+        {
+            UNIMPLEMENTED_INFO_CLASS(MemoryWorkingSetList)
+            UNIMPLEMENTED_INFO_CLASS(MemorySectionName)
+            UNIMPLEMENTED_INFO_CLASS(MemoryBasicVlmInformation)
+
+            default:
+                FIXME("(%p,%p,info_class=%d,%p,%ld,%p) Unknown information class\n", 
+                      process, addr, info_class, buffer, len, res_len);
+                return STATUS_INVALID_INFO_CLASS;
+        }
     }
     if (ADDRESS_SPACE_LIMIT && addr >= ADDRESS_SPACE_LIMIT)
         return STATUS_WORKING_SET_LIMIT_RANGE;
Index: process.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/process.c,v
retrieving revision 1.9
diff -u -r1.9 process.c
--- process.c	27 Jun 2005 11:12:11 -0000	1.9
+++ process.c	2 Jul 2005 17:15:14 -0000
@@ -60,6 +60,12 @@
     return ret;
 }
 
+#define UNIMPLEMENTED_INFO_CLASS(c) \
+    case c: \
+        FIXME("(process=%p) Unimplemented information class: " #c "\n", ProcessHandle); \
+        ret = STATUS_INVALID_INFO_CLASS; \
+        break;
+
 /******************************************************************************
 *  NtQueryInformationProcess		[NTDLL.@]
 *  ZwQueryInformationProcess		[NTDLL.@]
@@ -82,6 +88,34 @@
 
     switch (ProcessInformationClass) 
     {
+
+    UNIMPLEMENTED_INFO_CLASS(ProcessQuotaLimits)
+    UNIMPLEMENTED_INFO_CLASS(ProcessBasePriority)
+    UNIMPLEMENTED_INFO_CLASS(ProcessRaisePriority)
+    UNIMPLEMENTED_INFO_CLASS(ProcessExceptionPort)
+    UNIMPLEMENTED_INFO_CLASS(ProcessAccessToken)
+    UNIMPLEMENTED_INFO_CLASS(ProcessLdtInformation)
+    UNIMPLEMENTED_INFO_CLASS(ProcessLdtSize)
+    UNIMPLEMENTED_INFO_CLASS(ProcessDefaultHardErrorMode)
+    UNIMPLEMENTED_INFO_CLASS(ProcessIoPortHandlers)
+    UNIMPLEMENTED_INFO_CLASS(ProcessPooledUsageAndLimits)
+    UNIMPLEMENTED_INFO_CLASS(ProcessWorkingSetWatch)
+    UNIMPLEMENTED_INFO_CLASS(ProcessUserModeIOPL)
+    UNIMPLEMENTED_INFO_CLASS(ProcessEnableAlignmentFaultFixup)
+    UNIMPLEMENTED_INFO_CLASS(ProcessPriorityClass)
+    UNIMPLEMENTED_INFO_CLASS(ProcessWx86Information)
+    UNIMPLEMENTED_INFO_CLASS(ProcessAffinityMask)
+    UNIMPLEMENTED_INFO_CLASS(ProcessPriorityBoost)
+    UNIMPLEMENTED_INFO_CLASS(ProcessDeviceMap)
+    UNIMPLEMENTED_INFO_CLASS(ProcessSessionInformation)
+    UNIMPLEMENTED_INFO_CLASS(ProcessForegroundInformation)
+    UNIMPLEMENTED_INFO_CLASS(ProcessImageFileName)
+    UNIMPLEMENTED_INFO_CLASS(ProcessLUIDDeviceMapsEnabled)
+    UNIMPLEMENTED_INFO_CLASS(ProcessBreakOnTermination)
+    UNIMPLEMENTED_INFO_CLASS(ProcessDebugObjectHandle)
+    UNIMPLEMENTED_INFO_CLASS(ProcessDebugFlags)
+    UNIMPLEMENTED_INFO_CLASS(ProcessHandleTracing)
+
     case ProcessBasicInformation:
         {
             PROCESS_BASIC_INFORMATION pbi;
@@ -237,7 +271,7 @@
         else ret = STATUS_INFO_LENGTH_MISMATCH;
         break;
     default:
-        FIXME("(%p,0x%08x,%p,0x%08lx,%p),stub!\n",
+        FIXME("(%p,info_class=%d,%p,0x%08lx,%p) Unknown information class\n",
               ProcessHandle,ProcessInformationClass,
               ProcessInformation,ProcessInformationLength,
               ReturnLength);


More information about the wine-patches mailing list