From caec9bc42ef1eb5e8b5fa1c976f050c2fde1c1a6 Mon Sep 17 00:00:00 2001 From: Kaimakan71 Date: Mon, 26 Aug 2024 12:27:59 -0400 Subject: [PATCH] [SDK:NT] More status values and list helpers. Added STATUS_NOT_IMPLEMENTED. Added RemoveEntryList(). --- SDK/INC/NT/ntdef.h | 38 ++++++++++++++++++++++++++++++++++++-- SDK/INC/NT/ntstatus.h | 1 + 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/SDK/INC/NT/ntdef.h b/SDK/INC/NT/ntdef.h index 29f48e3..7e029db 100644 --- a/SDK/INC/NT/ntdef.h +++ b/SDK/INC/NT/ntdef.h @@ -229,10 +229,44 @@ typedef union ULARGE_INTEGER { // Doubly-linked list entry. // typedef struct _LIST_ENTRY { - struct _LIST_ENTRY *ForwardLink; - struct _LIST_ENTRY *BackLink; + struct _LIST_ENTRY *Flink; + struct _LIST_ENTRY *Blink; } LIST_ENTRY, *PLIST_ENTRY; +FORCEINLINE +BOOLEAN +RemoveEntryList ( + IN PLIST_ENTRY Entry + ) + +/*++ + +Routine Description: + + Removes a list entry from a list. + +Arguments: + + Entry - the entry to remove. + +Return Value: + + True if the list is now empty, + False if the list still has at least one entry. + +--*/ + +{ + PLIST_ENTRY Blink, Flink; + + Blink = Entry->Blink; + Flink = Entry->Flink; + Blink->Flink = Flink; + Flink->Blink = Blink; + + return (BOOLEAN)(Flink == Blink); +} + // // Unicode string. // diff --git a/SDK/INC/NT/ntstatus.h b/SDK/INC/NT/ntstatus.h index d1fa277..cb51bbc 100644 --- a/SDK/INC/NT/ntstatus.h +++ b/SDK/INC/NT/ntstatus.h @@ -23,6 +23,7 @@ Abstract: // #define STATUS_MEDIA_CHANGED ((NTSTATUS) 0x8000001CL) #define STATUS_UNSUCCESSFUL ((NTSTATUS) 0xC0000001L) +#define STATUS_NOT_IMPLEMENTED ((NTSTATUS) 0xC0000002L) #define STATUS_INVALID_PARAMETER ((NTSTATUS) 0xC000000DL) #define STATUS_ACCESS_DENIED ((NTSTATUS) 0xC0000022L) #define STATUS_BUFFER_TOO_SMALL ((NTSTATUS) 0xC0000023L)