 
            On Fri Oct 17 12:51:04 2025 +0000, Luca Bacci wrote:
Thanks a lot! Out of curiosity, maybe this could be a `ReadPointerNoFence`? There are three cases:
- `STATUS_INVALID_PARAMETER` is returned: this is a programmer error,
and no pointer is returned. 2. `InterlockedCompareExchangePointer` is called, which inserts a full memory fence. 3. `STATUS_UNSUCCESSFUL` is returned: the caller should retrieve the value that "won" by calling `RtlRunOnceBeginInitialize` with `RTL_RUN_ONCE_CHECK_ONLY`, which uses acquire semantics. That said, it's _safer_ to ensure acquire semantics in a central place and not in each code branch. So probably `ReadPointerAcquire` is better for code maintenance in the long term?
Thanks for your comment!
Ideally the context should contain sll that is needed, but what if the "won" value is stored somewhere else?