Windows Driver Kit: Kernel-Mode Driver Architecture
LIST_ENTRY
A LIST_ENTRY structure describes an entry in a doubly-linked list or serves as the header for such a list.
typedef struct _LIST_ENTRY {
struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY;
Members
- Flink
- For a LIST_ENTRY structure that serves as a list entry, the Flink member points to the next entry in the list or to the list header if there is no next entry in the list.
For a LIST_ENTRY structure that serves as the list header, the Flink member points to the first entry in the list or to the LIST_ENTRY structure itself if the list is empty.
- Blink
- For a LIST_ENTRY structure that serves as a list entry, the Blink member points to the previous entry in the list or to the list header if there is no previous entry in the list.
For a LIST_ENTRY structure that serves as the list header, the Blink member points to the last entry in the list or to the LIST_ENTRY structure itself if the list is empty.
Comments
A LIST_ENTRY structure that describes the list head must have been initialized by calling InitializeListHead.
A driver can access the Flink or Blink members of a LIST_ENTRY, but the members must only be updated by the system routines supplied for this purpose.
For more information about how to use LIST_ENTRY structures to implement a doubly-linked list, see Singly- and Doubly-Linked Lists.
Requirements
Headers: Declared in ntdef.h. Include Wdm.h or Ntddk.h.
See Also
ExInterlockedInsertHeadList, ExInterlockedInsertTailList, ExInterlockedRemoveHeadList, InitializeListHead, InsertHeadList, InsertTailList, IsListEmpty, RemoveEntryList, RemoveHeadList, RemoveTailList