17#define CheckSListHeader(ListHead, ExpectedPointer, ExpectedDepth) do \
19 ok_eq_pointer((ListHead)->Next.Next, ExpectedPointer); \
21 ok_eq_uint((ListHead)->Depth, ExpectedDepth); \
22 ok_eq_uint((ListHead)->Sequence, ExpectedSequence); \
23 ok_eq_uint(ExQueryDepthSList(ListHead), ExpectedDepth); \
24 ok_irql(HIGH_LEVEL); \
25 ok_bool_true(KmtAreInterruptsEnabled(), "Interrupts enabled:"); \
28#define PXLIST_HEADER PSLIST_HEADER
29#define PXLIST_ENTRY PSLIST_ENTRY
30#define PushXList ExInterlockedPushEntrySList
31#define PopXList ExInterlockedPopEntrySList
32#define FlushXList ExInterlockedFlushSList
33#define ok_free_xlist ok_eq_pointer
34#define CheckXListHeader CheckSListHeader
35#define TestXListFunctional TestSListFunctional
38#undef ExInterlockedPushEntrySList
39#undef ExInterlockedPopEntrySList
40#define TestXListFunctional TestSListFunctionalExports
49 USHORT ExpectedSequence = 0;
71 TestSListFunctional(ListHead,
Entries, pSpinLock);
77 TestSListFunctionalExports(ListHead,
Entries, pSpinLock);
#define CheckSListHeader(ListHead, ExpectedPointer, ExpectedDepth)
static const ENTRY Entries[]
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeRaiseIrql(irql, oldIrql)
#define KeLowerIrql(oldIrql)
#define KeInitializeSpinLock(sl)
#define RtlFillMemory(Dest, Length, Fill)
#define ExFreePoolWithTag(_P, _T)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
#define ExInterlockedPushEntrySList(SListHead, SListEntry, Lock)
#define ExInterlockedPopEntrySList(SListHead, Lock)
#define ExInitializeSListHead
FORCEINLINE VOID InitializeSListHead(_Out_ PSLIST_HEADER SListHead)