[SDK:NT] Improve ntdef.h and add guiddef.h
This commit is contained in:
parent
7af18b7ac3
commit
0998d5c417
29
SDK/INC/NT/guiddef.h
Normal file
29
SDK/INC/NT/guiddef.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2024, Quinn Stephens.
|
||||||
|
Provided under the BSD 3-Clause license.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
guiddef.h
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Provides GUID definitions.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
#ifndef _GUIDDEF_H
|
||||||
|
#define _GUIDDEF_H
|
||||||
|
|
||||||
|
#ifndef GUID_DEFINED
|
||||||
|
#define GUID_DEFINED
|
||||||
|
typedef struct _GUID {
|
||||||
|
ULONG Data1;
|
||||||
|
USHORT Data2;
|
||||||
|
USHORT Data3;
|
||||||
|
UCHAR Data4[8];
|
||||||
|
} GUID;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !_GUIDDEF_H */
|
@ -30,14 +30,6 @@ Abstract:
|
|||||||
#define OPTIONAL
|
#define OPTIONAL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FASTCALL
|
|
||||||
#define FASTCALL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NTAPI
|
|
||||||
#define NTAPI
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef VOID
|
#ifndef VOID
|
||||||
#define VOID void
|
#define VOID void
|
||||||
#endif
|
#endif
|
||||||
@ -50,19 +42,35 @@ Abstract:
|
|||||||
#define ANYSIZE_ARRAY 1
|
#define ANYSIZE_ARRAY 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef NULL
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define NULL 0
|
||||||
|
#else
|
||||||
|
#define NULL ((VOID *)0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef FORCEINLINE
|
#ifndef FORCEINLINE
|
||||||
#if defined(_MSC_EXTENSIONS)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#define FORCEINLINE __inline
|
#define FORCEINLINE __forceinline
|
||||||
#else
|
#else
|
||||||
#define FORCEINLINE static inline
|
#define FORCEINLINE static inline
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NULL
|
#ifndef FASTCALL
|
||||||
#ifdef __cplusplus
|
#if defined(_M_IX86)
|
||||||
#define NULL 0
|
#define FASTCALL __fastcall
|
||||||
#else
|
#else
|
||||||
#define NULL ((VOID *)0)
|
#define FASTCALL
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NTAPI
|
||||||
|
#if !defined(_M_AMD64)
|
||||||
|
#define NTAPI __stdcall
|
||||||
|
#else
|
||||||
|
#define NTAPI
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -76,6 +84,19 @@ typedef unsigned char UCHAR;
|
|||||||
typedef unsigned short USHORT;
|
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 MINSHORT 0x8000
|
||||||
|
#define MAXSHORT 0x7fff
|
||||||
|
#define MINLONG 0x80000000
|
||||||
|
#define MAXLONG 0x7fffffff
|
||||||
|
#define MAXUCHAR 0xff
|
||||||
|
#define MAXUSHORT 0xffff
|
||||||
|
#define MAXULONG 0xffffffff
|
||||||
|
|
||||||
//
|
//
|
||||||
// Basic pointer types.
|
// Basic pointer types.
|
||||||
//
|
//
|
||||||
@ -86,27 +107,51 @@ typedef UCHAR *PUCHAR;
|
|||||||
typedef USHORT *PUSHORT;
|
typedef USHORT *PUSHORT;
|
||||||
typedef ULONG *PULONG;
|
typedef ULONG *PULONG;
|
||||||
|
|
||||||
//
|
|
||||||
// Logical value types.
|
|
||||||
//
|
|
||||||
typedef ULONG LOGICAL;
|
|
||||||
typedef ULONG *PLOGICAL;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// String types.
|
// String types.
|
||||||
//
|
//
|
||||||
typedef CHAR *LPSTR;
|
typedef CHAR *PSTR, *LPSTR;
|
||||||
typedef CONST CHAR *LPCSTR;
|
typedef CONST CHAR *PCSTR, *LPCSTR;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Wide character/string types.
|
// Wide character/string types.
|
||||||
//
|
//
|
||||||
typedef USHORT WCHAR;
|
typedef USHORT WCHAR;
|
||||||
typedef WCHAR *PWCHAR, *LPWSTR;
|
typedef WCHAR *PWCHAR, *PWSTR, *LPWSTR;
|
||||||
typedef CONST WCHAR *LPCWSTR;
|
typedef CONST WCHAR *PCWSTR, *LPCWSTR;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Status codes.
|
// Long long types.
|
||||||
|
//
|
||||||
|
#if defined(_MSC_EXTENSIONS)
|
||||||
|
typedef __int64 LONGLONG;
|
||||||
|
typedef unsigned __int64 ULONGLONG;
|
||||||
|
#elif defined(UNIX_LP64)
|
||||||
|
typedef long LONGLONG;
|
||||||
|
typedef unsigned long ULONGLONG;
|
||||||
|
#else
|
||||||
|
typedef long long LONGLONG;
|
||||||
|
typedef unsigned long long ULONGLONG;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef LONGLONG *PLONGLONG;
|
||||||
|
typedef ULONGLONG *PULONGLONG;
|
||||||
|
|
||||||
|
#define MAXLONGLONG (0x7fffffffffffffff)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Logical/boolean value types.
|
||||||
|
//
|
||||||
|
typedef ULONG LOGICAL;
|
||||||
|
typedef ULONG *PLOGICAL;
|
||||||
|
typedef UCHAR BOOLEAN;
|
||||||
|
typedef BOOLEAN *PBOOLEAN;
|
||||||
|
|
||||||
|
#define TRUE 1
|
||||||
|
#define FALSE 0
|
||||||
|
|
||||||
|
//
|
||||||
|
// Status code types.
|
||||||
//
|
//
|
||||||
typedef LONG NTSTATUS;
|
typedef LONG NTSTATUS;
|
||||||
typedef NTSTATUS *PNTSTATUS;
|
typedef NTSTATUS *PNTSTATUS;
|
||||||
@ -120,19 +165,20 @@ typedef NTSTATUS *PNTSTATUS;
|
|||||||
#define NT_ERROR(Status) ((ULONG)(Status) >> 30 == 3)
|
#define NT_ERROR(Status) ((ULONG)(Status) >> 30 == 3)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Long long type definitions.
|
// Struct field offset helper.
|
||||||
//
|
//
|
||||||
#if defined(_MSC_EXTENSIONS)
|
#if defined(__clang__) || defined(__GNUC__)
|
||||||
typedef unsigned __int64 ULONGLONG;
|
#define FIELD_OFFSET(type, field) ((ULONG)__builtin_offsetof(type, field))
|
||||||
typedef __int64 LONGLONG;
|
|
||||||
#elif defined(UNIX_LP64)
|
|
||||||
typedef unsigned long ULONGLONG;
|
|
||||||
typedef long LONGLONG;
|
|
||||||
#else
|
#else
|
||||||
typedef unsigned long long ULONGLONG;
|
#define FIELD_OFFSET(type, field) ((ULONG)&(((type *)0)->field))
|
||||||
typedef long long LONGLONG;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Alignment helpers.
|
||||||
|
//
|
||||||
|
#define ALIGN_DOWN(x, a) ((x) & ~((a) - 1))
|
||||||
|
#define ALIGN_UP(x, a) ALIGN_DOWN((x) + (a) - 1, a)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Large (64-bit) integer value.
|
// Large (64-bit) integer value.
|
||||||
//
|
//
|
||||||
@ -157,21 +203,6 @@ typedef union ULARGE_INTEGER {
|
|||||||
ULONGLONG QuadPart;
|
ULONGLONG QuadPart;
|
||||||
} ULARGE_INTEGER, *PULARGE_INTEGER;
|
} ULARGE_INTEGER, *PULARGE_INTEGER;
|
||||||
|
|
||||||
//
|
|
||||||
// Struct field offset helper.
|
|
||||||
//
|
|
||||||
#if !defined(__GNUC__) && !defined(__clang__)
|
|
||||||
#define FIELD_OFFSET(type, field) ((ULONG)&(((type *)0)->field))
|
|
||||||
#else
|
|
||||||
#define FIELD_OFFSET(type, field) ((ULONG)__builtin_offsetof(type, field))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
|
||||||
// Alignment helpers.
|
|
||||||
//
|
|
||||||
#define ALIGN_DOWN(x, a) ((x) & ~((a) - 1))
|
|
||||||
#define ALIGN_UP(x, a) ALIGN_DOWN((x) + (a) - 1, a)
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Doubly-linked list entry.
|
// Doubly-linked list entry.
|
||||||
//
|
//
|
||||||
@ -180,4 +211,20 @@ typedef struct _LIST_ENTRY {
|
|||||||
struct _LIST_ENTRY *BackLink;
|
struct _LIST_ENTRY *BackLink;
|
||||||
} LIST_ENTRY, *PLIST_ENTRY;
|
} LIST_ENTRY, *PLIST_ENTRY;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Unicode string.
|
||||||
|
//
|
||||||
|
typedef struct _UNICODE_STRING {
|
||||||
|
USHORT Length;
|
||||||
|
USHORT MaximumLength;
|
||||||
|
PWSTR Buffer;
|
||||||
|
} UNICODE_STRING, *PUNICODE_STRING;
|
||||||
|
typedef CONST UNICODE_STRING *PCUNICODE_STRING;
|
||||||
|
|
||||||
|
#define UNICODE_NULL ((WCHAR) 0)
|
||||||
|
|
||||||
|
#define MAX_USTRING ALIGN_DOWN(MAXUSHORT, sizeof(WCHAR))
|
||||||
|
|
||||||
|
#include <guiddef.h>
|
||||||
|
|
||||||
#endif /* !_NTDEF_H */
|
#endif /* !_NTDEF_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user