Как использовать NtQueryInformationByName? - PullRequest
0 голосов
/ 14 июня 2019

Я просто хочу попробовать недокументированный API: NtQueryInformationByName .

Попробовал следующий код, но получил только STATUS_INVALID_PARAMETER .

ОС: Windows 10 1903 18362.145

void InternalGetFileInfo()
{
    /* Hide getting function pointer here */

    OBJECT_ATTRIBUTES ObjectAttributes{};
    UNICODE_STRING UnicodeString{};
    WCHAR wszPath[] = L"C:\\WINDOWS\\system32\\notepad.exe";

    if (!_RtlDosPathNameToNtPathName_U(wszPath, &UnicodeString, NULL, NULL))
    {
        cout << "RtlDosPathNameToNtPathName_U error=" << GetLastError() << endl;
        return;
    };

    InitializeObjectAttributes(&ObjectAttributes, &UnicodeString, OBJ_CASE_INSENSITIVE, NULL, NULL);

    IO_STATUS_BLOCK IoStatus{};
    FILE_ATTRIBUTE_TAG_INFORMATION TagInfo{};
    NTSTATUS status = _NtQueryInformationByName(&ObjectAttributes, &IoStatus, &TagInfo, sizeof(TagInfo), (FILE_INFORMATION_CLASS)35);

    cout << status << endl;

    _RtlFreeUnicodeString(&UnicodeString);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...