diff --git a/sdk/xtdk/rtlfuncs.h b/sdk/xtdk/rtlfuncs.h index 9bfe9f8..bcc4aab 100644 --- a/sdk/xtdk/rtlfuncs.h +++ b/sdk/xtdk/rtlfuncs.h @@ -55,6 +55,9 @@ RtlMoveMemory(OUT PVOID Destination, IN PCVOID Source, IN SIZE_T Length); +VOID +RtlRemoveEntryList(IN PLIST_ENTRY Entry); + XTAPI BOOLEAN RtlSameMemory(IN PCVOID LeftBuffer, diff --git a/xtoskrnl/rtl/plist.c b/xtoskrnl/rtl/plist.c index d1bc624..d8dd398 100644 --- a/xtoskrnl/rtl/plist.c +++ b/xtoskrnl/rtl/plist.c @@ -149,3 +149,20 @@ RtlListLoop(IN PLIST_ENTRY ListHead) /* No loop found */ return FALSE; } + +/** + * This routine removes an entry from a doubly linked list. + * + * @param Entry + * Pointer to the entry that will be removed from the list. + * + * @return This routine does not return any value. + * + * @since XT 1.0 + */ +VOID +RtlRemoveEntryList(IN PLIST_ENTRY Entry) +{ + Entry->Flink->Blink = Entry->Blink; + Entry->Blink->Flink = Entry->Flink; +}