{
SLIST_HEADER newslh, oldslh;
PSLIST_ENTRY le;
-
+
do
{
oldslh = *(volatile SLIST_HEADER *)ListHead;
newslh.Next.Next = MmSafeReadPtr(&le->Next);
} while(ExfInterlockedCompareExchange64((PLONGLONG)&ListHead->Alignment,
(PLONGLONG)&newslh.Alignment,
- (PLONGLONG)&oldslh.Alignment) != oldslh.Alignment);
+ (PLONGLONG)&oldslh.Alignment) != (LONGLONG)oldslh.Alignment);
return le;
}
IN PSLIST_ENTRY ListEntry)
{
SLIST_HEADER newslh, oldslh;
-
+
newslh.Next.Next = ListEntry;
-
+
do
{
oldslh = *(volatile SLIST_HEADER *)ListHead;
ListEntry->Next = oldslh.Next.Next;
} while(ExfInterlockedCompareExchange64((PLONGLONG)&ListHead->Alignment,
(PLONGLONG)&newslh.Alignment,
- (PLONGLONG)&oldslh.Alignment) != oldslh.Alignment);
+ (PLONGLONG)&oldslh.Alignment) != (LONGLONG)oldslh.Alignment);
return oldslh.Next.Next;
}