The RemoveEntryList routine removes an entry from a doubly linked list of LIST_ENTRY structures.
BOOLEAN RemoveEntryList( PLIST_ENTRY Entry );
Pointer to the LIST_ENTRY structure that represents the entry to be removed.
RemoveEntryList returns TRUE if, after removal of the designated entry, the list is empty. Otherwise, the routine returns FALSE to indicate that the resulting list still contains one or more entries. For information, see Remarks.
RemoveEntryList removes the entry by setting the Flink member of the entry before Entry to point to the entry after Entry, and the Blink member of the entry after Entry to point to the entry before Entry.
The return value can be used to detect when the last entry is removed from the list. An empty list consists of a list head only and no list entries.
In Windows XP and Windows 2000, RemoveEntryList did not return a value. Starting with Windows Server 2003, RemoveEntryList returns a BOOLEAN value.
Callers of RemoveEntryList can be running at any IRQL. If RemoveEntryList is called at IRQL >= DISPATCH_LEVEL, the storage for the list entries must be resident.
|Minimum supported client||Available starting with Windows 2000.|
|Header||wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)|
|IRQL||Any level (See Remarks section)|
|DDI compliance rules||DoubleExFreePool|