mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 12:53:09 +00:00
[NTOS:EX] Fix handle table code for x64.
Based on patch by Ivan Labutin. See PR #115
This commit is contained in:
parent
2daf2391a6
commit
cbc4cfeed6
2 changed files with 46 additions and 38 deletions
|
@ -68,25 +68,29 @@ VOID NTAPI ExpDebuggerWorker(IN PVOID Context);
|
|||
#define HANDLE_LOW_BITS (PAGE_SHIFT - 3)
|
||||
#define HANDLE_HIGH_BITS (PAGE_SHIFT - 2)
|
||||
#endif
|
||||
#define KERNEL_FLAG_BITS (sizeof(PVOID)*8 - 31)
|
||||
#define HANDLE_TAG_BITS (2)
|
||||
#define HANDLE_INDEX_BITS (HANDLE_LOW_BITS + 2*HANDLE_HIGH_BITS)
|
||||
#define KERNEL_FLAG_BITS (sizeof(PVOID)*8 - HANDLE_INDEX_BITS - HANDLE_TAG_BITS)
|
||||
|
||||
typedef union _EXHANDLE
|
||||
{
|
||||
struct
|
||||
{
|
||||
ULONG_PTR TagBits:2;
|
||||
ULONG_PTR Index:29;
|
||||
ULONG_PTR TagBits: HANDLE_TAG_BITS;
|
||||
ULONG_PTR Index: HANDLE_INDEX_BITS;
|
||||
ULONG_PTR KernelFlag : KERNEL_FLAG_BITS;
|
||||
};
|
||||
struct
|
||||
{
|
||||
ULONG_PTR TagBits2:2;
|
||||
ULONG_PTR LowIndex:HANDLE_LOW_BITS;
|
||||
ULONG_PTR MidIndex:HANDLE_HIGH_BITS;
|
||||
ULONG_PTR HighIndex:HANDLE_HIGH_BITS;
|
||||
ULONG_PTR KernelFlag:KERNEL_FLAG_BITS;
|
||||
ULONG_PTR TagBits2: HANDLE_TAG_BITS;
|
||||
ULONG_PTR LowIndex: HANDLE_LOW_BITS;
|
||||
ULONG_PTR MidIndex: HANDLE_HIGH_BITS;
|
||||
ULONG_PTR HighIndex: HANDLE_HIGH_BITS;
|
||||
ULONG_PTR KernelFlag2: KERNEL_FLAG_BITS;
|
||||
};
|
||||
HANDLE GenericHandleOverlay;
|
||||
ULONG_PTR Value;
|
||||
ULONG AsULONG;
|
||||
} EXHANDLE, *PEXHANDLE;
|
||||
|
||||
typedef struct _ETIMER
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue