From 750f684d6c836f287d7ddb427f12b28da844736a Mon Sep 17 00:00:00 2001
From: Chris Moeller <kod...@gmail.com>
Date: Mon, 29 Jul 2013 16:20:14 -0700
Subject: kernel32: Implement GetNumaHighestNodeNumber using correct
 NtQuerySystemInformation API

---
 dlls/kernel32/process.c |   25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 6ce43d8..691b3d8 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -3849,9 +3849,28 @@ HRESULT WINAPI 
RegisterApplicationRecoveryCallback(APPLICATION_RECOVERY_CALLBACK
  */
 BOOL WINAPI GetNumaHighestNodeNumber(PULONG highestnode)
 {
-    FIXME("(%p): stub\n", highestnode);
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-    return FALSE;
+    ULONG NtHighestNode, ReturnLength;
+    NTSTATUS status;
+    
+    TRACE("(%p)\n", highestnode);
+    
+    status = NtQuerySystemInformation(SystemNumaHighestNodeNumber,
+                                      &NtHighestNode, sizeof(NtHighestNode),
+                                      &ReturnLength);
+    
+    if (status != STATUS_SUCCESS)
+    {
+        SetLastError(RtlNtStatusToDosError(status));
+        return FALSE;
+    }
+    else if (ReturnLength < sizeof(NtHighestNode))
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return FALSE;
+    }
+    
+    *highestnode = NtHighestNode;
+    return TRUE;
 }
 
 /**********************************************************************
-- 
1.7.10.2 (Apple Git-33)



Reply via email to