mirror of
https://github.com/reactos/reactos.git
synced 2025-04-27 00:50:23 +00:00
[NDK] Complete range list function & structure declarations. CORE-6372
* Add the remaining functions & annotate. * Add the RTLP_RANGE_LIST_ENTRY structure, which is present in symbols Note: range list declarations should really be !NTOS_MODE_USER, since ntdll doesn't export these functions; however, our RTL itself is built with NTOS_MODE_USER, so that's not an option at this point.
This commit is contained in:
parent
037e84ec7f
commit
2c4a554d72
2 changed files with 117 additions and 2 deletions
|
@ -3574,7 +3574,7 @@ NTSYSAPI
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlInitializeRangeList(
|
RtlInitializeRangeList(
|
||||||
_Inout_ PRTL_RANGE_LIST RangeList
|
_Out_ PRTL_RANGE_LIST RangeList
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
|
@ -3584,6 +3584,32 @@ RtlFreeRangeList(
|
||||||
_In_ PRTL_RANGE_LIST RangeList
|
_In_ PRTL_RANGE_LIST RangeList
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlCopyRangeList(
|
||||||
|
_Out_ PRTL_RANGE_LIST CopyRangeList,
|
||||||
|
_In_ PRTL_RANGE_LIST RangeList
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlMergeRangeLists(
|
||||||
|
_Out_ PRTL_RANGE_LIST MergedRangeList,
|
||||||
|
_In_ PRTL_RANGE_LIST RangeList1,
|
||||||
|
_In_ PRTL_RANGE_LIST RangeList2,
|
||||||
|
_In_ ULONG Flags
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlInvertRangeList(
|
||||||
|
_Out_ PRTL_RANGE_LIST InvertedRangeList,
|
||||||
|
_In_ PRTL_RANGE_LIST RangeList
|
||||||
|
);
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -3597,6 +3623,72 @@ RtlAddRange(
|
||||||
_In_opt_ PVOID Owner
|
_In_opt_ PVOID Owner
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlDeleteRange(
|
||||||
|
_Inout_ PRTL_RANGE_LIST RangeList,
|
||||||
|
_In_ ULONGLONG Start,
|
||||||
|
_In_ ULONGLONG End,
|
||||||
|
_In_ PVOID Owner
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlDeleteOwnersRanges(
|
||||||
|
_Inout_ PRTL_RANGE_LIST RangeList,
|
||||||
|
_In_ _Maybenull_ PVOID Owner
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
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_opt_ PVOID Context,
|
||||||
|
_In_opt_ PRTL_CONFLICT_RANGE_CALLBACK Callback,
|
||||||
|
_Out_ PULONGLONG Start
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlIsRangeAvailable(
|
||||||
|
_In_ PRTL_RANGE_LIST RangeList,
|
||||||
|
_In_ ULONGLONG Start,
|
||||||
|
_In_ ULONGLONG End,
|
||||||
|
_In_ ULONG Flags,
|
||||||
|
_In_ UCHAR AttributeAvailableMask,
|
||||||
|
_In_opt_ PVOID Context,
|
||||||
|
_In_opt_ PRTL_CONFLICT_RANGE_CALLBACK Callback,
|
||||||
|
_Out_ PBOOLEAN Available
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlGetFirstRange(
|
||||||
|
_In_ PRTL_RANGE_LIST RangeList,
|
||||||
|
_Out_ PRTL_RANGE_LIST_ITERATOR Iterator,
|
||||||
|
_Outptr_ PRTL_RANGE *Range
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlGetNextRange(
|
||||||
|
_Inout_ PRTL_RANGE_LIST_ITERATOR Iterator,
|
||||||
|
_Outptr_ PRTL_RANGE *Range,
|
||||||
|
_In_ BOOLEAN MoveForwards
|
||||||
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Debug Functions
|
// Debug Functions
|
||||||
//
|
//
|
||||||
|
|
|
@ -697,7 +697,6 @@ typedef NTSTATUS
|
||||||
//
|
//
|
||||||
// RTL Range List callbacks
|
// RTL Range List callbacks
|
||||||
//
|
//
|
||||||
#ifdef NTOS_MODE_USER
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK)(
|
(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK)(
|
||||||
PVOID Context,
|
PVOID Context,
|
||||||
|
@ -707,6 +706,7 @@ typedef BOOLEAN
|
||||||
//
|
//
|
||||||
// Custom Heap Commit Routine for RtlCreateHeap
|
// Custom Heap Commit Routine for RtlCreateHeap
|
||||||
//
|
//
|
||||||
|
#ifdef NTOS_MODE_USER
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI * PRTL_HEAP_COMMIT_ROUTINE)(
|
(NTAPI * PRTL_HEAP_COMMIT_ROUTINE)(
|
||||||
_In_ PVOID Base,
|
_In_ PVOID Base,
|
||||||
|
@ -1480,6 +1480,29 @@ typedef struct _RANGE_LIST_ITERATOR
|
||||||
ULONG Stamp;
|
ULONG Stamp;
|
||||||
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
|
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
|
||||||
|
|
||||||
|
typedef struct _RTLP_RANGE_LIST_ENTRY
|
||||||
|
{
|
||||||
|
ULONGLONG Start;
|
||||||
|
ULONGLONG End;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
PVOID UserData;
|
||||||
|
PVOID Owner;
|
||||||
|
} Allocated;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
LIST_ENTRY ListHead;
|
||||||
|
} Merged;
|
||||||
|
};
|
||||||
|
UCHAR Attributes;
|
||||||
|
UCHAR PublicFlags;
|
||||||
|
USHORT PrivateFlags;
|
||||||
|
LIST_ENTRY ListEntry;
|
||||||
|
} RTLP_RANGE_LIST_ENTRY, *PRTLP_RANGE_LIST_ENTRY;
|
||||||
|
C_ASSERT(RTL_SIZEOF_THROUGH_FIELD(RTL_RANGE, Flags) == RTL_SIZEOF_THROUGH_FIELD(RTLP_RANGE_LIST_ENTRY, PublicFlags));
|
||||||
|
|
||||||
//
|
//
|
||||||
// RTL Resource
|
// RTL Resource
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue