@@ -1,6 +1,6 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2024, Quinn Stephens.
|
||||
Copyright (c) 2024-2025, Quinn Stephens.
|
||||
Provided under the BSD 3-Clause license.
|
||||
|
||||
Module Name:
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2024, Quinn Stephens.
|
||||
Copyright (c) 2024-2025, Quinn Stephens.
|
||||
Provided under the BSD 3-Clause license.
|
||||
|
||||
Module Name:
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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 */
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user