пробовал через wcscmp не получается
пробовал через преобразование wchar_t в UNICODE_STRING и там уже через RtlCompareUnicodeString не получается
хотя строку находит
пробовал через преобразование wchar_t в UNICODE_STRING и там уже через RtlCompareUnicodeString не получается
C:
HANDLE GetProcessPid(wchar_t* name)
{
PSYSTEM_PROCESS_INFO pInfo = (PSYSTEM_PROCESS_INFO)NQSI(SystemProcessInformation), pInfoCur = pInfo;
pInfoCur->UniqueProcessId;
NTSTATUS status = STATUS_UNSUCCESSFUL;
HANDLE pid;
UNICODE_STRING uname1;
UNICODE_STRING uname2;
//Sleep(10000);
RtlInitUnicodeString(&uname1, name);
//DbgPrint("1.");
while (TRUE)
{
const wchar_t* ProcessName = pInfoCur->ImageName.Buffer;
if (MmIsAddressValid((PVOID)ProcessName) == TRUE) {
//Sleep(10000);
RtlInitUnicodeString(&uname2, ProcessName);
//DbgPrint("2.");
DbgPrint("Process Name: %ws\n", ProcessName);
//Sleep(10000);
if (RtlCompareUnicodeString(&uname1, &uname2, TRUE) == 0)
{
DbgPrint("3.");
Sleep(10000);
pid = pInfoCur->UniqueProcessId;
KFree(pInfo);
return pid;
}
else pInfoCur = (PSYSTEM_PROCESS_INFO)((ULONG64)pInfoCur + pInfoCur->NextEntryOffset);
}
else pInfoCur = (PSYSTEM_PROCESS_INFO)((ULONG64)pInfoCur + pInfoCur->NextEntryOffset);
}
}
хотя строку находит