#ifndef _NTRTL_H
FORCEINLINE
VOID
AppendTailListNoFence(
_Inout_ PLIST_ENTRY ListHead,
_Inout_ PLIST_ENTRY ListToAppend
)
{
PLIST_ENTRY ListEnd = (PLIST_ENTRY)ReadPointerNoFence((volatile const PVOID*)&ListHead->Blink);
RtlCheckListEntry(ListHead);
RtlCheckListEntry(ListToAppend);
WritePointerNoFence((volatile PVOID*)&ListHead->Blink->Flink, ListToAppend);
WritePointerNoFence((volatile PVOID*)&ListHead->Blink, ListToAppend->Blink);
WritePointerNoFence((volatile PVOID*)&ListToAppend->Blink->Flink, ListHead);
WritePointerNoFence((volatile PVOID*)&ListToAppend->Blink, ListEnd);
return;
}
View code on GitHubNo description available.