mirror of
https://github.com/reactos/reactos.git
synced 2025-05-20 17:45:06 +00:00
Fix some NDK issues when attempting to use it from kmode, and fix some winddk/ntifs inconsistencies aswell (move PFILE_QUOTA_INFORMATION and remove all RtlRange functions from the DDK, plus add PPEB)
svn path=/trunk/; revision=16214
This commit is contained in:
parent
3e604d23e7
commit
164b25c391
9 changed files with 256 additions and 374 deletions
|
@ -1,12 +1,10 @@
|
||||||
#ifndef __INCLUDE_NAPI_CORE_H
|
#ifndef __INCLUDE_NAPI_CORE_H
|
||||||
#define __INCLUDE_NAPI_CORE_H
|
#define __INCLUDE_NAPI_CORE_H
|
||||||
|
|
||||||
#include "../ntoskrnl/include/internal/ke.h"
|
|
||||||
#include <ddk/ntddscsi.h>
|
|
||||||
|
|
||||||
#define MM_CORE_DUMP_HEADER_MAGIC (0xdeafbead)
|
#define MM_CORE_DUMP_HEADER_MAGIC (0xdeafbead)
|
||||||
#define MM_CORE_DUMP_HEADER_VERSION (0x1)
|
#define MM_CORE_DUMP_HEADER_VERSION (0x1)
|
||||||
|
|
||||||
|
#include <ddk/ntddscsi.h>
|
||||||
typedef struct _MM_CORE_DUMP_HEADER
|
typedef struct _MM_CORE_DUMP_HEADER
|
||||||
{
|
{
|
||||||
ULONG Magic;
|
ULONG Magic;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#define _EXTYPES_H
|
#define _EXTYPES_H
|
||||||
|
|
||||||
/* DEPENDENCIES **************************************************************/
|
/* DEPENDENCIES **************************************************************/
|
||||||
|
#include "ketypes.h"
|
||||||
|
|
||||||
/* EXPORTED DATA *************************************************************/
|
/* EXPORTED DATA *************************************************************/
|
||||||
extern POBJECT_TYPE NTOSAPI ExIoCompletionType;
|
extern POBJECT_TYPE NTOSAPI ExIoCompletionType;
|
||||||
|
@ -24,6 +25,8 @@ extern NTOSAPI POBJECT_TYPE ExTimerType;
|
||||||
|
|
||||||
/* TYPES *********************************************************************/
|
/* TYPES *********************************************************************/
|
||||||
|
|
||||||
|
/* You'll need the IFS for these, so let's not force everyone to have it */
|
||||||
|
#ifdef _NTIFS_
|
||||||
typedef struct _EX_QUEUE_WORKER_INFO
|
typedef struct _EX_QUEUE_WORKER_INFO
|
||||||
{
|
{
|
||||||
UCHAR QueueDisabled:1;
|
UCHAR QueueDisabled:1;
|
||||||
|
@ -41,6 +44,7 @@ typedef struct _EX_WORK_QUEUE
|
||||||
ULONG QueueDepthLastPass;
|
ULONG QueueDepthLastPass;
|
||||||
EX_QUEUE_WORKER_INFO Info;
|
EX_QUEUE_WORKER_INFO Info;
|
||||||
} EX_WORK_QUEUE, *PEX_WORK_QUEUE;
|
} EX_WORK_QUEUE, *PEX_WORK_QUEUE;
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct _HANDLE_TABLE_ENTRY_INFO
|
typedef struct _HANDLE_TABLE_ENTRY_INFO
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,199 +10,14 @@
|
||||||
#define _RTLFUNCS_H
|
#define _RTLFUNCS_H
|
||||||
|
|
||||||
/* DEPENDENCIES **************************************************************/
|
/* DEPENDENCIES **************************************************************/
|
||||||
#include <ndk/rtltypes.h>
|
#include "rtltypes.h"
|
||||||
#include <ndk/pstypes.h>
|
#include "pstypes.h"
|
||||||
|
#include <ddk/ntnls.h>
|
||||||
|
|
||||||
/* PROTOTYPES ****************************************************************/
|
/* PROTOTYPES ****************************************************************/
|
||||||
|
|
||||||
/* FIXME: FILE NEEDS SOME ALPHABETIZING AND REGROUP */
|
/* FIXME: FILE NEEDS SOME ALPHABETIZING AND REGROUP */
|
||||||
|
|
||||||
/* List Macros */
|
|
||||||
static __inline
|
|
||||||
VOID
|
|
||||||
InitializeListHead(
|
|
||||||
IN PLIST_ENTRY ListHead)
|
|
||||||
{
|
|
||||||
ListHead->Flink = ListHead->Blink = ListHead;
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline
|
|
||||||
VOID
|
|
||||||
InsertHeadList(
|
|
||||||
IN PLIST_ENTRY ListHead,
|
|
||||||
IN PLIST_ENTRY Entry)
|
|
||||||
{
|
|
||||||
PLIST_ENTRY OldFlink;
|
|
||||||
OldFlink = ListHead->Flink;
|
|
||||||
Entry->Flink = OldFlink;
|
|
||||||
Entry->Blink = ListHead;
|
|
||||||
OldFlink->Blink = Entry;
|
|
||||||
ListHead->Flink = Entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline
|
|
||||||
VOID
|
|
||||||
InsertTailList(
|
|
||||||
IN PLIST_ENTRY ListHead,
|
|
||||||
IN PLIST_ENTRY Entry)
|
|
||||||
{
|
|
||||||
PLIST_ENTRY OldBlink;
|
|
||||||
OldBlink = ListHead->Blink;
|
|
||||||
Entry->Flink = ListHead;
|
|
||||||
Entry->Blink = OldBlink;
|
|
||||||
OldBlink->Flink = Entry;
|
|
||||||
ListHead->Blink = Entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define IsListEmpty(ListHead) \
|
|
||||||
((ListHead)->Flink == (ListHead))
|
|
||||||
|
|
||||||
#define PopEntryList(ListHead) \
|
|
||||||
(ListHead)->Next; \
|
|
||||||
{ \
|
|
||||||
PSINGLE_LIST_ENTRY _FirstEntry; \
|
|
||||||
_FirstEntry = (ListHead)->Next; \
|
|
||||||
if (_FirstEntry != NULL) \
|
|
||||||
(ListHead)->Next = _FirstEntry->Next; \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define PushEntryList(_ListHead, _Entry) \
|
|
||||||
(_Entry)->Next = (_ListHead)->Next; \
|
|
||||||
(_ListHead)->Next = (_Entry); \
|
|
||||||
|
|
||||||
static __inline
|
|
||||||
BOOLEAN
|
|
||||||
RemoveEntryList(
|
|
||||||
IN PLIST_ENTRY Entry)
|
|
||||||
{
|
|
||||||
PLIST_ENTRY OldFlink;
|
|
||||||
PLIST_ENTRY OldBlink;
|
|
||||||
|
|
||||||
OldFlink = Entry->Flink;
|
|
||||||
OldBlink = Entry->Blink;
|
|
||||||
OldFlink->Blink = OldBlink;
|
|
||||||
OldBlink->Flink = OldFlink;
|
|
||||||
return (OldFlink == OldBlink);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline
|
|
||||||
PLIST_ENTRY
|
|
||||||
RemoveHeadList(
|
|
||||||
IN PLIST_ENTRY ListHead)
|
|
||||||
{
|
|
||||||
PLIST_ENTRY Flink;
|
|
||||||
PLIST_ENTRY Entry;
|
|
||||||
|
|
||||||
Entry = ListHead->Flink;
|
|
||||||
Flink = Entry->Flink;
|
|
||||||
ListHead->Flink = Flink;
|
|
||||||
Flink->Blink = ListHead;
|
|
||||||
return Entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline
|
|
||||||
PLIST_ENTRY
|
|
||||||
RemoveTailList(
|
|
||||||
IN PLIST_ENTRY ListHead)
|
|
||||||
{
|
|
||||||
PLIST_ENTRY Blink;
|
|
||||||
PLIST_ENTRY Entry;
|
|
||||||
|
|
||||||
Entry = ListHead->Blink;
|
|
||||||
Blink = Entry->Blink;
|
|
||||||
ListHead->Blink = Blink;
|
|
||||||
Blink->Flink = ListHead;
|
|
||||||
return Entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define IsFirstEntry(ListHead, Entry) \
|
|
||||||
((ListHead)->Flink == Entry)
|
|
||||||
|
|
||||||
#define IsLastEntry(ListHead, Entry) \
|
|
||||||
((ListHead)->Blink == Entry)
|
|
||||||
|
|
||||||
#define InsertAscendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
||||||
{\
|
|
||||||
PLIST_ENTRY current;\
|
|
||||||
\
|
|
||||||
current = (ListHead)->Flink;\
|
|
||||||
while (current != (ListHead))\
|
|
||||||
{\
|
|
||||||
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >\
|
|
||||||
(NewEntry)->SortField)\
|
|
||||||
{\
|
|
||||||
break;\
|
|
||||||
}\
|
|
||||||
current = current->Flink;\
|
|
||||||
}\
|
|
||||||
\
|
|
||||||
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
||||||
}
|
|
||||||
|
|
||||||
#define InsertDescendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
||||||
{\
|
|
||||||
PLIST_ENTRY current;\
|
|
||||||
\
|
|
||||||
current = (ListHead)->Flink;\
|
|
||||||
while (current != (ListHead))\
|
|
||||||
{\
|
|
||||||
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <\
|
|
||||||
(NewEntry)->SortField)\
|
|
||||||
{\
|
|
||||||
break;\
|
|
||||||
}\
|
|
||||||
current = current->Flink;\
|
|
||||||
}\
|
|
||||||
\
|
|
||||||
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
||||||
}
|
|
||||||
|
|
||||||
#define InsertAscendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
||||||
{\
|
|
||||||
PLIST_ENTRY current;\
|
|
||||||
\
|
|
||||||
current = (ListHead)->Flink;\
|
|
||||||
while (current != (ListHead))\
|
|
||||||
{\
|
|
||||||
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >=\
|
|
||||||
(NewEntry)->SortField)\
|
|
||||||
{\
|
|
||||||
break;\
|
|
||||||
}\
|
|
||||||
current = current->Flink;\
|
|
||||||
}\
|
|
||||||
\
|
|
||||||
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
||||||
}
|
|
||||||
|
|
||||||
#define InsertDescendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
||||||
{\
|
|
||||||
PLIST_ENTRY current;\
|
|
||||||
\
|
|
||||||
current = (ListHead)->Flink;\
|
|
||||||
while (current != (ListHead))\
|
|
||||||
{\
|
|
||||||
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <=\
|
|
||||||
(NewEntry)->SortField)\
|
|
||||||
{\
|
|
||||||
break;\
|
|
||||||
}\
|
|
||||||
current = current->Flink;\
|
|
||||||
}\
|
|
||||||
\
|
|
||||||
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Constant String Macro
|
|
||||||
*/
|
|
||||||
#define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
|
|
||||||
{ \
|
|
||||||
sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
|
|
||||||
sizeof(__SOURCE_STRING__), \
|
|
||||||
(__SOURCE_STRING__) \
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Error and Exception Functions
|
* Error and Exception Functions
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -381,6 +381,12 @@ typedef struct _RTL_ATOM_TABLE
|
||||||
SYSTEMTIME DaylightDate;
|
SYSTEMTIME DaylightDate;
|
||||||
LONG DaylightBias;
|
LONG DaylightBias;
|
||||||
} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
|
} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
|
||||||
|
|
||||||
|
typedef enum _ACL_INFORMATION_CLASS
|
||||||
|
{
|
||||||
|
AclRevisionInformation = 1,
|
||||||
|
AclSizeInformation
|
||||||
|
} ACL_INFORMATION_CLASS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -184,6 +184,192 @@
|
||||||
#define VER_CONDITION_MASK 7
|
#define VER_CONDITION_MASK 7
|
||||||
#define VER_NUM_BITS_PER_CONDITION_MASK 3
|
#define VER_NUM_BITS_PER_CONDITION_MASK 3
|
||||||
|
|
||||||
|
/* List Macros */
|
||||||
|
static __inline
|
||||||
|
VOID
|
||||||
|
InitializeListHead(
|
||||||
|
IN PLIST_ENTRY ListHead)
|
||||||
|
{
|
||||||
|
ListHead->Flink = ListHead->Blink = ListHead;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline
|
||||||
|
VOID
|
||||||
|
InsertHeadList(
|
||||||
|
IN PLIST_ENTRY ListHead,
|
||||||
|
IN PLIST_ENTRY Entry)
|
||||||
|
{
|
||||||
|
PLIST_ENTRY OldFlink;
|
||||||
|
OldFlink = ListHead->Flink;
|
||||||
|
Entry->Flink = OldFlink;
|
||||||
|
Entry->Blink = ListHead;
|
||||||
|
OldFlink->Blink = Entry;
|
||||||
|
ListHead->Flink = Entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline
|
||||||
|
VOID
|
||||||
|
InsertTailList(
|
||||||
|
IN PLIST_ENTRY ListHead,
|
||||||
|
IN PLIST_ENTRY Entry)
|
||||||
|
{
|
||||||
|
PLIST_ENTRY OldBlink;
|
||||||
|
OldBlink = ListHead->Blink;
|
||||||
|
Entry->Flink = ListHead;
|
||||||
|
Entry->Blink = OldBlink;
|
||||||
|
OldBlink->Flink = Entry;
|
||||||
|
ListHead->Blink = Entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define IsListEmpty(ListHead) \
|
||||||
|
((ListHead)->Flink == (ListHead))
|
||||||
|
|
||||||
|
#define PopEntryList(ListHead) \
|
||||||
|
(ListHead)->Next; \
|
||||||
|
{ \
|
||||||
|
PSINGLE_LIST_ENTRY _FirstEntry; \
|
||||||
|
_FirstEntry = (ListHead)->Next; \
|
||||||
|
if (_FirstEntry != NULL) \
|
||||||
|
(ListHead)->Next = _FirstEntry->Next; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define PushEntryList(_ListHead, _Entry) \
|
||||||
|
(_Entry)->Next = (_ListHead)->Next; \
|
||||||
|
(_ListHead)->Next = (_Entry); \
|
||||||
|
|
||||||
|
static __inline
|
||||||
|
BOOLEAN
|
||||||
|
RemoveEntryList(
|
||||||
|
IN PLIST_ENTRY Entry)
|
||||||
|
{
|
||||||
|
PLIST_ENTRY OldFlink;
|
||||||
|
PLIST_ENTRY OldBlink;
|
||||||
|
|
||||||
|
OldFlink = Entry->Flink;
|
||||||
|
OldBlink = Entry->Blink;
|
||||||
|
OldFlink->Blink = OldBlink;
|
||||||
|
OldBlink->Flink = OldFlink;
|
||||||
|
return (OldFlink == OldBlink);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline
|
||||||
|
PLIST_ENTRY
|
||||||
|
RemoveHeadList(
|
||||||
|
IN PLIST_ENTRY ListHead)
|
||||||
|
{
|
||||||
|
PLIST_ENTRY Flink;
|
||||||
|
PLIST_ENTRY Entry;
|
||||||
|
|
||||||
|
Entry = ListHead->Flink;
|
||||||
|
Flink = Entry->Flink;
|
||||||
|
ListHead->Flink = Flink;
|
||||||
|
Flink->Blink = ListHead;
|
||||||
|
return Entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline
|
||||||
|
PLIST_ENTRY
|
||||||
|
RemoveTailList(
|
||||||
|
IN PLIST_ENTRY ListHead)
|
||||||
|
{
|
||||||
|
PLIST_ENTRY Blink;
|
||||||
|
PLIST_ENTRY Entry;
|
||||||
|
|
||||||
|
Entry = ListHead->Blink;
|
||||||
|
Blink = Entry->Blink;
|
||||||
|
ListHead->Blink = Blink;
|
||||||
|
Blink->Flink = ListHead;
|
||||||
|
return Entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define IsFirstEntry(ListHead, Entry) \
|
||||||
|
((ListHead)->Flink == Entry)
|
||||||
|
|
||||||
|
#define IsLastEntry(ListHead, Entry) \
|
||||||
|
((ListHead)->Blink == Entry)
|
||||||
|
|
||||||
|
#define InsertAscendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
||||||
|
{\
|
||||||
|
PLIST_ENTRY current;\
|
||||||
|
\
|
||||||
|
current = (ListHead)->Flink;\
|
||||||
|
while (current != (ListHead))\
|
||||||
|
{\
|
||||||
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >\
|
||||||
|
(NewEntry)->SortField)\
|
||||||
|
{\
|
||||||
|
break;\
|
||||||
|
}\
|
||||||
|
current = current->Flink;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define InsertDescendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
||||||
|
{\
|
||||||
|
PLIST_ENTRY current;\
|
||||||
|
\
|
||||||
|
current = (ListHead)->Flink;\
|
||||||
|
while (current != (ListHead))\
|
||||||
|
{\
|
||||||
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <\
|
||||||
|
(NewEntry)->SortField)\
|
||||||
|
{\
|
||||||
|
break;\
|
||||||
|
}\
|
||||||
|
current = current->Flink;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define InsertAscendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
||||||
|
{\
|
||||||
|
PLIST_ENTRY current;\
|
||||||
|
\
|
||||||
|
current = (ListHead)->Flink;\
|
||||||
|
while (current != (ListHead))\
|
||||||
|
{\
|
||||||
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >=\
|
||||||
|
(NewEntry)->SortField)\
|
||||||
|
{\
|
||||||
|
break;\
|
||||||
|
}\
|
||||||
|
current = current->Flink;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define InsertDescendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
||||||
|
{\
|
||||||
|
PLIST_ENTRY current;\
|
||||||
|
\
|
||||||
|
current = (ListHead)->Flink;\
|
||||||
|
while (current != (ListHead))\
|
||||||
|
{\
|
||||||
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <=\
|
||||||
|
(NewEntry)->SortField)\
|
||||||
|
{\
|
||||||
|
break;\
|
||||||
|
}\
|
||||||
|
current = current->Flink;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constant String Macro
|
||||||
|
*/
|
||||||
|
#define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
|
||||||
|
{ \
|
||||||
|
sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
|
||||||
|
sizeof(__SOURCE_STRING__), \
|
||||||
|
(__SOURCE_STRING__) \
|
||||||
|
}
|
||||||
|
|
||||||
/* ENUMERATIONS **************************************************************/
|
/* ENUMERATIONS **************************************************************/
|
||||||
|
|
||||||
/* Kernel Shared Data Values */
|
/* Kernel Shared Data Values */
|
||||||
|
@ -283,23 +469,6 @@ typedef enum _INTERFACE_TYPE
|
||||||
MaximumInterfaceType
|
MaximumInterfaceType
|
||||||
}INTERFACE_TYPE, *PINTERFACE_TYPE;
|
}INTERFACE_TYPE, *PINTERFACE_TYPE;
|
||||||
|
|
||||||
typedef enum _PNP_VETO_TYPE
|
|
||||||
{
|
|
||||||
PNP_VetoTypeUnknown,
|
|
||||||
PNP_VetoLegacyDevice,
|
|
||||||
PNP_VetoPendingClose,
|
|
||||||
PNP_VetoWindowsApp,
|
|
||||||
PNP_VetoWindowsService,
|
|
||||||
PNP_VetoOutstandingOpen,
|
|
||||||
PNP_VetoDevice,
|
|
||||||
PNP_VetoDriver,
|
|
||||||
PNP_VetoIllegalDeviceRequest,
|
|
||||||
PNP_VetoInsufficientPower,
|
|
||||||
PNP_VetoNonDisableable,
|
|
||||||
PNP_VetoLegacyDriver,
|
|
||||||
PNP_VetoInsufficientRights
|
|
||||||
} PNP_VETO_TYPE, *PPNP_VETO_TYPE;
|
|
||||||
|
|
||||||
typedef enum _MODE
|
typedef enum _MODE
|
||||||
{
|
{
|
||||||
KernelMode,
|
KernelMode,
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
/* DEPENDENCIES **************************************************************/
|
/* DEPENDENCIES **************************************************************/
|
||||||
#include "rtltypes.h"
|
#include "rtltypes.h"
|
||||||
|
#include <ddk/cfg.h>
|
||||||
|
|
||||||
/* EXPORTED DATA *************************************************************/
|
/* EXPORTED DATA *************************************************************/
|
||||||
|
|
||||||
|
@ -92,6 +93,8 @@ typedef enum _SYSTEM_DOCK_STATE
|
||||||
/*
|
/*
|
||||||
* Process (extra ones not defined in DDK)
|
* Process (extra ones not defined in DDK)
|
||||||
*/
|
*/
|
||||||
|
/* FIXME: Temporary hack until all KMODE stuf are NDK */
|
||||||
|
#ifndef __WINDDK_H
|
||||||
typedef enum _PROCESS_INFORMATION_FLAGS
|
typedef enum _PROCESS_INFORMATION_FLAGS
|
||||||
{
|
{
|
||||||
ProcessUnknown33 = 33,
|
ProcessUnknown33 = 33,
|
||||||
|
@ -99,6 +102,7 @@ typedef enum _PROCESS_INFORMATION_FLAGS
|
||||||
ProcessUnknown35,
|
ProcessUnknown35,
|
||||||
ProcessCookie
|
ProcessCookie
|
||||||
} PROCESS_INFORMATION_FLAGS;
|
} PROCESS_INFORMATION_FLAGS;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* System
|
* System
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
#define VER_NT_SERVER 0x0000003
|
#define VER_NT_SERVER 0x0000003
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
typedef struct _CONTROLLER_OBJECT
|
typedef struct _CONTROLLER_OBJECT
|
||||||
{
|
{
|
||||||
CSHORT Type;
|
CSHORT Type;
|
||||||
|
@ -440,4 +441,44 @@ typedef NTSTATUS
|
||||||
(*PHEAP_ENUMERATION_ROUTINE)(IN PVOID HeapHandle,
|
(*PHEAP_ENUMERATION_ROUTINE)(IN PVOID HeapHandle,
|
||||||
IN PVOID UserParam);
|
IN PVOID UserParam);
|
||||||
|
|
||||||
|
|
||||||
|
#define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001
|
||||||
|
#define RTL_RANGE_LIST_ADD_SHARED 0x00000002
|
||||||
|
|
||||||
|
#define RTL_RANGE_LIST_SHARED_OK 0x00000001
|
||||||
|
#define RTL_RANGE_LIST_NULL_CONFLICT_OK 0x00000002
|
||||||
|
|
||||||
|
#define RTL_RANGE_LIST_MERGE_IF_CONFLICT RTL_RANGE_LIST_ADD_IF_CONFLICT
|
||||||
|
|
||||||
|
typedef struct _RTL_RANGE {
|
||||||
|
ULONGLONG Start;
|
||||||
|
ULONGLONG End;
|
||||||
|
PVOID UserData;
|
||||||
|
PVOID Owner;
|
||||||
|
UCHAR Attributes;
|
||||||
|
UCHAR Flags;
|
||||||
|
} RTL_RANGE, *PRTL_RANGE;
|
||||||
|
|
||||||
|
#define RTL_RANGE_SHARED 0x01
|
||||||
|
#define RTL_RANGE_CONFLICT 0x02
|
||||||
|
|
||||||
|
typedef struct _RTL_RANGE_LIST {
|
||||||
|
LIST_ENTRY ListHead;
|
||||||
|
ULONG Flags;
|
||||||
|
ULONG Count;
|
||||||
|
ULONG Stamp;
|
||||||
|
} RTL_RANGE_LIST, *PRTL_RANGE_LIST;
|
||||||
|
|
||||||
|
typedef struct _RANGE_LIST_ITERATOR {
|
||||||
|
PLIST_ENTRY RangeListHead;
|
||||||
|
PLIST_ENTRY MergedHead;
|
||||||
|
PVOID Current;
|
||||||
|
ULONG Stamp;
|
||||||
|
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
|
||||||
|
|
||||||
|
typedef BOOLEAN
|
||||||
|
(STDCALL *PRTL_CONFLICT_RANGE_CALLBACK)(
|
||||||
|
IN PVOID Context,
|
||||||
|
IN PRTL_RANGE Range);
|
||||||
|
|
||||||
#endif /* __DDK_RTLTYPES_H */
|
#endif /* __DDK_RTLTYPES_H */
|
||||||
|
|
|
@ -1163,16 +1163,6 @@ typedef struct _FILE_PIPE_WAIT_FOR_BUFFER {
|
||||||
WCHAR Name[1];
|
WCHAR Name[1];
|
||||||
} FILE_PIPE_WAIT_FOR_BUFFER, *PFILE_PIPE_WAIT_FOR_BUFFER;
|
} FILE_PIPE_WAIT_FOR_BUFFER, *PFILE_PIPE_WAIT_FOR_BUFFER;
|
||||||
|
|
||||||
typedef struct _FILE_QUOTA_INFORMATION {
|
|
||||||
ULONG NextEntryOffset;
|
|
||||||
ULONG SidLength;
|
|
||||||
LARGE_INTEGER ChangeTime;
|
|
||||||
LARGE_INTEGER QuotaUsed;
|
|
||||||
LARGE_INTEGER QuotaThreshold;
|
|
||||||
LARGE_INTEGER QuotaLimit;
|
|
||||||
SID Sid;
|
|
||||||
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
|
|
||||||
|
|
||||||
typedef struct _FILE_RENAME_INFORMATION {
|
typedef struct _FILE_RENAME_INFORMATION {
|
||||||
BOOLEAN ReplaceIfExists;
|
BOOLEAN ReplaceIfExists;
|
||||||
HANDLE RootDirectory;
|
HANDLE RootDirectory;
|
||||||
|
|
|
@ -186,6 +186,7 @@ typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
|
||||||
typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
|
typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
|
||||||
typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
|
typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
|
||||||
typedef struct _BUS_HANDLER *PBUS_HANDLER;
|
typedef struct _BUS_HANDLER *PBUS_HANDLER;
|
||||||
|
typedef struct _PEB *PPEB;
|
||||||
typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
|
typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
|
||||||
|
|
||||||
/* Constants */
|
/* Constants */
|
||||||
|
@ -2513,6 +2514,16 @@ typedef struct _FILE_DISPOSITION_INFORMATION {
|
||||||
BOOLEAN DeleteFile;
|
BOOLEAN DeleteFile;
|
||||||
} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
|
} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_QUOTA_INFORMATION {
|
||||||
|
ULONG NextEntryOffset;
|
||||||
|
ULONG SidLength;
|
||||||
|
LARGE_INTEGER ChangeTime;
|
||||||
|
LARGE_INTEGER QuotaUsed;
|
||||||
|
LARGE_INTEGER QuotaThreshold;
|
||||||
|
LARGE_INTEGER QuotaLimit;
|
||||||
|
SID Sid;
|
||||||
|
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
|
||||||
|
|
||||||
typedef struct _FILE_END_OF_FILE_INFORMATION {
|
typedef struct _FILE_END_OF_FILE_INFORMATION {
|
||||||
LARGE_INTEGER EndOfFile;
|
LARGE_INTEGER EndOfFile;
|
||||||
} FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;
|
} FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;
|
||||||
|
@ -4372,45 +4383,6 @@ typedef struct _DRIVER_VERIFIER_THUNK_PAIRS {
|
||||||
#define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS 0x0008
|
#define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS 0x0008
|
||||||
#define DRIVER_VERIFIER_IO_CHECKING 0x0010
|
#define DRIVER_VERIFIER_IO_CHECKING 0x0010
|
||||||
|
|
||||||
#define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001
|
|
||||||
#define RTL_RANGE_LIST_ADD_SHARED 0x00000002
|
|
||||||
|
|
||||||
#define RTL_RANGE_LIST_SHARED_OK 0x00000001
|
|
||||||
#define RTL_RANGE_LIST_NULL_CONFLICT_OK 0x00000002
|
|
||||||
|
|
||||||
#define RTL_RANGE_LIST_MERGE_IF_CONFLICT RTL_RANGE_LIST_ADD_IF_CONFLICT
|
|
||||||
|
|
||||||
typedef struct _RTL_RANGE {
|
|
||||||
ULONGLONG Start;
|
|
||||||
ULONGLONG End;
|
|
||||||
PVOID UserData;
|
|
||||||
PVOID Owner;
|
|
||||||
UCHAR Attributes;
|
|
||||||
UCHAR Flags;
|
|
||||||
} RTL_RANGE, *PRTL_RANGE;
|
|
||||||
|
|
||||||
#define RTL_RANGE_SHARED 0x01
|
|
||||||
#define RTL_RANGE_CONFLICT 0x02
|
|
||||||
|
|
||||||
typedef struct _RTL_RANGE_LIST {
|
|
||||||
LIST_ENTRY ListHead;
|
|
||||||
ULONG Flags;
|
|
||||||
ULONG Count;
|
|
||||||
ULONG Stamp;
|
|
||||||
} RTL_RANGE_LIST, *PRTL_RANGE_LIST;
|
|
||||||
|
|
||||||
typedef struct _RANGE_LIST_ITERATOR {
|
|
||||||
PLIST_ENTRY RangeListHead;
|
|
||||||
PLIST_ENTRY MergedHead;
|
|
||||||
PVOID Current;
|
|
||||||
ULONG Stamp;
|
|
||||||
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
|
|
||||||
|
|
||||||
typedef BOOLEAN
|
|
||||||
(DDKAPI *PRTL_CONFLICT_RANGE_CALLBACK)(
|
|
||||||
IN PVOID Context,
|
|
||||||
IN PRTL_RANGE Range);
|
|
||||||
|
|
||||||
#define HASH_STRING_ALGORITHM_DEFAULT 0
|
#define HASH_STRING_ALGORITHM_DEFAULT 0
|
||||||
#define HASH_STRING_ALGORITHM_X65599 1
|
#define HASH_STRING_ALGORITHM_X65599 1
|
||||||
#define HASH_STRING_ALGORITHM_INVALID 0xffffffff
|
#define HASH_STRING_ALGORITHM_INVALID 0xffffffff
|
||||||
|
@ -4912,18 +4884,6 @@ DDKAPI
|
||||||
RtlAnsiStringToUnicodeSize(
|
RtlAnsiStringToUnicodeSize(
|
||||||
IN PANSI_STRING AnsiString);
|
IN PANSI_STRING AnsiString);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlAddRange(
|
|
||||||
IN OUT PRTL_RANGE_LIST RangeList,
|
|
||||||
IN ULONGLONG Start,
|
|
||||||
IN ULONGLONG End,
|
|
||||||
IN UCHAR Attributes,
|
|
||||||
IN ULONG Flags,
|
|
||||||
IN PVOID UserData OPTIONAL,
|
|
||||||
IN PVOID Owner OPTIONAL);
|
|
||||||
|
|
||||||
NTOSAPI
|
NTOSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
DDKAPI
|
DDKAPI
|
||||||
|
@ -5077,13 +5037,6 @@ RtlCopyMemory32(
|
||||||
IN CONST VOID UNALIGNED *Source,
|
IN CONST VOID UNALIGNED *Source,
|
||||||
IN ULONG Length);
|
IN ULONG Length);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlCopyRangeList(
|
|
||||||
OUT PRTL_RANGE_LIST CopyRangeList,
|
|
||||||
IN PRTL_RANGE_LIST RangeList);
|
|
||||||
|
|
||||||
NTOSAPI
|
NTOSAPI
|
||||||
VOID
|
VOID
|
||||||
DDKAPI
|
DDKAPI
|
||||||
|
@ -5112,22 +5065,6 @@ RtlCreateSecurityDescriptor(
|
||||||
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||||
IN ULONG Revision);
|
IN ULONG Revision);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlDeleteOwnersRanges(
|
|
||||||
IN OUT PRTL_RANGE_LIST RangeList,
|
|
||||||
IN PVOID Owner);
|
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlDeleteRange(
|
|
||||||
IN OUT PRTL_RANGE_LIST RangeList,
|
|
||||||
IN ULONGLONG Start,
|
|
||||||
IN ULONGLONG End,
|
|
||||||
IN PVOID Owner);
|
|
||||||
|
|
||||||
NTOSAPI
|
NTOSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
DDKAPI
|
DDKAPI
|
||||||
|
@ -5254,21 +5191,6 @@ RtlFindNextForwardRunClear(
|
||||||
IN ULONG FromIndex,
|
IN ULONG FromIndex,
|
||||||
OUT PULONG StartingRunIndex);
|
OUT PULONG StartingRunIndex);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlFindRange(
|
|
||||||
IN PRTL_RANGE_LIST RangeList,
|
|
||||||
IN ULONGLONG Minimum,
|
|
||||||
IN ULONGLONG Maximum,
|
|
||||||
IN ULONG Length,
|
|
||||||
IN ULONG Alignment,
|
|
||||||
IN ULONG Flags,
|
|
||||||
IN UCHAR AttributeAvailableMask,
|
|
||||||
IN PVOID Context OPTIONAL,
|
|
||||||
IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL,
|
|
||||||
OUT PULONGLONG Start);
|
|
||||||
|
|
||||||
NTOSAPI
|
NTOSAPI
|
||||||
ULONG
|
ULONG
|
||||||
DDKAPI
|
DDKAPI
|
||||||
|
@ -5291,12 +5213,6 @@ DDKAPI
|
||||||
RtlFreeAnsiString(
|
RtlFreeAnsiString(
|
||||||
IN PANSI_STRING AnsiString);
|
IN PANSI_STRING AnsiString);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
VOID
|
|
||||||
DDKAPI
|
|
||||||
RtlFreeRangeList(
|
|
||||||
IN PRTL_RANGE_LIST RangeList);
|
|
||||||
|
|
||||||
NTOSAPI
|
NTOSAPI
|
||||||
VOID
|
VOID
|
||||||
DDKAPI
|
DDKAPI
|
||||||
|
@ -5316,32 +5232,6 @@ DDKAPI
|
||||||
RtlGetVersion(
|
RtlGetVersion(
|
||||||
IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
|
IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlGetFirstRange(
|
|
||||||
IN PRTL_RANGE_LIST RangeList,
|
|
||||||
OUT PRTL_RANGE_LIST_ITERATOR Iterator,
|
|
||||||
OUT PRTL_RANGE *Range);
|
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlGetNextRange(
|
|
||||||
IN OUT PRTL_RANGE_LIST_ITERATOR Iterator,
|
|
||||||
OUT PRTL_RANGE *Range,
|
|
||||||
IN BOOLEAN MoveForwards);
|
|
||||||
|
|
||||||
#define FOR_ALL_RANGES(RangeList, Iterator, Current) \
|
|
||||||
for (RtlGetFirstRange((RangeList), (Iterator), &(Current)); \
|
|
||||||
(Current) != NULL; \
|
|
||||||
RtlGetNextRange((Iterator), &(Current), TRUE))
|
|
||||||
|
|
||||||
#define FOR_ALL_RANGES_BACKWARDS(RangeList, Iterator, Current) \
|
|
||||||
for (RtlGetLastRange((RangeList), (Iterator), &(Current)); \
|
|
||||||
(Current) != NULL; \
|
|
||||||
RtlGetNextRange((Iterator), &(Current), FALSE))
|
|
||||||
|
|
||||||
NTOSAPI
|
NTOSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
DDKAPI
|
DDKAPI
|
||||||
|
@ -5373,12 +5263,6 @@ RtlInitializeBitMap(
|
||||||
IN PULONG BitMapBuffer,
|
IN PULONG BitMapBuffer,
|
||||||
IN ULONG SizeOfBitMap);
|
IN ULONG SizeOfBitMap);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
VOID
|
|
||||||
DDKAPI
|
|
||||||
RtlInitializeRangeList(
|
|
||||||
IN OUT PRTL_RANGE_LIST RangeList);
|
|
||||||
|
|
||||||
NTOSAPI
|
NTOSAPI
|
||||||
VOID
|
VOID
|
||||||
DDKAPI
|
DDKAPI
|
||||||
|
@ -5417,26 +5301,6 @@ RtlIntPtrToUnicodeString(
|
||||||
ULONG Base OPTIONAL,
|
ULONG Base OPTIONAL,
|
||||||
PUNICODE_STRING String);
|
PUNICODE_STRING String);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlInvertRangeList(
|
|
||||||
OUT PRTL_RANGE_LIST InvertedRangeList,
|
|
||||||
IN PRTL_RANGE_LIST RangeList);
|
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlIsRangeAvailable(
|
|
||||||
IN PRTL_RANGE_LIST RangeList,
|
|
||||||
IN ULONGLONG Start,
|
|
||||||
IN ULONGLONG End,
|
|
||||||
IN ULONG Flags,
|
|
||||||
IN UCHAR AttributeAvailableMask,
|
|
||||||
IN PVOID Context OPTIONAL,
|
|
||||||
IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL,
|
|
||||||
OUT PBOOLEAN Available);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BOOLEAN
|
* BOOLEAN
|
||||||
* RtlIsZeroLuid(
|
* RtlIsZeroLuid(
|
||||||
|
@ -5458,15 +5322,6 @@ RtlMapGenericMask(
|
||||||
IN OUT PACCESS_MASK AccessMask,
|
IN OUT PACCESS_MASK AccessMask,
|
||||||
IN PGENERIC_MAPPING GenericMapping);
|
IN PGENERIC_MAPPING GenericMapping);
|
||||||
|
|
||||||
NTOSAPI
|
|
||||||
NTSTATUS
|
|
||||||
DDKAPI
|
|
||||||
RtlMergeRangeLists(
|
|
||||||
OUT PRTL_RANGE_LIST MergedRangeList,
|
|
||||||
IN PRTL_RANGE_LIST RangeList1,
|
|
||||||
IN PRTL_RANGE_LIST RangeList2,
|
|
||||||
IN ULONG Flags);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* VOID
|
* VOID
|
||||||
* RtlMoveMemory(
|
* RtlMoveMemory(
|
||||||
|
|
Loading…
Reference in a new issue