https://bugs.winehq.org/show_bug.cgi?id=43270
--- Comment #18 from Nikolay Sivov bunglehead@gmail.com --- (In reply to Daniel Kamil Kozar from comment #17)
Created attachment 61896 [details] Preliminary implementation of SxsLookupClrGuid
This is the patch that I was able to cook up. It makes EAC plugins work without having to use native sxs.dll. There is a number of things that irk me code-wise, but I don't have enough knowledge to decide how they should be done in the target implementation. Namely :
- I just copied the definitions of the structs available under
ACTCTX_SECTION_KEYED_DATA.lpData returned by FindActCtxSectionGuid. This makes it possible to then access the real data that SxsLookupClrGuid needs. 2. It seems to me that the SXS_LOOKUP_CLR_GUID_USE_ACTCTX flag of this function cannot be supported without extra work in actctx.c (and perhaps having an internal interface between these two files?), since FindActCtxSectionGuid calls find_guid() internally, which has no way of passing the activation context to use during the lookup.
Let me know what you think, also if the patch is no good.
This needs a lot of cleanup, and some tests too.
Issues so far:
- no need for a new source file, use sxs.c; - no reason to use ntdll heap API as far as I can tell; - most of the helpers are unnecessary I think; - SXS_LOOKUP_CLR_GUID_USE_ACTCTX is easy to handle - you simply have to temporary activate given context to be able to access it; - there's no tests.
Please note that patches are not picked up from here, and for a proper review wine-devel@winehq.org list should be used.