[SDK] Big update

Signed-off-by: Quinn Stephens <quinn@osmora.org>
This commit is contained in:
2025-06-11 20:00:34 -04:00
parent e3f81a4c08
commit 5c52adf492
26 changed files with 3278 additions and 106 deletions

View File

@@ -1,6 +1,6 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Copyright (c) 2024-2025, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:

View File

@@ -1,6 +1,6 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Copyright (c) 2024-2025, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:

View File

@@ -1,6 +1,6 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Copyright (c) 2024-2025, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:
@@ -31,7 +31,7 @@ Abstract:
#endif
#ifndef VOID
#define VOID void
#define VOID void
#endif
#ifndef CONST
@@ -44,16 +44,23 @@ Abstract:
#ifndef NULL
#if defined(__cplusplus)
#define NULL 0
#if __cplusplus >= 201103L
#define NULL nullptr
#else
#define NULL ((VOID *)0)
#define NULL 0
#endif
#else
#define NULL ((VOID *) 0)
#endif
#endif
#ifndef FORCEINLINE
#if defined(_MSC_EXTENSIONS)
#define FORCEINLINE __forceinline
#elif defined(__clang__) || defined(__GNUC__)
#define FORCEINLINE __attribute__((always_inline))
#else
#warning Unable to define FORCEINLINE
#define FORCEINLINE static inline
#endif
#endif
@@ -61,14 +68,24 @@ Abstract:
#ifndef FASTCALL
#if defined(_M_IX86)
#define FASTCALL __fastcall
#elif defined(__clang__) || defined(__GNUC__)
#define FASTCALL __attribute__((fastcall))
#else
#warning Unable to defined FASTCALL
#define FASTCALL
#endif
#endif
#ifndef NTAPI
#if !defined(_M_AMD64)
#if defined(_MSC_EXTENSIONS)
#define NTAPI __stdcall
#elif defined(__clang__) || defined(__GNUC__)
#define NTAPI __attribute__((stdcall))
#else
#warning Unable to define NTAPI
#define NTAPI
#endif
#else
#define NTAPI
#endif
@@ -77,48 +94,48 @@ Abstract:
//
// Basic types.
//
typedef char CHAR;
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
typedef unsigned char UCHAR;
typedef long LONG;
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef unsigned long ULONG;
typedef unsigned long ULONG;
//
// Minimum/maximum values of basic types.
//
#define MINCHAR 0x80
#define MAXCHAR 0x7f
#define MAXCHAR 0x7F
#define MINSHORT 0x8000
#define MAXSHORT 0x7fff
#define MAXSHORT 0x7FFF
#define MINLONG 0x80000000
#define MAXLONG 0x7fffffff
#define MAXUCHAR 0xff
#define MAXUSHORT 0xffff
#define MAXULONG 0xffffffff
#define MAXLONG 0x7FFFFFFF
#define MAXUCHAR 0xFF
#define MAXUSHORT 0xFFFF
#define MAXULONG 0xFFFFFFFF
//
// Long long types.
//
#if defined(_MSC_EXTENSIONS)
typedef __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
typedef __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
#elif defined(UNIX_LP64)
typedef long LONGLONG;
typedef unsigned long ULONGLONG;
typedef long LONGLONG;
typedef unsigned long ULONGLONG;
#else
typedef long long LONGLONG;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
#endif
#define MAXLONGLONG 0x7fffffffffffffff
#define MAXULONGLONG 0xffffffffffffffff
#define MAXLONGLONG 0x7FFFFFFFFFFFFFFF
#define MAXULONGLONG 0xFFFFFFFFFFFFFFFF
//
// Logical/boolean value types.
//
typedef ULONG LOGICAL;
typedef int BOOL;
typedef int BOOL;
typedef UCHAR BOOLEAN;
#define TRUE 1
@@ -128,34 +145,34 @@ typedef UCHAR BOOLEAN;
// Numeric pointer types.
//
#ifdef _WIN64
typedef LONGLONG LONG_PTR;
typedef LONGLONG LONG_PTR;
typedef ULONGLONG ULONG_PTR;
#else
typedef LONG LONG_PTR;
typedef ULONG ULONG_PTR;
typedef LONG LONG_PTR;
typedef ULONG ULONG_PTR;
#endif
//
// Basic type pointers.
//
typedef VOID *PVOID;
typedef CHAR *PCHAR;
typedef SHORT *PSHORT;
typedef UCHAR *PUCHAR;
typedef VOID *PVOID;
typedef CHAR *PCHAR;
typedef SHORT *PSHORT;
typedef UCHAR *PUCHAR;
typedef USHORT *PUSHORT;
typedef ULONG *PULONG;
typedef ULONG *PULONG;
//
// Long long type pointers.
//
typedef LONGLONG *PLONGLONG;
typedef LONGLONG *PLONGLONG;
typedef ULONGLONG *PULONGLONG;
//
// Logical/boolean type pointers.
//
typedef ULONG *PLOGICAL;
typedef BOOL *PBOOL;
typedef ULONG *PLOGICAL;
typedef BOOL *PBOOL;
typedef BOOLEAN *PBOOLEAN;
//
@@ -174,15 +191,15 @@ typedef CONST WCHAR *PCWSTR, *LPCWSTR;
//
// Handle types.
//
typedef PVOID HANDLE;
typedef PVOID HANDLE;
typedef HANDLE *PHANDLE;
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR) -1)
//
// Status code types.
//
typedef LONG NTSTATUS;
typedef LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS;
//
@@ -213,10 +230,10 @@ typedef NTSTATUS *PNTSTATUS;
//
#define LODWORD(x) ((ULONG)(x))
#define HIDWORD(x) ((ULONG)((x) >> 32))
#define LOWORD(x) ((USHORT)(x))
#define HIWORD(x) ((USHORT)((x) >> 16))
#define LOBYTE(x) ((UCHAR)(x))
#define HIBYTE(x) ((UCHAR)((x) >> 8))
#define LOWORD(x) ((USHORT)(x))
#define HIWORD(x) ((USHORT)((x) >> 16))
#define LOBYTE(x) ((UCHAR)(x))
#define HIBYTE(x) ((UCHAR)((x) >> 8))
//
// Large (64-bit) integer value.
@@ -224,7 +241,7 @@ typedef NTSTATUS *PNTSTATUS;
typedef union LARGE_INTEGER {
struct {
ULONG LowPart;
LONG HighPart;
LONG HighPart;
};
LONGLONG QuadPart;
@@ -248,7 +265,7 @@ typedef union ULARGE_INTEGER {
typedef struct _UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
typedef CONST UNICODE_STRING *PCUNICODE_STRING;

View File

@@ -1,6 +1,6 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Copyright (c) 2024-2025, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:
@@ -17,10 +17,30 @@ Abstract:
#define _NTIMAGE_H
//
// Machine type values.
// Machine types.
//
#define IMAGE_FILE_MACHINE_UNKNOWN 0x0000
#define IMAGE_FILE_MACHINE_I386 0x014c
#define IMAGE_FILE_MACHINE_I386 0x014C
#define IMAGE_FILE_MACHINE_AMD64 0x8664
//
// Subsystem types.
//
#define IMAGE_SUBSYSTEM_UNKNOWN 0
#define IMAGE_SUBSYSTEM_NATIVE 1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
#define IMAGE_SUBSYSTEM_WINDOWS_CE_OLD 4
#define IMAGE_SUBSYSTEM_OS2_CUI 5
#define IMAGE_SUBSYSTEM_POSIX_CUI 7
#define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8
#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9
#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10
#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
#define IMAGE_SUBSYSTEM_EFI_ROM 13
#define IMAGE_SUBSYSTEM_XBOX 14
#define IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION 16
#define IMAGE_SUBSYSTEM_XBOX_CODE_CATALOG 17
#endif /* !_NTIMAGE_H */

View File

@@ -1,6 +1,6 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Copyright (c) 2024-2025, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:
@@ -149,13 +149,13 @@ Return Value:
return (BOOLEAN)(Flink == Blink);
}
#define ULONG_ERROR 0xffffffffUL
#define ULONG_ERROR 0xFFFFFFFFUL
FORCEINLINE
NTSTATUS
RtlULongSub (
IN ULONG ulMinuend,
IN ULONG ulSubtrahend,
IN ULONG ulMinuend,
IN ULONG ulSubtrahend,
IN OUT PULONG pulResult
)
@@ -194,14 +194,14 @@ VOID
NTAPI
RtlInitUnicodeString (
OUT PUNICODE_STRING Destination,
IN PCWSTR Source
IN PCWSTR Source
);
NTSTATUS
NTAPI
RtlGUIDFromString (
IN PUNICODE_STRING String,
OUT GUID *Guid
IN PUNICODE_STRING String,
OUT GUID *Guid
);
#ifdef __cplusplus

View File

@@ -1,6 +1,6 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Copyright (c) 2024-2025, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:
@@ -16,11 +16,7 @@ Abstract:
#ifndef _NTSTATUS_H
#define _NTSTATUS_H
#define STATUS_SUCCESS ((NTSTATUS) 0x00000000L)
//
// TODO: There are an insane amount of status values.
//
#define STATUS_SUCCESS ((NTSTATUS) 0x00000000L)
#define STATUS_MEDIA_CHANGED ((NTSTATUS) 0x8000001CL)
#define STATUS_UNSUCCESSFUL ((NTSTATUS) 0xC0000001L)
#define STATUS_NOT_IMPLEMENTED ((NTSTATUS) 0xC0000002L)