16 #define ok_eq_free2(Value, Expected) do \ 18 if (KmtIsCheckedBuild) \ 19 ok_eq_pointer(Value, (PVOID)(ULONG_PTR)0xBADDD0FFBADDD0FFULL); \ 21 ok_eq_pointer(Value, Expected); \ 34 while (ListHead->
Next)
37 ListHead = ListHead->
Next;
51 #define CheckListHeader(ListHead, ExpectedPointer, ExpectedDepth) do \ 53 ok_eq_pointer((ListHead)->Next, ExpectedPointer); \ 54 ok_eq_uint(QueryDepthList(ListHead), ExpectedDepth); \ 55 ok_irql(HIGH_LEVEL); \ 56 ok_bool_true(KmtAreInterruptsEnabled(), "Interrupts enabled:"); \ 59 #define PXLIST_HEADER PSINGLE_LIST_ENTRY 60 #define PXLIST_ENTRY PSINGLE_LIST_ENTRY 61 #define PushXList ExInterlockedPushEntryList 62 #define PopXList ExInterlockedPopEntryList 63 #define FlushXList FlushList 64 #define ok_free_xlist ok_eq_free2 65 #define CheckXListHeader CheckListHeader 66 #define TestXListFunctional TestListFunctional 69 #undef ExInterlockedPushEntryList 70 #undef ExInterlockedPopEntryList 71 #define TestXListFunctional TestListFunctionalExports 75 #define PushXList PushEntryListWrapper 77 #define PopXList(h, s) PopEntryList(h) 79 #define ok_free_xlist ok_eq_pointer 80 #define TestXListFunctional TestListFunctionalNoInterlocked
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
PSINGLE_LIST_ENTRY NTAPI ExInterlockedPopEntryList(IN OUT PSINGLE_LIST_ENTRY ListHead, IN OUT PKSPIN_LOCK Lock)
IN BOOLEAN OUT PSTR Buffer
#define UNREFERENCED_PARAMETER(P)
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
PSINGLE_LIST_ENTRY NTAPI ExInterlockedPushEntryList(IN OUT PSINGLE_LIST_ENTRY ListHead, IN OUT PSINGLE_LIST_ENTRY ListEntry, IN OUT PKSPIN_LOCK Lock)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
#define RtlFillMemory(Dest, Length, Fill)
#define ExAllocatePoolWithTag(hernya, size, tag)
struct _SINGLE_LIST_ENTRY * Next
PSINGLE_LIST_ENTRY FlushList(PSINGLE_LIST_ENTRY ListHead)
VOID NTAPI KeRaiseIrql(KIRQL NewIrql, PKIRQL OldIrql)
USHORT QueryDepthList(PSINGLE_LIST_ENTRY ListHead)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
VOID NTAPI KeLowerIrql(KIRQL NewIrql)
#define ExFreePoolWithTag(_P, _T)
base of all file and directory entries
PSINGLE_LIST_ENTRY PushEntryListWrapper(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry, PKSPIN_LOCK Lock)