From d9fd069798da6b15366e53b55735751be7f9b39a Mon Sep 17 00:00:00 2001 From: short <> Date: Mon, 10 Nov 2003 20:50:50 +0000 Subject: [PATCH] RtlQueryRegistryValues(): +Satisfy secdrv.sys 'CSDVersion'. --- src/libcaptive/cm/rtlfunc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/libcaptive/cm/rtlfunc.c b/src/libcaptive/cm/rtlfunc.c index 62f4128..5b3a26f 100644 --- a/src/libcaptive/cm/rtlfunc.c +++ b/src/libcaptive/cm/rtlfunc.c @@ -48,6 +48,8 @@ const WCHAR *Path__captive_filesystem_Parameters_ucs2= captive_utf8_to_UnicodeString_alloca("\\captive\\filesystem\\Parameters")->Buffer; const WCHAR *QueryTable_WritingSupport_Name_ucs2= captive_utf8_to_UnicodeString_alloca("WritingSupport")->Buffer; +const WCHAR *QueryTable_CSDVersion_Name_ucs2= + captive_utf8_to_UnicodeString_alloca("CSDVersion")->Buffer; const gchar *RelativeTo_table[]={ "RTL_REGISTRY_ABSOLUTE", "RTL_REGISTRY_SERVICES", @@ -81,5 +83,18 @@ UNICODE_STRING Path_UnicodeString; return STATUS_SUCCESS; } + if (RelativeTo==RTL_REGISTRY_WINDOWS_NT + && *Path==0 + && QueryTable[0].Name!=NULL + && captive_ucs2_compare(QueryTable[0].Name,QueryTable_CSDVersion_Name_ucs2) + && QueryTable[0].Flags==RTL_QUERY_REGISTRY_DIRECT + && QueryTable[0].EntryContext!=NULL + && QueryTable[1].Name==NULL) { + RtlCopyUnicodeString( + (UNICODE_STRING *)QueryTable->EntryContext, /* DestinationString */ + captive_utf8_to_UnicodeString_alloca("Service Pack 1")); /* SourceString */ + return STATUS_SUCCESS; + } + return STATUS_OBJECT_NAME_NOT_FOUND; } -- 1.8.3.1