mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
[NDK][XDK] Improve some HAL-related definitions.
- Add more accurate definitions for the values of HAL_DISPATCH_VERSION and HAL_PRIVATE_DISPATCH_VERSION. See https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/hal/hal_dispatch.htm and https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/hal/hal_private_dispatch.htm - Make the conditionals for HalDispatchTable definition MS-WDK-compatible, and do the same for HalPrivateDispatchTable. - Remove MinGW-only non-MS-WDK-compatible PHAL_DISPATCH_TABLE and PHAL_PRIVATE_DISPATCH_TABLE definitions. - Remove hackish #define _NTSYSTEM_ in the wdm.h header.
This commit is contained in:
parent
39b8d45592
commit
a849125947
4 changed files with 36 additions and 17 deletions
|
@ -153,9 +153,20 @@ BOOLEAN
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Hal Private dispatch Table
|
// HAL Private dispatch Table
|
||||||
//
|
//
|
||||||
|
// See Version table at:
|
||||||
|
// https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/hal/hal_private_dispatch.htm
|
||||||
|
//
|
||||||
|
#if (NTDDI_VERSION < NTDDI_WINXP)
|
||||||
|
#define HAL_PRIVATE_DISPATCH_VERSION 1
|
||||||
|
#elif (NTDDI_VERSION < NTDDI_LONGHORN)
|
||||||
#define HAL_PRIVATE_DISPATCH_VERSION 2
|
#define HAL_PRIVATE_DISPATCH_VERSION 2
|
||||||
|
#elif (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||||
|
#define HAL_PRIVATE_DISPATCH_VERSION 5
|
||||||
|
#else
|
||||||
|
/* Not yet defined */
|
||||||
|
#endif
|
||||||
typedef struct _HAL_PRIVATE_DISPATCH
|
typedef struct _HAL_PRIVATE_DISPATCH
|
||||||
{
|
{
|
||||||
ULONG Version;
|
ULONG Version;
|
||||||
|
@ -257,7 +268,7 @@ typedef struct _BUS_HANDLER
|
||||||
//
|
//
|
||||||
// Kernel Exports
|
// Kernel Exports
|
||||||
//
|
//
|
||||||
#if (defined(_NTDRIVER_) || defined(_NTHAL_)) && !defined(_BLDR_)
|
#if !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_))
|
||||||
extern NTSYSAPI PHAL_PRIVATE_DISPATCH HalPrivateDispatchTable;
|
extern NTSYSAPI PHAL_PRIVATE_DISPATCH HalPrivateDispatchTable;
|
||||||
#define HALPRIVATEDISPATCH ((PHAL_PRIVATE_DISPATCH)&HalPrivateDispatchTable)
|
#define HALPRIVATEDISPATCH ((PHAL_PRIVATE_DISPATCH)&HalPrivateDispatchTable)
|
||||||
#else
|
#else
|
||||||
|
@ -268,7 +279,7 @@ extern NTSYSAPI HAL_PRIVATE_DISPATCH HalPrivateDispatchTable;
|
||||||
//
|
//
|
||||||
// HAL Exports
|
// HAL Exports
|
||||||
//
|
//
|
||||||
extern PUCHAR NTHALAPI KdComPortInUse;
|
extern NTHALAPI PUCHAR KdComPortInUse;
|
||||||
|
|
||||||
//
|
//
|
||||||
// HAL Constants
|
// HAL Constants
|
||||||
|
|
|
@ -269,16 +269,27 @@ typedef struct {
|
||||||
#endif
|
#endif
|
||||||
} HAL_DISPATCH, *PHAL_DISPATCH;
|
} HAL_DISPATCH, *PHAL_DISPATCH;
|
||||||
|
|
||||||
#ifdef _NTSYSTEM_
|
#if !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_))
|
||||||
extern HAL_DISPATCH HalDispatchTable;
|
|
||||||
#define HALDISPATCH (&HalDispatchTable)
|
|
||||||
#else
|
|
||||||
__CREATE_NTOS_DATA_IMPORT_ALIAS(HalDispatchTable)
|
__CREATE_NTOS_DATA_IMPORT_ALIAS(HalDispatchTable)
|
||||||
extern PHAL_DISPATCH HalDispatchTable;
|
extern PHAL_DISPATCH HalDispatchTable;
|
||||||
#define HALDISPATCH HalDispatchTable
|
#define HALDISPATCH HalDispatchTable
|
||||||
|
#else
|
||||||
|
extern HAL_DISPATCH HalDispatchTable;
|
||||||
|
#define HALDISPATCH (&HalDispatchTable)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// See Version table at:
|
||||||
|
// https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/hal/hal_dispatch.htm
|
||||||
|
#if (NTDDI_VERSION < NTDDI_WIN2K)
|
||||||
|
#define HAL_DISPATCH_VERSION 1
|
||||||
|
#elif (NTDDI_VERSION < NTDDI_WINXP)
|
||||||
|
#define HAL_DISPATCH_VERSION 2
|
||||||
|
#elif (NTDDI_VERSION < NTDDI_WIN7)
|
||||||
|
#define HAL_DISPATCH_VERSION 3
|
||||||
|
#else
|
||||||
|
#define HAL_DISPATCH_VERSION 4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define HAL_DISPATCH_VERSION 3 /* FIXME: when to use 4? */
|
|
||||||
#define HalDispatchTableVersion HALDISPATCH->Version
|
#define HalDispatchTableVersion HALDISPATCH->Version
|
||||||
#define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation
|
#define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation
|
||||||
#define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation
|
#define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation
|
||||||
|
|
|
@ -65,12 +65,14 @@ extern "C" {
|
||||||
|
|
||||||
typedef GUID UUID;
|
typedef GUID UUID;
|
||||||
|
|
||||||
|
/* Forward declarations */
|
||||||
struct _LOADER_PARAMETER_BLOCK;
|
struct _LOADER_PARAMETER_BLOCK;
|
||||||
struct _CREATE_DISK;
|
struct _CREATE_DISK;
|
||||||
struct _DRIVE_LAYOUT_INFORMATION_EX;
|
struct _DRIVE_LAYOUT_INFORMATION_EX;
|
||||||
struct _SET_PARTITION_INFORMATION_EX;
|
struct _SET_PARTITION_INFORMATION_EX;
|
||||||
struct _DISK_GEOMETRY_EX;
|
struct _DISK_GEOMETRY_EX;
|
||||||
|
|
||||||
|
/* Structures not exposed to drivers */
|
||||||
typedef struct _BUS_HANDLER *PBUS_HANDLER;
|
typedef struct _BUS_HANDLER *PBUS_HANDLER;
|
||||||
typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
|
typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
|
||||||
#if defined(_NTHAL_INCLUDED_)
|
#if defined(_NTHAL_INCLUDED_)
|
||||||
|
|
|
@ -91,12 +91,9 @@ $define(USHORT=USHORT)
|
||||||
#define NTKERNELAPI DECLSPEC_IMPORT
|
#define NTKERNELAPI DECLSPEC_IMPORT
|
||||||
#else
|
#else
|
||||||
#define NTKERNELAPI
|
#define NTKERNELAPI
|
||||||
#ifndef _NTSYSTEM_
|
|
||||||
#define _NTSYSTEM_
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* for statically-linked ntoskrnl_vista library */
|
/* For statically-linked ntoskrnl_vista library */
|
||||||
#if defined(NTKRNLVISTA)
|
#if defined(NTKRNLVISTA)
|
||||||
#define NTKRNLVISTAAPI
|
#define NTKRNLVISTAAPI
|
||||||
#else
|
#else
|
||||||
|
@ -117,7 +114,7 @@ $define(USHORT=USHORT)
|
||||||
#define POINTER_ALIGNMENT
|
#define POINTER_ALIGNMENT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Helper macro to enable gcc's extension. */
|
/* Helper macro to enable gcc's extension */
|
||||||
#ifndef __GNU_EXTENSION
|
#ifndef __GNU_EXTENSION
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define __GNU_EXTENSION __extension__
|
#define __GNU_EXTENSION __extension__
|
||||||
|
@ -196,8 +193,6 @@ struct _IO_RESOURCE_DESCRIPTOR;
|
||||||
|
|
||||||
/* Structures not exposed to drivers */
|
/* Structures not exposed to drivers */
|
||||||
typedef struct _OBJECT_TYPE *POBJECT_TYPE;
|
typedef struct _OBJECT_TYPE *POBJECT_TYPE;
|
||||||
typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
|
|
||||||
typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
|
|
||||||
typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
|
typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
|
||||||
typedef struct _EPROCESS *PEPROCESS;
|
typedef struct _EPROCESS *PEPROCESS;
|
||||||
typedef struct _ETHREAD *PETHREAD;
|
typedef struct _ETHREAD *PETHREAD;
|
||||||
|
|
Loading…
Reference in a new issue