mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 12:29:56 +00:00
[NTDLL]: Export RtlImageNtHeaderEx and LodrLoadAlternateResourceModule.
[NDK]: Add LdrLoadAlternateResourceModule. Fix RtlDosApplyFileIsolationRedirection_UStr and add flags. [NTDLL]: Halfplement LdrLoad/UnloadAlternateResourceModule. svn path=/trunk/; revision=54307
This commit is contained in:
parent
485d80b662
commit
ec9698366a
6 changed files with 78 additions and 26 deletions
|
@ -88,7 +88,7 @@
|
||||||
;@ stdcall LdrHotPatchRoutine
|
;@ stdcall LdrHotPatchRoutine
|
||||||
;@ stdcall LdrInitShimEngineDynamic
|
;@ stdcall LdrInitShimEngineDynamic
|
||||||
@ stdcall LdrInitializeThunk(long long long long)
|
@ stdcall LdrInitializeThunk(long long long long)
|
||||||
;@ stdcall LdrLoadAlternateResourceModule
|
@ stdcall LdrLoadAlternateResourceModule(ptr ptr)
|
||||||
@ stdcall LdrLoadDll(wstr long ptr ptr)
|
@ stdcall LdrLoadDll(wstr long ptr ptr)
|
||||||
@ stdcall LdrLockLoaderLock(long ptr ptr)
|
@ stdcall LdrLockLoaderLock(long ptr ptr)
|
||||||
;@ stdcall LdrOpenImageFileOptionsKey ; 5.2 SP1 and higher
|
;@ stdcall LdrOpenImageFileOptionsKey ; 5.2 SP1 and higher
|
||||||
|
@ -566,7 +566,7 @@
|
||||||
@ stdcall RtlDllShutdownInProgress()
|
@ stdcall RtlDllShutdownInProgress()
|
||||||
@ stdcall RtlDnsHostNameToComputerName(ptr ptr long)
|
@ stdcall RtlDnsHostNameToComputerName(ptr ptr long)
|
||||||
@ stdcall RtlDoesFileExists_U(wstr)
|
@ stdcall RtlDoesFileExists_U(wstr)
|
||||||
;@ stdcall RtlDosApplyFileIsolationRedirection_Ustr
|
@ stdcall RtlDosApplyFileIsolationRedirection_Ustr(long ptr ptr ptr ptr ptr ptr ptr ptr)
|
||||||
@ stdcall RtlDosPathNameToNtPathName_U(wstr ptr ptr ptr)
|
@ stdcall RtlDosPathNameToNtPathName_U(wstr ptr ptr ptr)
|
||||||
;@ stdcall RtlDosPathNameToNtPathName_U_WithStatus ; 5.2 SP1, and higher
|
;@ stdcall RtlDosPathNameToNtPathName_U_WithStatus ; 5.2 SP1, and higher
|
||||||
@ stdcall RtlDosPathNameToRelativeNtPathName_U(ptr ptr ptr ptr) ; CHECKME
|
@ stdcall RtlDosPathNameToRelativeNtPathName_U(ptr ptr ptr ptr) ; CHECKME
|
||||||
|
@ -690,7 +690,7 @@
|
||||||
@ stdcall RtlIdentifierAuthoritySid(ptr)
|
@ stdcall RtlIdentifierAuthoritySid(ptr)
|
||||||
@ stdcall RtlImageDirectoryEntryToData(long long long ptr)
|
@ stdcall RtlImageDirectoryEntryToData(long long long ptr)
|
||||||
@ stdcall RtlImageNtHeader(long)
|
@ stdcall RtlImageNtHeader(long)
|
||||||
;@ stdcall RtlImageNtHeaderEx
|
@ stdcall RtlImageNtHeaderEx(long ptr double ptr)
|
||||||
@ stdcall RtlImageRvaToSection(ptr long long)
|
@ stdcall RtlImageRvaToSection(ptr long long)
|
||||||
@ stdcall RtlImageRvaToVa(ptr long long ptr)
|
@ stdcall RtlImageRvaToVa(ptr long long ptr)
|
||||||
@ stdcall RtlImpersonateSelf(long)
|
@ stdcall RtlImpersonateSelf(long)
|
||||||
|
|
|
@ -19,9 +19,18 @@ LIST_ENTRY LdrpUnloadHead;
|
||||||
LONG LdrpLoaderLockAcquisitonCount;
|
LONG LdrpLoaderLockAcquisitonCount;
|
||||||
BOOLEAN LdrpShowRecursiveLoads, LdrpBreakOnRecursiveDllLoads;
|
BOOLEAN LdrpShowRecursiveLoads, LdrpBreakOnRecursiveDllLoads;
|
||||||
UNICODE_STRING LdrApiDefaultExtension = RTL_CONSTANT_STRING(L".DLL");
|
UNICODE_STRING LdrApiDefaultExtension = RTL_CONSTANT_STRING(L".DLL");
|
||||||
|
ULONG AlternateResourceModuleCount;
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
LdrAlternateResourcesEnabled(VOID)
|
||||||
|
{
|
||||||
|
/* ReactOS does not support this */
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
ULONG_PTR
|
ULONG_PTR
|
||||||
FORCEINLINE
|
FORCEINLINE
|
||||||
LdrpMakeCookie(VOID)
|
LdrpMakeCookie(VOID)
|
||||||
|
@ -1524,15 +1533,46 @@ LdrProcessRelocationBlock(IN ULONG_PTR Address,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
LdrUnloadAlternateResourceModule(IN PVOID BaseAddress)
|
LdrUnloadAlternateResourceModule(IN PVOID BaseAddress)
|
||||||
{
|
{
|
||||||
//static BOOLEAN WarnedOnce = FALSE;
|
ULONG_PTR Cookie;
|
||||||
//if (WarnedOnce == FALSE) { UNIMPLEMENTED; WarnedOnce = TRUE; }
|
|
||||||
return FALSE;
|
/* Acquire the loader lock */
|
||||||
|
LdrLockLoaderLock(TRUE, NULL, &Cookie);
|
||||||
|
|
||||||
|
/* Check if there's any alternate resources loaded */
|
||||||
|
if (AlternateResourceModuleCount)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Release the loader lock */
|
||||||
|
LdrUnlockLoaderLock(1, Cookie);
|
||||||
|
|
||||||
|
/* All done */
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME: Add to ntstatus.mc */
|
||||||
|
#define STATUS_MUI_FILE_NOT_FOUND ((NTSTATUS)0xC00B0001L)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
LdrLoadAlternateResourceModule(IN PVOID Module,
|
||||||
|
IN PWSTR Buffer)
|
||||||
|
{
|
||||||
|
/* Is MUI Support enabled? */
|
||||||
|
if (!LdrAlternateResourcesEnabled()) return STATUS_SUCCESS;
|
||||||
|
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_MUI_FILE_NOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -518,21 +518,21 @@ RtlPcToFileHeader(IN PVOID PcValue,
|
||||||
return ImageBase;
|
return ImageBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlDosApplyFileIsolationRedirection_Ustr(
|
RtlDosApplyFileIsolationRedirection_Ustr(IN ULONG Flags,
|
||||||
IN BOOLEAN Unknown,
|
IN PUNICODE_STRING OriginalName,
|
||||||
IN PUNICODE_STRING OriginalName,
|
IN PUNICODE_STRING Extension,
|
||||||
IN PUNICODE_STRING Extension,
|
IN OUT PUNICODE_STRING StaticString,
|
||||||
IN OUT PUNICODE_STRING RedirectedName,
|
IN OUT PUNICODE_STRING DynamicString,
|
||||||
IN OUT PUNICODE_STRING RedirectedName2,
|
IN OUT PUNICODE_STRING *NewName,
|
||||||
IN OUT PUNICODE_STRING *OriginalName2,
|
IN PULONG NewFlags,
|
||||||
IN PVOID Unknown1,
|
IN PSIZE_T FileNameSize,
|
||||||
IN PVOID Unknown2,
|
IN PSIZE_T RequiredLength)
|
||||||
IN PVOID Unknown3
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
return STATUS_SXS_KEY_NOT_FOUND;
|
return STATUS_SXS_KEY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,13 @@ LdrFindResourceDirectory_U(
|
||||||
OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory
|
OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
LdrLoadAlternateResourceModule(
|
||||||
|
IN PVOID Module,
|
||||||
|
IN PWSTR Buffer
|
||||||
|
);
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
LdrUnloadAlternateResourceModule(
|
LdrUnloadAlternateResourceModule(
|
||||||
|
|
|
@ -3275,15 +3275,15 @@ NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlDosApplyFileIsolationRedirection_Ustr(
|
RtlDosApplyFileIsolationRedirection_Ustr(
|
||||||
IN BOOLEAN Unknown,
|
IN ULONG Flags,
|
||||||
IN PUNICODE_STRING OriginalName,
|
IN PUNICODE_STRING OriginalName,
|
||||||
IN PUNICODE_STRING Extension,
|
IN PUNICODE_STRING Extension,
|
||||||
IN OUT PUNICODE_STRING RedirectedName,
|
IN OUT PUNICODE_STRING StaticString,
|
||||||
IN OUT PUNICODE_STRING RedirectedName2,
|
IN OUT PUNICODE_STRING DynamicString,
|
||||||
IN OUT PUNICODE_STRING *OriginalName2,
|
IN OUT PUNICODE_STRING *NewName,
|
||||||
IN PVOID Unknown1,
|
IN PULONG NewFlags,
|
||||||
IN PVOID Unknown2,
|
IN PSIZE_T FileNameSize,
|
||||||
IN PVOID Unknown3
|
IN PSIZE_T RequiredLength
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
|
|
|
@ -251,6 +251,11 @@ C_ASSERT(HEAP_CREATE_VALID_MASK == 0x0007F0FF);
|
||||||
//
|
//
|
||||||
#define RTL_IMAGE_NT_HEADER_EX_FLAG_NO_RANGE_CHECK 0x00000001
|
#define RTL_IMAGE_NT_HEADER_EX_FLAG_NO_RANGE_CHECK 0x00000001
|
||||||
|
|
||||||
|
//
|
||||||
|
// RtlDosApplyFileIsolationRedirection_Ustr Flags
|
||||||
|
//
|
||||||
|
#define RTL_DOS_APPLY_FILE_REDIRECTION_USTR_FLAG_RESPECT_DOT_LOCAL 0x01
|
||||||
|
|
||||||
//
|
//
|
||||||
// Codepages
|
// Codepages
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue