Implemented RtlMapGenericMask

This commit is contained in:
PatrickvL 2016-12-26 16:59:46 +01:00
parent 023261faf3
commit d804711bab
6 changed files with 64 additions and 3 deletions

View File

@ -320,7 +320,14 @@ XBSYSAPI VOID *RtlLeaveCriticalSectionAndRegion;
// ******************************************************************
XBSYSAPI EXPORTNUM(296) CHAR NTAPI RtlLowerChar(CHAR Character);
XBSYSAPI VOID *RtlMapGenericMask;
// ******************************************************************
// * 0x0129 - RtlMapGenericMask()
// ******************************************************************
XBSYSAPI EXPORTNUM(297) VOID NTAPI RtlMapGenericMask
(
IN PACCESS_MASK AccessMask,
IN PGENERIC_MAPPING GenericMapping
);
// ******************************************************************
// * RtlMoveMemory

View File

@ -537,6 +537,18 @@ FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
#define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7
// ******************************************************************
// * GENERIC_MAPPING
// ******************************************************************
typedef struct _GENERIC_MAPPING
{
ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
}
GENERIC_MAPPING, *PGENERIC_MAPPING;
// ******************************************************************
// * OBJECT_ATTRIBUTES
// ******************************************************************

View File

@ -785,6 +785,23 @@ XBSYSAPI EXPORTNUM(296) xboxkrnl::CHAR NTAPI xboxkrnl::RtlLowerChar
RETURN(ret);
}
// ******************************************************************
// * 0x0129 - RtlMapGenericMask()
// ******************************************************************
XBSYSAPI EXPORTNUM(297) xboxkrnl::VOID NTAPI xboxkrnl::RtlMapGenericMask
(
IN PACCESS_MASK AccessMask,
IN PGENERIC_MAPPING GenericMapping
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(AccessMask)
LOG_FUNC_ARG(GenericMapping)
LOG_FUNC_END;
NtDll::RtlMapGenericMask(AccessMask, (NtDll::PGENERIC_MAPPING)GenericMapping);
}
// Prevent errors compiling RtlMoveMemory (TODO : How should we really do this?)
#undef RtlMoveMemory

View File

@ -137,6 +137,7 @@ IMPORT(RtlInitAnsiString);
IMPORT(RtlInitializeCriticalSection);
IMPORT(RtlInitUnicodeString);
IMPORT(RtlLeaveCriticalSection);
IMPORT(RtlMapGenericMask);
IMPORT(RtlNtStatusToDosError);
IMPORT(RtlReAllocateHeap);
IMPORT(RtlSizeHeap);

View File

@ -780,6 +780,17 @@ KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
// This is only the top of the actual definition. For the complete version,
// see http://processhacker.sourceforge.net/doc/ntexapi_8h_source.html
// ******************************************************************
// * GENERIC_MAPPING
// ******************************************************************
typedef struct _GENERIC_MAPPING
{
ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
}
GENERIC_MAPPING, *PGENERIC_MAPPING;
// ******************************************************************
// * KeDelayExecutionThread
@ -853,10 +864,22 @@ typedef SIZE_T (NTAPI *FPTR_RtlSizeHeap)
IN PVOID lpMem
);
// ******************************************************************
// * RtlMapGenericMask
// ******************************************************************
typedef VOID (NTAPI *FPTR_RtlMapGenericMask)
(
IN OUT PACCESS_MASK AccessMask,
IN PGENERIC_MAPPING GenericMapping
);
// ******************************************************************
// * RtlNtStatusToDosError
// ******************************************************************
typedef ULONG (NTAPI *FPTR_RtlNtStatusToDosError)(NTSTATUS Status);
typedef ULONG (NTAPI *FPTR_RtlNtStatusToDosError)
(
IN NTSTATUS Status
);
// ******************************************************************
// * RtlTimeToTimeFields
@ -1814,6 +1837,7 @@ EXTERN(RtlInitAnsiString);
EXTERN(RtlInitializeCriticalSection);
EXTERN(RtlInitUnicodeString);
EXTERN(RtlLeaveCriticalSection);
EXTERN(RtlMapGenericMask);
EXTERN(RtlNtStatusToDosError);
EXTERN(RtlReAllocateHeap);
EXTERN(RtlSizeHeap);

View File

@ -362,7 +362,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::RtlLeaveCriticalSection), // 0x0126 (294)
(uint32)PANIC(0x0127), // 0x0127 (295) RtlLeaveCriticalSectionAndRegion
(uint32)FUNC(&xboxkrnl::RtlLowerChar), // 0x0128 (296)
(uint32)PANIC(0x0129), // 0x0129 (297) RtlMapGenericMask
(uint32)FUNC(&xboxkrnl::RtlMapGenericMask), // 0x0129 (297)
(uint32)FUNC(&xboxkrnl::RtlMoveMemory), // 0x012A (298)
(uint32)PANIC(0x012B), // 0x012B (299) RtlMultiByteToUnicodeN
(uint32)PANIC(0x012C), // 0x012C (300) RtlMultiByteToUnicodeSize