Я просто хочу попробовать недокументированный 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);
}