Use RtlQueryRegistryValues instead of RosReadRegistryValue.
Modified: trunk/reactos/lib/kernel32/misc/computername.c
  _____
Modified: trunk/reactos/lib/kernel32/misc/computername.c
--- trunk/reactos/lib/kernel32/misc/computername.c      2005-06-30
12:42:57 UTC (rev 16344)
+++ trunk/reactos/lib/kernel32/misc/computername.c      2005-06-30
13:50:21 UTC (rev 16345)
@@ -29,9 +29,6 @@
 #include <k32.h>
-/* FIXME */
-#include <rosrtl/registry.h>
-
 #define NDEBUG
 #include "../include/debug.h"
@@ -125,8 +122,9 @@
     )
 {
     UNICODE_STRING ResultString;
-    UNICODE_STRING DomainPart, Dot;
-    UNICODE_STRING RegKey, RegValue;
+    UNICODE_STRING DomainPart;
+    RTL_QUERY_REGISTRY_TABLE QueryTable[2];
+    NTSTATUS Status;
     switch( NameType ) {
     case ComputerNameNetBIOS:
@@ -146,30 +144,45 @@
              nSize );
     case ComputerNameDnsFullyQualified:
-       RtlInitUnicodeString(&Dot,L".");
-       RtlInitUnicodeString(&ResultString, NULL);
-    ResultString.Length = *nSize * sizeof(WCHAR);
-    ResultString.MaximumLength = *nSize * sizeof(WCHAR);
-       RtlInitUnicodeString(&RegKey,
-                            L"\\Registry\\Machine\\System"
-                            L"\\CurrentControlSet\\Services\\Tcpip"
-                            L"\\Parameters");
-       RtlInitUnicodeString(&RegValue,L"HostName");
-       RtlInitUnicodeString(&DomainPart,L"");
-       if(
NT_SUCCESS(RosReadRegistryValue(&RegKey,&RegValue,&DomainPart)) ) {
-           RtlAppendUnicodeStringToString(&ResultString,&DomainPart);
-           RtlAppendUnicodeStringToString(&ResultString,&Dot);
-           RtlFreeUnicodeString(&DomainPart);
-           RtlInitUnicodeString(&RegValue,L"Domain");
-           RtlInitUnicodeString(&DomainPart,L"");
-           if( NT_SUCCESS(RosReadRegistryValue
-                          (&RegKey,&RegValue,&DomainPart)) ) {
-
RtlAppendUnicodeStringToString(&ResultString,&DomainPart);
-               RtlFreeUnicodeString(&DomainPart);
-               *nSize = ResultString.Length / sizeof(WCHAR);
-               return TRUE;
-           }
-       }
+        ResultString.Length = 0;
+        ResultString.MaximumLength = *nSize * sizeof(WCHAR);
+        ResultString.Buffer = lpBuffer;
+
+        RtlZeroMemory(QueryTable, sizeof(QueryTable));
+        RtlInitUnicodeString(&DomainPart, NULL);
+        QueryTable[0].Name = L"HostName";
+        QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
+        QueryTable[0].EntryContext = &DomainPart;
+
+        Status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
+                                        L"\\Registry\\Machine\\System"
+
L"\\CurrentControlSet\\Services\\Tcpip"
+                                        L"\\Parameters",
+                                        QueryTable, NULL, NULL);
+
+        if( NT_SUCCESS(Status) ) {
+            RtlAppendUnicodeStringToString(&ResultString, &DomainPart);
+            RtlAppendUnicodeToString(&ResultString, L".");
+            RtlFreeUnicodeString(&DomainPart);
+
+            RtlInitUnicodeString(&DomainPart, NULL);
+            QueryTable[0].Name = L"Domain";
+            QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
+            QueryTable[0].EntryContext = &DomainPart;
+
+            Status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
+
L"\\Registry\\Machine\\System"
+
L"\\CurrentControlSet\\Services\\Tcpip"
+                                            L"\\Parameters",
+                                            QueryTable, NULL, NULL);
+
+            if( NT_SUCCESS(Status) ) {
+                RtlAppendUnicodeStringToString(&ResultString,
&DomainPart);
+                RtlFreeUnicodeString(&DomainPart);
+                *nSize = ResultString.Length / sizeof(WCHAR);
+                return TRUE;
+            }
+        }
        return FALSE;
     case ComputerNameDnsHostname:
    
    
    
    
    
 
                    
                    
                        
                        Show replies by date