mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
[NTIFS] fix NlsMbOemCodePageTag, NlsOemLeadByteInfo, FsRtlLegalAnsiCharacterArray
[XDK] Add IO_PRIORITY_HINT, fix NlsMbCodePageTag, NlsMbOemCodePageTag - Update wdm.h based on xdk svn path=/branches/header-work/; revision=46197
This commit is contained in:
parent
3d575fe920
commit
8092586943
4 changed files with 341 additions and 39 deletions
|
@ -7813,16 +7813,17 @@ FsRtlRemovePerFileObjectContext(
|
|||
(InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\
|
||||
}
|
||||
|
||||
extern NTKERNELAPI PUSHORT NlsOemLeadByteInfo;
|
||||
#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
|
||||
|
||||
#ifdef NLS_MB_CODE_PAGE_TAG
|
||||
#undef NLS_MB_CODE_PAGE_TAG
|
||||
#endif
|
||||
|
||||
#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray
|
||||
#define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag
|
||||
#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
|
||||
|
||||
extern UCHAR const* const LEGAL_ANSI_CHARACTER_ARRAY;
|
||||
extern PUSHORT NLS_OEM_LEAD_BYTE_INFO;
|
||||
/* GCC compatible definition, MS one is retarded */
|
||||
extern NTKERNELAPI const UCHAR * const FsRtlLegalAnsiCharacterArray;
|
||||
#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray
|
||||
|
||||
#define FsRtlIsAnsiCharacterWild(C) ( \
|
||||
FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \
|
||||
|
@ -8935,11 +8936,6 @@ ZwDuplicateToken(
|
|||
|
||||
#include "csq.h"
|
||||
|
||||
#ifdef _NTOSKRNL_
|
||||
extern PUCHAR FsRtlLegalAnsiCharacterArray;
|
||||
#else
|
||||
extern DECLSPEC_IMPORT PUCHAR FsRtlLegalAnsiCharacterArray;
|
||||
#endif
|
||||
extern PACL SePublicDefaultDacl;
|
||||
extern PACL SeSystemDefaultDacl;
|
||||
|
||||
|
@ -9674,8 +9670,6 @@ FsRtlIsFatDbcsLegal (
|
|||
IN BOOLEAN LeadingBackslashPermissible
|
||||
);
|
||||
|
||||
extern PUSHORT NlsOemLeadByteInfo;
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
|
|
|
@ -437,18 +437,11 @@ typedef union _SLIST_HEADER {
|
|||
|
||||
#endif /* _SLIST_HEADER_ */
|
||||
|
||||
|
||||
/* HACK HACK HACK - GCC (or perhaps LD) is messing this up */
|
||||
#if defined(_NTSYSTEM_) || defined(__GNUC__)
|
||||
/* MS definition is broken! */
|
||||
extern BOOLEAN NTSYSAPI NlsMbCodePageTag;
|
||||
extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag;
|
||||
#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
|
||||
#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
|
||||
#else
|
||||
#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag)
|
||||
#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag)
|
||||
#endif /* _NT_SYSTEM */
|
||||
extern BOOLEAN NTSYSAPI NLS_MB_CODE_PAGE_TAG;
|
||||
extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Kernel Types *
|
||||
|
@ -1156,7 +1149,6 @@ typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
|
|||
} XSAVE_FORMAT, *PXSAVE_FORMAT;
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Memory manager Types *
|
||||
******************************************************************************/
|
||||
|
@ -1478,6 +1470,7 @@ typedef struct _WORK_QUEUE_ITEM {
|
|||
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Security Manager Types *
|
||||
******************************************************************************/
|
||||
|
@ -2615,6 +2608,8 @@ typedef struct _REG_KEY_HANDLE_CLOSE_INFORMATION {
|
|||
PVOID Reserved;
|
||||
} REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION;
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* I/O Manager Types *
|
||||
******************************************************************************/
|
||||
|
@ -5158,7 +5153,7 @@ typedef struct _QUOTA_LIMITS {
|
|||
#define MAXIMUM_PRIORITY 32
|
||||
|
||||
|
||||
#ifdef _X86_
|
||||
#if defined(_M_IX86)
|
||||
/** Kernel definitions for x86 **/
|
||||
|
||||
/* Interrupt request levels */
|
||||
|
@ -5173,11 +5168,11 @@ typedef struct _QUOTA_LIMITS {
|
|||
#define IPI_LEVEL 29
|
||||
#define POWER_LEVEL 30
|
||||
#define HIGH_LEVEL 31
|
||||
#define CLOCK_LEVEL (CLOCK2_LEVEL)
|
||||
#define CLOCK_LEVEL CLOCK2_LEVEL
|
||||
|
||||
#define KIP0PCRADDRESS 0xffdff000
|
||||
#define KI_USER_SHARED_DATA 0xffdf0000
|
||||
#define SharedUserData ((KUSER_SHARED_DATA * CONST) KI_USER_SHARED_DATA)
|
||||
#define SharedUserData ((KUSER_SHARED_DATA * CONST)KI_USER_SHARED_DATA)
|
||||
|
||||
#define PAGE_SIZE 0x1000
|
||||
#define PAGE_SHIFT 12L
|
||||
|
@ -5319,9 +5314,319 @@ _KeQueryTickCount(
|
|||
}
|
||||
#define KeQueryTickCount(CurrentCount) _KeQueryTickCount(CurrentCount)
|
||||
|
||||
#endif /* _X86_ */
|
||||
|
||||
|
||||
#elif defined(_M_AMD64)
|
||||
/** Kernel definitions for AMD64 **/
|
||||
|
||||
/* Interrupt request levels */
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define LOW_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define CMCI_LEVEL 5
|
||||
#define CLOCK_LEVEL 13
|
||||
#define IPI_LEVEL 14
|
||||
#define DRS_LEVEL 14
|
||||
#define POWER_LEVEL 14
|
||||
#define PROFILE_LEVEL 15
|
||||
#define HIGH_LEVEL 15
|
||||
|
||||
#define PAGE_SIZE 0x1000
|
||||
#define PAGE_SHIFT 12L
|
||||
|
||||
#define KI_USER_SHARED_DATA 0xFFFFF78000000000UI64
|
||||
#define SharedUserData ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
|
||||
|
||||
|
||||
typedef struct _KFLOATING_SAVE {
|
||||
ULONG Dummy;
|
||||
} KFLOATING_SAVE, *PKFLOATING_SAVE;
|
||||
|
||||
typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
|
||||
|
||||
#define KeQueryInterruptTime() \
|
||||
(*(volatile ULONG64*)SharedInterruptTime)
|
||||
|
||||
#define KeQuerySystemTime(CurrentCount) \
|
||||
*(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedSystemTime
|
||||
|
||||
#define KeQueryTickCount(CurrentCount) \
|
||||
*(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedTickCount
|
||||
|
||||
#define KeGetDcacheFillSize() 1L
|
||||
|
||||
#define YieldProcessor _mm_pause
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KeGetCurrentIrql(VOID)
|
||||
{
|
||||
return (KIRQL)__readcr8();
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
KeLowerIrql(IN KIRQL NewIrql)
|
||||
{
|
||||
ASSERT(KeGetCurrentIrql() >= NewIrql);
|
||||
__writecr8(NewIrql);
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KfRaiseIrql(IN KIRQL NewIrql)
|
||||
{
|
||||
KIRQL OldIrql;
|
||||
|
||||
OldIrql = __readcr8();
|
||||
ASSERT(OldIrql <= NewIrql);
|
||||
__writecr8(NewIrql);
|
||||
return OldIrql;
|
||||
}
|
||||
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KeRaiseIrqlToDpcLevel(VOID)
|
||||
{
|
||||
return KfRaiseIrql(DISPATCH_LEVEL);
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KeRaiseIrqlToSynchLevel(VOID)
|
||||
{
|
||||
return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
PKTHREAD
|
||||
KeGetCurrentThread (
|
||||
VOID)
|
||||
{
|
||||
return (struct _KTHREAD *)__readgsqword(0x188);
|
||||
}
|
||||
|
||||
/* x86 and x64 performs a 0x2C interrupt */
|
||||
#define DbgRaiseAssertionFailure __int2c
|
||||
|
||||
#elif defined(_M_IA64)
|
||||
/** Kernel definitions for IA64 **/
|
||||
|
||||
/* Interrupt request levels */
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define LOW_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define CMC_LEVEL 3
|
||||
#define DEVICE_LEVEL_BASE 4
|
||||
#define PC_LEVEL 12
|
||||
#define IPI_LEVEL 14
|
||||
#define DRS_LEVEL 14
|
||||
#define CLOCK_LEVEL 13
|
||||
#define POWER_LEVEL 15
|
||||
#define PROFILE_LEVEL 15
|
||||
#define HIGH_LEVEL 15
|
||||
|
||||
#define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000))
|
||||
extern volatile LARGE_INTEGER KeTickCount;
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
KeFlushWriteBuffer(VOID)
|
||||
{
|
||||
__mf ();
|
||||
return;
|
||||
}
|
||||
|
||||
NTSYSAPI
|
||||
PKTHREAD
|
||||
NTAPI
|
||||
KeGetCurrentThread(
|
||||
VOID);
|
||||
|
||||
|
||||
#elif defined(_M_PPC)
|
||||
|
||||
/* Interrupt request levels */
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define LOW_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define PROFILE_LEVEL 27
|
||||
#define CLOCK1_LEVEL 28
|
||||
#define CLOCK2_LEVEL 28
|
||||
#define IPI_LEVEL 29
|
||||
#define POWER_LEVEL 30
|
||||
#define HIGH_LEVEL 31
|
||||
|
||||
//
|
||||
// Used to contain PFNs and PFN counts
|
||||
//
|
||||
typedef ULONG PFN_COUNT;
|
||||
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
|
||||
typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
|
||||
|
||||
|
||||
typedef struct _KFLOATING_SAVE {
|
||||
ULONG Dummy;
|
||||
} KFLOATING_SAVE, *PKFLOATING_SAVE;
|
||||
|
||||
typedef struct _KPCR_TIB {
|
||||
PVOID ExceptionList; /* 00 */
|
||||
PVOID StackBase; /* 04 */
|
||||
PVOID StackLimit; /* 08 */
|
||||
PVOID SubSystemTib; /* 0C */
|
||||
_ANONYMOUS_UNION union {
|
||||
PVOID FiberData; /* 10 */
|
||||
ULONG Version; /* 10 */
|
||||
} DUMMYUNIONNAME;
|
||||
PVOID ArbitraryUserPointer; /* 14 */
|
||||
struct _KPCR_TIB *Self; /* 18 */
|
||||
} KPCR_TIB, *PKPCR_TIB; /* 1C */
|
||||
|
||||
#define PCR_MINOR_VERSION 1
|
||||
#define PCR_MAJOR_VERSION 1
|
||||
|
||||
typedef struct _KPCR {
|
||||
KPCR_TIB Tib; /* 00 */
|
||||
struct _KPCR *Self; /* 1C */
|
||||
struct _KPRCB *Prcb; /* 20 */
|
||||
KIRQL Irql; /* 24 */
|
||||
ULONG IRR; /* 28 */
|
||||
ULONG IrrActive; /* 2C */
|
||||
ULONG IDR; /* 30 */
|
||||
PVOID KdVersionBlock; /* 34 */
|
||||
PUSHORT IDT; /* 38 */
|
||||
PUSHORT GDT; /* 3C */
|
||||
struct _KTSS *TSS; /* 40 */
|
||||
USHORT MajorVersion; /* 44 */
|
||||
USHORT MinorVersion; /* 46 */
|
||||
KAFFINITY SetMember; /* 48 */
|
||||
ULONG StallScaleFactor; /* 4C */
|
||||
UCHAR SpareUnused; /* 50 */
|
||||
UCHAR Number; /* 51 */
|
||||
} KPCR, *PKPCR; /* 54 */
|
||||
|
||||
#define KeGetPcr() PCR
|
||||
|
||||
#define YieldProcessor() __asm__ __volatile__("nop");
|
||||
|
||||
FORCEINLINE
|
||||
ULONG
|
||||
DDKAPI
|
||||
KeGetCurrentProcessorNumber(VOID)
|
||||
{
|
||||
ULONG Number;
|
||||
__asm__ __volatile__ (
|
||||
"lwz %0, %c1(12)\n"
|
||||
: "=r" (Number)
|
||||
: "i" (FIELD_OFFSET(KPCR, Number))
|
||||
);
|
||||
return Number;
|
||||
}
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
FASTCALL
|
||||
KfLowerIrql(
|
||||
IN KIRQL NewIrql);
|
||||
#define KeLowerIrql(a) KfLowerIrql(a)
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
FASTCALL
|
||||
KfRaiseIrql(
|
||||
IN KIRQL NewIrql);
|
||||
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
DDKAPI
|
||||
KeRaiseIrqlToDpcLevel(
|
||||
VOID);
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
DDKAPI
|
||||
KeRaiseIrqlToSynchLevel(
|
||||
VOID);
|
||||
|
||||
|
||||
|
||||
#elif defined(_M_MIPS)
|
||||
#error MIPS Headers are totally incorrect
|
||||
|
||||
//
|
||||
// Used to contain PFNs and PFN counts
|
||||
//
|
||||
typedef ULONG PFN_COUNT;
|
||||
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
|
||||
typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
|
||||
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define PROFILE_LEVEL 27
|
||||
#define IPI_LEVEL 29
|
||||
#define HIGH_LEVEL 31
|
||||
|
||||
typedef struct _KPCR {
|
||||
struct _KPRCB *Prcb; /* 20 */
|
||||
KIRQL Irql; /* 24 */
|
||||
ULONG IRR; /* 28 */
|
||||
ULONG IDR; /* 30 */
|
||||
} KPCR, *PKPCR;
|
||||
|
||||
#define KeGetPcr() PCR
|
||||
|
||||
typedef struct _KFLOATING_SAVE {
|
||||
} KFLOATING_SAVE, *PKFLOATING_SAVE;
|
||||
|
||||
static __inline
|
||||
ULONG
|
||||
DDKAPI
|
||||
KeGetCurrentProcessorNumber(VOID)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define YieldProcessor() __asm__ __volatile__("nop");
|
||||
|
||||
#define KeLowerIrql(a) KfLowerIrql(a)
|
||||
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
KfLowerIrql(
|
||||
IN KIRQL NewIrql);
|
||||
|
||||
NTKERNELAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KfRaiseIrql(
|
||||
IN KIRQL NewIrql);
|
||||
|
||||
NTKERNELAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeRaiseIrqlToDpcLevel(
|
||||
VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
KIRQL
|
||||
DDKAPI
|
||||
KeRaiseIrqlToSynchLevel(
|
||||
VOID);
|
||||
|
||||
|
||||
#elif defined(_M_ARM)
|
||||
#include <armddk.h>
|
||||
#else
|
||||
#error Unknown Architecture
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* Runtime Library Functions *
|
||||
|
@ -5545,8 +5850,8 @@ RtlStringFromGUID(
|
|||
|
||||
#define RtlZeroBytes RtlZeroMemory
|
||||
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
|
||||
NTSYSAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
|
@ -10415,6 +10720,7 @@ ExFreeToPagedLookasideList(
|
|||
|
||||
#endif // !defined(MIDL_PASS)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Object Manager Functions *
|
||||
******************************************************************************/
|
||||
|
@ -10472,6 +10778,7 @@ ObReleaseObjectSecurity(
|
|||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Process Manager Functions *
|
||||
******************************************************************************/
|
||||
|
@ -10787,7 +11094,6 @@ HalReadDmaCounter(
|
|||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _NTTMAPI_
|
||||
#define _NTTMAPI_
|
||||
|
||||
|
|
|
@ -913,6 +913,15 @@ typedef enum _IO_NOTIFICATION_EVENT_CATEGORY {
|
|||
EventCategoryTargetDeviceChange
|
||||
} IO_NOTIFICATION_EVENT_CATEGORY;
|
||||
|
||||
typedef enum _IO_PRIORITY_HINT {
|
||||
IoPriorityVeryLow = 0,
|
||||
IoPriorityLow,
|
||||
IoPriorityNormal,
|
||||
IoPriorityHigh,
|
||||
IoPriorityCritical,
|
||||
MaxIoPriorityTypes
|
||||
} IO_PRIORITY_HINT;
|
||||
|
||||
#define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES 0x00000001
|
||||
|
||||
typedef NTSTATUS
|
||||
|
|
|
@ -113,16 +113,9 @@ typedef union _SLIST_HEADER {
|
|||
|
||||
#endif /* _SLIST_HEADER_ */
|
||||
|
||||
|
||||
/* HACK HACK HACK - GCC (or perhaps LD) is messing this up */
|
||||
#if defined(_NTSYSTEM_) || defined(__GNUC__)
|
||||
/* MS definition is broken! */
|
||||
extern BOOLEAN NTSYSAPI NlsMbCodePageTag;
|
||||
extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag;
|
||||
#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
|
||||
#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
|
||||
#else
|
||||
#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag)
|
||||
#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag)
|
||||
#endif /* _NT_SYSTEM */
|
||||
extern BOOLEAN NTSYSAPI NLS_MB_CODE_PAGE_TAG;
|
||||
extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue