From c0c3050e32d8d79596b6ec4dfc8a2a5b5ca76f8b Mon Sep 17 00:00:00 2001
From: Chris Moeller <kod...@gmail.com>
Date: Mon, 29 Jul 2013 16:19:19 -0700
Subject: ntdll: Implement NtQuerySystemInformation class 0x37, used by
 GetNumaHighestNodeNumber

---
 dlls/ntdll/nt.c    |   14 ++++++++++++++
 include/winternl.h |    2 +-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 8a53d03..f6b8e33 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -2034,6 +2034,20 @@ NTSTATUS WINAPI NtQuerySystemInformation(
             RtlFreeHeap(GetProcessHeap(), 0, buf);
         }
         break;
+    case SystemNumaHighestNodeNumber:
+        {
+            /* This needs testing on systems with more than one physical
+             * processor, but a single processor system will always return
+             * zero, from what I've tested. */
+            len = 4;
+            if ( Length >= len)
+            {
+                ULONG HighestNode = 0;
+                memcpy( SystemInformation, &HighestNode, len);
+            }
+            else ret = STATUS_INFO_LENGTH_MISMATCH;
+        }
+        break;
     default:
        FIXME("(0x%08x,%p,0x%08x,%p) stub\n",
              SystemInformationClass,SystemInformation,Length,ResultLength);
diff --git a/include/winternl.h b/include/winternl.h
index 955228a..1de51c5 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -784,7 +784,7 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
     SystemAddVerifier = 52,
     SystemSessionProcessesInformation  = 53,
     Unknown54,
-    Unknown55,
+    SystemNumaHighestNodeNumber = 55,
     Unknown56,
     Unknown57,
     Unknown58,
-- 
1.7.10.2 (Apple Git-33)



Reply via email to