PLIST_ENTRY
RemoveHeadList(
IN PLIST_ENTRY ListHead
);
RemoveHeadList removes an entry from the head of a doubly linked list.
The ListHead of type LIST_ENTRY is doubly linked.
RemoveHeadList returns a pointer to the entry at the head of the list or a NULL pointer if the list is currently empty.
Callers of RemoveHeadList 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.
ExInterlockedRemoveHeadList, InitializeListHead, IsListEmpty, RemoveTailList, RemoveEntryList