mirror of
https://github.com/reactos/reactos.git
synced 2025-04-26 16:40:27 +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
|
||||
NTAPI
|
||||
RtlInitializeRangeList(
|
||||
_Inout_ PRTL_RANGE_LIST RangeList
|
||||
_Out_ PRTL_RANGE_LIST RangeList
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
|
@ -3584,6 +3584,32 @@ RtlFreeRangeList(
|
|||
_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
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
|
@ -3597,6 +3623,72 @@ RtlAddRange(
|
|||
_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
|
||||
//
|
||||
|
|
|
@ -697,7 +697,6 @@ typedef NTSTATUS
|
|||
//
|
||||
// RTL Range List callbacks
|
||||
//
|
||||
#ifdef NTOS_MODE_USER
|
||||
typedef BOOLEAN
|
||||
(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK)(
|
||||
PVOID Context,
|
||||
|
@ -707,6 +706,7 @@ typedef BOOLEAN
|
|||
//
|
||||
// Custom Heap Commit Routine for RtlCreateHeap
|
||||
//
|
||||
#ifdef NTOS_MODE_USER
|
||||
typedef NTSTATUS
|
||||
(NTAPI * PRTL_HEAP_COMMIT_ROUTINE)(
|
||||
_In_ PVOID Base,
|
||||
|
@ -1480,6 +1480,29 @@ typedef struct _RANGE_LIST_ITERATOR
|
|||
ULONG Stamp;
|
||||
} 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
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue