On 29/01/2022 06:35, Mohamad Al-Jaf wrote:
Hi Giovanni,
I see, thanks for the clarification.
Yes, the patch solves the bug. Well, for the tests removing WINAPI seems to change the pointer a bit, but it's still within the range so it doesn't seem to affect it.
I haven't tried it with __ASM_GLOBAL_FUNC, but it seems to work fine as is. Along with the stubs in this patchset, wdscore functions similarly to the native version, at least for the media creation tool.
Still, I'm just wondering if using __ASM_STDCALL_FUNC isn't accurate? In the CallCbsCore headers, CurrentIP is defined without WINAPI.[1]
I don't know what to do now. If it's okay to use WINAPI, should I resubmit the older version of this patch?
[1] https://github.com/seven-mile/CallCbsCore/blob/master/StackManager.h
Since it has no arguments and is not a "public" exported function it probably does not matter. But yes, using __ASM_STDCALL_FUNC without declaring it as WINAPI is a mismatch. You should be using either __ASM_GLOBAL_FUNC and no WINAPI, or __ASM_STDCALL_FUNC with WINAPI.
I guess if the header doesn't use WINAPI, might as well make it without.