The RemoveTailList routine removes an entry from the tail of a doubly linked list.
PLIST_ENTRY
RemoveTailList(
IN PLIST_ENTRY ListHead
);
RemoveTailList returns a pointer to the entry that was at the tail of the list.
Declared in wdm.h and ntddk.h. Include wdm.h or ntddk.h.
Calling RemoveTailList with an empty list can cause a system failure. Callers of RemoveTailList should first call IsListEmpty to determine if the list has any entries.
Callers of RemoveTailList can be running at IRQL >= DISPATCH_LEVEL only if the caller-allocated storage for ListHead is resident, and only if pointers to every list entry remain valid at IRQL >= DISPATCH_LEVEL as well.
InitializeListHead, IsListEmpty, RemoveHeadList, RemoveEntryList