https://git.reactos.org/?p=reactos.git;a=commitdiff;h=51aac7ca93a657718f170…
commit 51aac7ca93a657718f1700f802cd02c683bcc1c6
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Tue Sep 24 19:09:23 2024 +0300
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Tue Nov 5 10:54:21 2024 +0200
[RTL] actctx.c: Restore wine tracing
---
sdk/lib/rtl/actctx.c | 206 ++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 164 insertions(+), 42 deletions(-)
diff --git a/sdk/lib/rtl/actctx.c b/sdk/lib/rtl/actctx.c
index 3a102f1c725..d4768428d81 100644
--- a/sdk/lib/rtl/actctx.c
+++ b/sdk/lib/rtl/actctx.c
@@ -19,17 +19,16 @@
#include <ntstrsafe.h>
#include <compat_undoc.h>
-#define NDEBUG
-#include <debug.h>
-
#include <wine/unicode.h>
#include "wine/exception.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(actctx);
#define GetProcessHeap() RtlGetProcessHeap()
#define GetCurrentProcess() NtCurrentProcess()
-#define FIXME DPRINT1
-#define WARN DPRINT1
-#define TRACE DPRINT
+#define DPRINT1 FIXME
+#define DPRINT TRACE
#define FILE_END_OF_FILE_INFORMATION FILE_STANDARD_INFORMATION
#define FileEndOfFileInformation FileStandardInformation
#define RELATIVE_PATH RtlPathTypeRelative
@@ -38,6 +37,7 @@
#define wcsnicmp _wcsnicmp
#define swprintf _snwprintf
#define wcsicmp _wcsicmp
+extern LPCSTR debugstr_us( const UNICODE_STRING *str ) DECLSPEC_HIDDEN;
#undef RT_MANIFEST
#undef CREATEPROCESS_MANIFEST_RESOURCE_ID
@@ -835,17 +835,27 @@ static inline BOOL isxmlspace( WCHAR ch )
return (ch == ' ' || ch == '\r' || ch == '\n' || ch ==
'\t');
}
-#ifndef __REACTOS__
static inline const char* debugstr_xmlstr(const xmlstr_t* str)
{
return debugstr_wn(str->ptr, str->len);
}
+static inline const char *debugstr_xml_elem( const struct xml_elem *elem )
+{
+ return wine_dbg_sprintf( "%s ns %s", debugstr_wn( elem->name.ptr,
elem->name.len ),
+ debugstr_wn( elem->ns.ptr, elem->ns.len ));
+}
+
+static inline const char *debugstr_xml_attr( const struct xml_attr *attr )
+{
+ return wine_dbg_sprintf( "%s=%s", debugstr_wn( attr->name.ptr,
attr->name.len ),
+ debugstr_wn( attr->value.ptr, attr->value.len ));
+}
+
static inline const char* debugstr_version(const struct assembly_version *ver)
{
return wine_dbg_sprintf("%u.%u.%u.%u", ver->major, ver->minor,
ver->build, ver->revision);
}
-#endif // !__REACTOS__
static NTSTATUS get_module_filename( HMODULE module, UNICODE_STRING *str, unsigned int
extra_len )
{
@@ -1068,8 +1078,8 @@ static BOOL add_dependent_assembly_id(struct actctx_loader* acl,
for (i = 0; i < acl->actctx->num_assemblies; i++)
if (is_matching_identity( ai, &acl->actctx->assemblies[i].id ))
{
- TRACE( "reusing existing assembly for %S arch %S version
%u.%u.%u.%u\n",
- ai->name, ai->arch, ai->version.major, ai->version.minor,
+ TRACE( "reusing existing assembly for %s arch %s version
%u.%u.%u.%u\n",
+ debugstr_w(ai->name), debugstr_w(ai->arch),
ai->version.major, ai->version.minor,
ai->version.build, ai->version.revision );
return TRUE;
}
@@ -1077,8 +1087,8 @@ static BOOL add_dependent_assembly_id(struct actctx_loader* acl,
for (i = 0; i < acl->num_dependencies; i++)
if (is_matching_identity( ai, &acl->dependencies[i] ))
{
- TRACE( "reusing existing dependency for %S arch %S version
%u.%u.%u.%u\n",
- ai->name, ai->arch, ai->version.major, ai->version.minor,
+ TRACE( "reusing existing dependency for %s arch %s version
%u.%u.%u.%u\n",
+ debugstr_w(ai->name), debugstr_w(ai->arch),
ai->version.major, ai->version.minor,
ai->version.build, ai->version.revision );
return TRUE;
}
@@ -1275,7 +1285,7 @@ static void push_xmlns( xmlbuf_t *xmlbuf, const struct xml_attr
*attr )
if (xmlbuf->ns_pos == MAX_NAMESPACES - 1)
{
- // FIXME( "too many namespaces in manifest\n" );
+ FIXME( "too many namespaces in manifest\n" );
set_error( xmlbuf );
return;
}
@@ -1299,7 +1309,7 @@ static xmlstr_t find_xmlns( xmlbuf_t *xmlbuf, const xmlstr_t *name
)
!wcsncmp( xmlbuf->namespaces[i].name.ptr, name->ptr, name->len ))
return xmlbuf->namespaces[i].value;
}
-
+ if (xmlbuf->ns_pos) WARN( "namespace %s not found\n", debugstr_xmlstr(
name ));
return empty_xmlstr;
}
@@ -1436,8 +1446,8 @@ static BOOL next_xml_elem( xmlbuf_t *xmlbuf, struct xml_elem *elem,
const struct
elem->ns = find_xmlns( xmlbuf, &elem->ns );
if (!xml_name_cmp( elem, parent ))
{
- /*ERR( "wrong closing element %s for %s\n",
- debugstr_xmlstr(&elem->name),
debugstr_xmlstr(&parent->name ));*/
+ ERR( "wrong closing element %s for %s\n",
+ debugstr_xmlstr(&elem->name),
debugstr_xmlstr(&parent->name ));
return set_error( xmlbuf );
}
while (xmlbuf->ptr < xmlbuf->end && isxmlspace(*xmlbuf->ptr))
xmlbuf->ptr++;
@@ -1521,6 +1531,7 @@ static BOOL parse_version(const xmlstr_t *str, struct
assembly_version *version)
return TRUE;
error:
+ FIXME( "Wrong version definition in manifest file (%s)\n",
debugstr_xmlstr(str) );
return FALSE;
}
@@ -1530,8 +1541,7 @@ static void parse_expect_no_attr(xmlbuf_t* xmlbuf, BOOL* end)
while (next_xml_attr(xmlbuf, &attr, end))
{
- // TODO: report error
- // if (!is_xmlns_attr( &attr )) WARN("unexpected attr %s\n",
debugstr_xml_attr(&attr));
+ if (!is_xmlns_attr( &attr )) WARN("unexpected attr %s\n",
debugstr_xml_attr(&attr));
}
}
@@ -1541,7 +1551,7 @@ static void parse_expect_end_elem( xmlbuf_t *xmlbuf, const struct
xml_elem *pare
if (next_xml_elem(xmlbuf, &elem, parent))
{
- // FIXME( "unexpected element %s\n", debugstr_xml_elem(&elem) );
+ FIXME( "unexpected element %s\n", debugstr_xml_elem(&elem) );
set_error( xmlbuf );
}
}
@@ -1591,8 +1601,15 @@ static void parse_assembly_identity_elem(xmlbuf_t *xmlbuf,
ACTIVATION_CONTEXT *a
{
if (!(ai->language = xmlstrdupW(&attr.value))) set_error( xmlbuf );
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
+ TRACE( "name=%s version=%s arch=%s\n",
+ debugstr_w(ai->name), debugstr_version(&ai->version),
debugstr_w(ai->arch) );
+
if (!end) parse_expect_end_elem(xmlbuf, parent);
}
@@ -1639,7 +1656,7 @@ static OLEMISC get_olemisc_value(const WCHAR *str, int len)
min = n+1;
}
- WARN("unknown flag %S\n", str);
+ WARN("unknown flag %s\n", debugstr_wn(str, len));
return 0;
}
@@ -1759,6 +1776,10 @@ static void parse_com_class_elem( xmlbuf_t *xmlbuf, struct
dll_redirect *dll, st
{
/* not stored */
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
acl->actctx->sections |= SERVERREDIRECT_SECTION;
@@ -1775,6 +1796,7 @@ static void parse_com_class_elem( xmlbuf_t *xmlbuf, struct
dll_redirect *dll, st
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -1794,7 +1816,7 @@ static BOOL parse_nummethods(const xmlstr_t *str, struct entity
*entity)
num = num * 10 + *curr - '0';
else
{
- // ERR("wrong numeric value %wZ\n", &strU);
+ ERR("wrong numeric value %s\n", debugstr_xmlstr(str));
return FALSE;
}
}
@@ -1878,6 +1900,7 @@ static void parse_cominterface_proxy_stub_elem( xmlbuf_t *xmlbuf,
struct dll_red
}
else if (!is_xmlns_attr( &attr ))
{
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
}
}
@@ -1913,7 +1936,7 @@ static BOOL parse_typelib_flags(const xmlstr_t *value, struct entity
*entity)
*flags |= LIBFLAG_FHASDISKIMAGE;
else
{
- // WARN("unknown flags value %wZ\n", &valueU);
+ WARN("unknown flags value %s\n", debugstr_xmlstr(value));
return FALSE;
}
@@ -1951,6 +1974,7 @@ static BOOL parse_typelib_version(const xmlstr_t *str, struct entity
*entity)
return TRUE;
error:
+ FIXME("wrong typelib version value (%s)\n", debugstr_xmlstr(str));
return FALSE;
}
@@ -1985,6 +2009,10 @@ static void parse_typelib_elem( xmlbuf_t *xmlbuf, struct
dll_redirect *dll,
{
if (!parse_typelib_flags(&attr.value, entity)) set_error( xmlbuf );
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
acl->actctx->sections |= TLIBREDIRECT_SECTION;
@@ -2030,6 +2058,10 @@ static void parse_window_class_elem( xmlbuf_t *xmlbuf, struct
dll_redirect *dll,
else if (!xmlstr_cmpi(&attr.value, yesW))
set_error( xmlbuf );
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
if (end) return;
@@ -2041,6 +2073,7 @@ static void parse_window_class_elem( xmlbuf_t *xmlbuf, struct
dll_redirect *dll,
while (next_xml_elem(xmlbuf, &elem, parent))
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2054,11 +2087,15 @@ static void parse_binding_redirect_elem( xmlbuf_t *xmlbuf, const
struct xml_elem
{
if (xml_attr_cmp(&attr, oldVersionW))
{
- // FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr));
+ FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr));
}
else if (xml_attr_cmp(&attr, newVersionW))
{
- // FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr));
+ FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr));
+ }
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
}
}
@@ -2072,13 +2109,19 @@ static void parse_description_elem( xmlbuf_t *xmlbuf, const struct
xml_elem *par
xmlstr_t content;
BOOL end = FALSE;
- while (next_xml_attr(xmlbuf, &attr, &end));
+ while (next_xml_attr(xmlbuf, &attr, &end))
+ {
+ if (!is_xmlns_attr( &attr )) WARN("unknown attr %s\n",
debugstr_xml_attr(&attr));
+ }
if (end) return;
if (!parse_text_content(xmlbuf, &content)) return;
+ TRACE("Got description %s\n", debugstr_xmlstr(&content));
+
while (next_xml_elem(xmlbuf, &elem, parent))
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2126,6 +2169,10 @@ static void parse_com_interface_external_proxy_stub_elem(xmlbuf_t
*xmlbuf,
{
if (!(entity->u.ifaceps.tlib = xmlstrdupW(&attr.value))) set_error(
xmlbuf );
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
acl->actctx->sections |= IFACEREDIRECT_SECTION;
@@ -2173,6 +2220,10 @@ static void parse_clr_class_elem( xmlbuf_t* xmlbuf, struct
assembly* assembly,
{
if (!(entity->u.comclass.version = xmlstrdupW(&attr.value)))
set_error( xmlbuf );
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
acl->actctx->sections |= SERVERREDIRECT_SECTION;
@@ -2188,6 +2239,7 @@ static void parse_clr_class_elem( xmlbuf_t* xmlbuf, struct assembly*
assembly,
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2223,6 +2275,10 @@ static void parse_clr_surrogate_elem( xmlbuf_t *xmlbuf, struct
assembly *assembl
{
if (!(entity->u.clrsurrogate.version = xmlstrdupW(&attr.value)))
set_error( xmlbuf );
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
acl->actctx->sections |= CLRSURROGATES_SECTION;
@@ -2247,6 +2303,8 @@ static void parse_dependent_assembly_elem( xmlbuf_t *xmlbuf, struct
actctx_loade
if (xml_attr_cmp(&attr, allowDelayedBindingW))
ai.delayed = xmlstr_cmp(&attr.value, trueW);
+ else if (!is_xmlns_attr( &attr ))
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
}
if (end) return;
@@ -2262,6 +2320,8 @@ static void parse_dependent_assembly_elem( xmlbuf_t *xmlbuf, struct
actctx_loade
RtlFreeHeap( GetProcessHeap(), 0, ai.arch );
ai.arch = strdupW( current_archW );
}
+ TRACE( "adding name=%s version=%s arch=%s\n",
+ debugstr_w(ai.name), debugstr_version(&ai.version),
debugstr_w(ai.arch) );
if (!add_dependent_assembly_id(acl, &ai)) set_error( xmlbuf );
}
else if (xml_elem_cmp(&elem, bindingRedirectW, asmv1W))
@@ -2270,6 +2330,7 @@ static void parse_dependent_assembly_elem( xmlbuf_t *xmlbuf, struct
actctx_loade
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2288,6 +2349,11 @@ static void parse_dependency_elem( xmlbuf_t *xmlbuf, struct
actctx_loader *acl,
if (xml_attr_cmp(&attr, optionalW))
{
optional = xmlstr_cmpi( &attr.value, yesW );
+ TRACE("optional=%s\n", debugstr_xmlstr(&attr.value));
+ }
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
}
}
@@ -2299,6 +2365,7 @@ static void parse_dependency_elem( xmlbuf_t *xmlbuf, struct
actctx_loader *acl,
}
else
{
+ WARN("unknown element %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2339,6 +2406,7 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly*
assembly,
if (xml_attr_cmp(&attr, g_nameW))
{
if (!(dll->name = xmlstrdupW(&attr.value))) set_error( xmlbuf );
+ TRACE("name=%s\n", debugstr_xmlstr(&attr.value));
}
else if (xml_attr_cmp(&attr, hashW))
{
@@ -2347,9 +2415,12 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly*
assembly,
else if (xml_attr_cmp(&attr, hashalgW))
{
static const WCHAR sha1W[] =
{'S','H','A','1',0};
- if (!xmlstr_cmpi(&attr.value, sha1W)) {
- //FIXME("hashalg should be SHA1, got %s\n",
debugstr_xmlstr(&attr.value));
- }
+ if (!xmlstr_cmpi(&attr.value, sha1W))
+ FIXME("hashalg should be SHA1, got %s\n",
debugstr_xmlstr(&attr.value));
+ }
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
}
}
@@ -2371,6 +2442,7 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly*
assembly,
}
else if (xml_elem_cmp(&elem, hashW, asmv2W))
{
+ WARN("asmv2:hash (undocumented) not supported\n");
parse_unknown_elem(xmlbuf, &elem);
}
else if (xml_elem_cmp(&elem, typelibW, asmv1W))
@@ -2383,6 +2455,7 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly*
assembly,
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem( xmlbuf, &elem );
}
}
@@ -2414,6 +2487,14 @@ static void parse_supportedos_elem( xmlbuf_t *xmlbuf, struct
assembly *assembly,
compat->Type = ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS;
compat->Id = compat_id;
}
+ else
+ {
+ WARN("Invalid guid %s\n", debugstr_xmlstr(&attr.value));
+ }
+ }
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
}
}
@@ -2433,6 +2514,7 @@ static void parse_compatibility_application_elem(xmlbuf_t *xmlbuf,
struct assemb
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2451,6 +2533,7 @@ static void parse_compatibility_elem(xmlbuf_t *xmlbuf, struct
assembly *assembly
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2467,11 +2550,13 @@ static void parse_settings_elem( xmlbuf_t *xmlbuf, struct assembly
*assembly, st
while (next_xml_attr( xmlbuf, &attr, &end ))
{
+ if (!is_xmlns_attr( &attr )) WARN( "unknown attr %s\n",
debugstr_xml_attr(&attr) );
}
if (end) return;
if (!parse_text_content( xmlbuf, &content )) return;
+ TRACE( "got %s %s\n", debugstr_xmlstr(&parent->name),
debugstr_xmlstr(&content) );
entity = add_entity( &assembly->entities,
ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS );
if (!entity)
@@ -2485,6 +2570,7 @@ static void parse_settings_elem( xmlbuf_t *xmlbuf, struct assembly
*assembly, st
while (next_xml_elem(xmlbuf, &elem, parent))
{
+ WARN( "unknown elem %s\n", debugstr_xml_elem(&elem) );
parse_unknown_elem( xmlbuf, &elem );
}
}
@@ -2512,6 +2598,7 @@ static void parse_windows_settings_elem( xmlbuf_t *xmlbuf, struct
assembly *asse
}
else
{
+ WARN( "unknown elem %s\n", debugstr_xml_elem(&elem) );
parse_unknown_elem( xmlbuf, &elem );
}
}
@@ -2530,6 +2617,7 @@ static void parse_application_elem( xmlbuf_t *xmlbuf, struct
assembly *assembly,
}
else
{
+ WARN( "unknown elem %s\n", debugstr_xml_elem(&elem) );
parse_unknown_elem( xmlbuf, &elem );
}
}
@@ -2563,6 +2651,8 @@ static void parse_requested_execution_level_elem( xmlbuf_t *xmlbuf,
struct assem
assembly->run_level = ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE;
else if (xmlstr_cmpi(&attr.value, requireAdministratorW))
assembly->run_level = ACTCTX_RUN_LEVEL_REQUIRE_ADMIN;
+ else
+ FIXME("unknown execution level: %s\n",
debugstr_xmlstr(&attr.value));
}
else if (xml_attr_cmp(&attr, uiAccessW))
{
@@ -2570,13 +2660,18 @@ static void parse_requested_execution_level_elem( xmlbuf_t
*xmlbuf, struct assem
assembly->ui_access = FALSE;
else if (xmlstr_cmpi(&attr.value, trueW))
assembly->ui_access = TRUE;
+ else
+ FIXME("unknown uiAccess value: %s\n",
debugstr_xmlstr(&attr.value));
}
+ else if (!is_xmlns_attr( &attr ))
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
}
if (end) return;
while (next_xml_elem(xmlbuf, &elem, parent))
{
+ WARN("unknown element %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2594,6 +2689,7 @@ static void parse_requested_privileges_elem( xmlbuf_t *xmlbuf,
struct assembly *
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2612,6 +2708,7 @@ static void parse_security_elem( xmlbuf_t *xmlbuf, struct assembly
*assembly,
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2630,6 +2727,7 @@ static void parse_trust_info_elem( xmlbuf_t *xmlbuf, struct assembly
*assembly,
}
else
{
+ WARN("unknown elem %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2643,6 +2741,8 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly*
assembly,
struct xml_attr attr;
BOOL end = FALSE, version = FALSE;
+ TRACE("(%p)\n", xmlbuf);
+
while (next_xml_attr(xmlbuf, &attr, &end))
{
if (xml_attr_cmp(&attr, manifestVersionW))
@@ -2650,10 +2750,15 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct
assembly* assembly,
static const WCHAR v10W[] = {'1','.','0',0};
if (!xmlstr_cmp(&attr.value, v10W))
{
+ FIXME("wrong version %s\n", debugstr_xmlstr(&attr.value));
break;
}
version = TRUE;
}
+ else if (!is_xmlns_attr( &attr ))
+ {
+ WARN("unknown attr %s\n", debugstr_xml_attr(&attr));
+ }
}
if (end || !version)
@@ -2711,6 +2816,11 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly*
assembly,
if (assembly->type == ASSEMBLY_MANIFEST &&
memcmp(&assembly->id.version, &expected_ai->version,
sizeof(assembly->id.version)))
{
+ FIXME("wrong version for assembly manifest: %u.%u.%u.%u /
%u.%u.%u.%u\n",
+ expected_ai->version.major, expected_ai->version.minor,
+ expected_ai->version.build,
expected_ai->version.revision,
+ assembly->id.version.major, assembly->id.version.minor,
+ assembly->id.version.build,
assembly->id.version.revision);
set_error( xmlbuf );
}
else if (assembly->type == ASSEMBLY_SHARED_MANIFEST &&
@@ -2720,6 +2830,7 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly*
assembly,
(assembly->id.version.build == expected_ai->version.build
&&
assembly->id.version.revision <
expected_ai->version.revision)))
{
+ FIXME("wrong version for shared assembly manifest\n");
set_error( xmlbuf );
}
}
@@ -2734,6 +2845,7 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly*
assembly,
}
else
{
+ WARN("unknown element %s\n", debugstr_xml_elem(&elem));
parse_unknown_elem(xmlbuf, &elem);
}
}
@@ -2762,22 +2874,26 @@ static NTSTATUS parse_manifest_buffer( struct actctx_loader* acl,
struct assembl
if (!xml_elem_cmp(&elem, assemblyW, asmv1W))
{
+ FIXME("root element is %s, not <assembly>\n",
debugstr_xml_elem(&elem));
return STATUS_SXS_CANT_GEN_ACTCTX;
}
parse_assembly_elem(xmlbuf, assembly, acl, &elem, ai);
if (xmlbuf->error)
{
+ FIXME("failed to parse manifest %s\n",
debugstr_w(assembly->manifest.info) );
return STATUS_SXS_CANT_GEN_ACTCTX;
}
if (next_xml_elem(xmlbuf, &elem, &parent))
{
+ FIXME("unexpected element %s\n", debugstr_xml_elem(&elem));
return STATUS_SXS_CANT_GEN_ACTCTX;
}
if (xmlbuf->ptr != xmlbuf->end)
{
+ FIXME("parse error\n");
return STATUS_SXS_CANT_GEN_ACTCTX;
}
return STATUS_SUCCESS;
@@ -2792,7 +2908,7 @@ static NTSTATUS parse_manifest( struct actctx_loader* acl, struct
assembly_ident
struct assembly *assembly;
int unicode_tests;
- TRACE( "parsing manifest loaded from %S base dir %S\n", filename, directory
);
+ TRACE( "parsing manifest loaded from %s base dir %s\n",
debugstr_w(filename), debugstr_w(directory) );
if (!(assembly = add_assembly(acl->actctx, shared ? ASSEMBLY_SHARED_MANIFEST :
ASSEMBLY_MANIFEST)))
return STATUS_SXS_CANT_GEN_ACTCTX;
@@ -3018,7 +3134,7 @@ static NTSTATUS get_manifest_in_pe_file( struct actctx_loader* acl,
struct assem
resptr = resnameBuf;
}
- TRACE( "looking for res %S in %S\n", resptr, filename ? filename :
L"<NULL>");
+ DPRINT( "looking for res %S in %S\n", resptr, filename ? filename :
L"<NULL>");
attr.Length = sizeof(attr);
attr.RootDirectory = 0;
@@ -3067,7 +3183,7 @@ static NTSTATUS get_manifest_in_manifest_file( struct actctx_loader*
acl, struct
SIZE_T count;
void *base;
- TRACE( "loading manifest file %S\n", filename );
+ TRACE( "loading manifest file %s\n", debugstr_w(filename) );
attr.Length = sizeof(attr);
attr.RootDirectory = 0;
@@ -3110,7 +3226,7 @@ static NTSTATUS get_manifest_in_associated_manifest( struct
actctx_loader* acl,
if (!((ULONG_PTR)resname >> 16)) resid = (ULONG_PTR)resname & 0xffff;
- TRACE( "looking for manifest associated with %S id %lu\n", filename, resid
);
+ TRACE( "looking for manifest associated with %s id %lu\n",
debugstr_w(filename), resid );
if (module) /* use the module filename */
{
@@ -3224,7 +3340,7 @@ static WCHAR *lookup_manifest_file( HANDLE dir, struct
assembly_identity *ai )
}
}
}
- else WARN("no matching file for %S\n", lookup);
+ else WARN("no matching file for %s\n", debugstr_w(lookup));
RtlFreeHeap( GetProcessHeap(), 0, lookup );
return ret;
}
@@ -3314,8 +3430,8 @@ static NTSTATUS lookup_assembly(struct actctx_loader* acl,
HANDLE file;
DWORD len;
- TRACE( "looking for name=%S version=%u.%u.%u.%u arch=%S\n",
- ai->name, ai->version.major, ai->version.minor,
ai->version.build, ai->version.revision, ai->arch );
+ TRACE( "looking for name=%s version=%s arch=%s\n",
+ debugstr_w(ai->name), debugstr_version(&ai->version),
debugstr_w(ai->arch) );
if ((status = lookup_winsxs(acl, ai)) != STATUS_NO_SUCH_FILE) return status;
@@ -3403,10 +3519,9 @@ static NTSTATUS parse_depend_manifests(struct actctx_loader* acl)
{
if (!acl->dependencies[i].optional &&
!acl->dependencies[i].delayed)
{
- const struct assembly_version *ver =
&acl->dependencies[i].version;
- DPRINT1( "Could not find dependent assembly %S
(%u.%u.%u.%u)\n",
- acl->dependencies[i].name,
- ver->major, ver->minor, ver->build, ver->revision );
+ FIXME( "Could not find dependent assembly %s (%s)\n",
+ debugstr_w(acl->dependencies[i].name),
+ debugstr_version(&acl->dependencies[i].version) );
status = STATUS_SXS_CANT_GEN_ACTCTX;
break;
}
@@ -3566,7 +3681,7 @@ static struct string_index *find_string_index(const struct
strsection_header *se
break;
}
else
- WARN("hash collision 0x%08x, %wZ, %wZ\n", hash, name,
&str);
+ WARN("hash collision 0x%08x, %s, %s\n", hash,
debugstr_us(name), debugstr_w(g_nameW));
}
iter++;
}
@@ -3830,7 +3945,7 @@ static NTSTATUS find_window_class(ACTIVATION_CONTEXT* actctx, const
UNICODE_STRI
break;
}
else
- WARN("hash collision 0x%08x, %wZ, %wZ\n", hash, name,
&str);
+ WARN("hash collision 0x%08x, %s, %s\n", hash,
debugstr_us(name), debugstr_w(g_nameW));
}
iter++;
}
@@ -5762,7 +5877,9 @@ NTSTATUS WINAPI RtlFindActivationContextSectionString( ULONG flags,
const GUID *
PACTCTX_SECTION_KEYED_DATA data = ptr;
NTSTATUS status = STATUS_SXS_KEY_NOT_FOUND;
- DPRINT("RtlFindActivationContextSectionString(%x %p %x %wZ %p)\n", flags,
guid, section_kind, section_name, ptr);
+ TRACE("%08x %s %u %s %p\n", flags, debugstr_guid(guid), section_kind,
+ debugstr_us(section_name), data);
+
#ifdef __REACTOS__
status = RtlpFindActivationContextSection_CheckParameters(flags, guid, section_kind,
section_name, data);
if (!NT_SUCCESS(status))
@@ -5832,6 +5949,8 @@ NTSTATUS WINAPI RtlFindActivationContextSectionGuid( ULONG flags,
const GUID *ex
ACTCTX_SECTION_KEYED_DATA *data = ptr;
NTSTATUS status = STATUS_SXS_KEY_NOT_FOUND;
+ TRACE("%08x %s %u %s %p\n", flags, debugstr_guid(extguid), section_kind,
debugstr_guid(guid), data);
+
if (extguid)
{
FIXME("expected extguid == NULL\n");
@@ -6072,6 +6191,9 @@ RtlpInitializeActCtx(PVOID* pOldShimData)
WCHAR buffer[1024];
NTSTATUS Status;
+ /* Initialize trace flags to WARN and ERR */
+ __wine_dbch_actctx.flags = 0x03;
+
actctx_init();
/* ReactOS specific: