From 51aac7ca93a657718f1700f802cd02c683bcc1c6 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 24 Sep 2024 19:09:23 +0300 Subject: [PATCH] [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 #include -#define NDEBUG -#include - #include #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 \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""); + DPRINT( "looking for res %S in %S\n", resptr, filename ? filename : L""); 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: