mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 00:45:43 +00:00
Fixed import unicode names from remote processes.
svn path=/trunk/; revision=10661
This commit is contained in:
parent
34e45ee1c2
commit
a380ffb184
1 changed files with 18 additions and 5 deletions
|
@ -180,6 +180,10 @@ RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
|
|
||||||
while(pleCurEntry != pleListHead)
|
while(pleCurEntry != pleListHead)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
UNICODE_STRING Unicode;
|
||||||
|
WCHAR Buffer[256 * sizeof(WCHAR)];
|
||||||
|
|
||||||
/* read the current module */
|
/* read the current module */
|
||||||
Status = NtReadVirtualMemory ( ProcessHandle,
|
Status = NtReadVirtualMemory ( ProcessHandle,
|
||||||
CONTAINING_RECORD(pleCurEntry, LDR_MODULE, InLoadOrderModuleList),
|
CONTAINING_RECORD(pleCurEntry, LDR_MODULE, InLoadOrderModuleList),
|
||||||
|
@ -187,6 +191,17 @@ RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
sizeof(LDR_MODULE),
|
sizeof(LDR_MODULE),
|
||||||
NULL );
|
NULL );
|
||||||
|
|
||||||
|
/* Import module name from remote Process user space. */
|
||||||
|
Unicode.Length = lmModule.FullDllName.Length;
|
||||||
|
Unicode.MaximumLength = lmModule.FullDllName.MaximumLength;
|
||||||
|
Unicode.Buffer = Buffer;
|
||||||
|
|
||||||
|
Status = NtReadVirtualMemory ( ProcessHandle,
|
||||||
|
lmModule.FullDllName.Buffer,
|
||||||
|
Unicode.Buffer,
|
||||||
|
Unicode.Length,
|
||||||
|
NULL );
|
||||||
|
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
/* failure */
|
/* failure */
|
||||||
|
@ -194,8 +209,7 @@ RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
DPRINT(" Module %wZ\n",
|
DPRINT(" Module %wZ\n", &Unicode);
|
||||||
&lmModule.FullDllName);
|
|
||||||
|
|
||||||
if (UsedSize > Size)
|
if (UsedSize > Size)
|
||||||
{
|
{
|
||||||
|
@ -216,7 +230,7 @@ RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
AnsiString.MaximumLength = 256;
|
AnsiString.MaximumLength = 256;
|
||||||
AnsiString.Buffer = ModulePtr->ModuleName;
|
AnsiString.Buffer = ModulePtr->ModuleName;
|
||||||
RtlUnicodeStringToAnsiString(&AnsiString,
|
RtlUnicodeStringToAnsiString(&AnsiString,
|
||||||
&lmModule.FullDllName,
|
&Unicode,
|
||||||
FALSE);
|
FALSE);
|
||||||
|
|
||||||
p = strrchr(ModulePtr->ModuleName, '\\');
|
p = strrchr(ModulePtr->ModuleName, '\\');
|
||||||
|
@ -377,7 +391,6 @@ else
|
||||||
}
|
}
|
||||||
|
|
||||||
MSize = Mp->ModuleCount * (sizeof(MODULE_INFORMATION) + 8);
|
MSize = Mp->ModuleCount * (sizeof(MODULE_INFORMATION) + 8);
|
||||||
|
|
||||||
Buf->ModuleInformation = Mp;
|
Buf->ModuleInformation = Mp;
|
||||||
Buf->SizeOfInfo = Buf->SizeOfInfo + MSize;
|
Buf->SizeOfInfo = Buf->SizeOfInfo + MSize;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue