Windows Driver Kit: Kernel-Mode Driver Architecture
InsertTailList
The InsertTailList routine inserts an entry at the tail of a doubly linked list of LIST_ENTRY structures.
VOID
InsertTailList(
IN PLIST_ENTRY ListHead,
IN PLIST_ENTRY Entry
);
Parameters
- ListHead
- Pointer to the LIST_ENTRY structure that represents the head of the list.
- Entry
- Pointer to a LIST_ENTRY structure that represents the entry to be inserted in the list.
Return Value
None
Comments
InsertTailList updates ListHead->Blink to point to Entry. It updates Entry->Blink to point to the old last entry in the list, and sets Entry->Flink to ListHead. The Flink of the previous last entry is updated to point to Entry as well.
For information about using this routine when implementing a doubly linked list, see Singly and Doubly Linked Lists.
Callers of InsertTailList can be running at any IRQL. If InsertTailList is called at IRQL >= DISPATCH_LEVEL the storage for ListHead and the list entries must be resident.
Requirements
IRQL: Any level (see Comments section)
Headers: Declared in Wdm.h. Include Wdm.h, Ntddk.h, or Ntifs.h.
See Also
ExInterlockedInsertTailList, InitializeListHead, InsertHeadList, IsListEmpty, RemoveHeadList, RemoveTailList