[PATCH v2 3/5] ntoskrnl.exe/tests: Add some pending / remove tests.

Rémi Bernon rbernon at codeweavers.com
Tue Jun 29 15:43:09 CDT 2021


On 6/29/21 10:25 PM, Zebediah Figura (she/her) wrote:
> On 6/29/21 3:14 PM, Rémi Bernon wrote:
>> On 6/29/21 7:10 PM, Zebediah Figura (she/her) wrote:
>>> This causes failures on my 64-bit Windows 7 VM; apparently
>>> KeInitializeSpinLock isn't actually exported from ntoskrnl until 
>>> Windows 8.
>>>
>>
>> I'm surprised that Marvin didn't report any failure. Should I then
>> initialize the spinlock with 0?
>>
> 
> I believe Marvin didn't report any failure because the only 64-bit 
> machine that can run tests is the one with test-signing enabled, which 
> runs Windows 10. But I still usually use my Windows 7 machine (which 
> also has test-signing enabled) for all the tests and I'd appreciate 
> being able to continue doing that ;-)
> 
> Windows conditionally (and the condition is big and terrible) defines 
> KeInitializeSpinLock as an inline function. I think it'd be reasonable 
> for us to do that unconditionally.
> 

I'm not sure how to do that properly. It still needs to be exported, so 
a static FORCEINLINE version in the header will conflict with the one in 
ntoskrnl.exe.

I can add something like that to the header, and #undef in ntoskrnl.exe:

void      WINAPI KeInitializeSpinLock(KSPIN_LOCK*);
#define KeInitializeSpinLock( lock ) ((void)(*lock = 0))

Is that acceptable? Should it be guarded? I'm not sure if __WINESRC__ is 
there when building samples (especially the drivers).
-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list