Как Вы читаете 128-разрядный NTFS FILE_ID для каталога и/или файла?

Таким образом, NTFS использует 128-разрядный Гуид для идентификации файлов и каталогов, можно просмотреть эту информацию достаточно легко:

C:\Temp>C:\Windows\System32\fsutil.exe objectid query .
Object ID :        ab3ffba83c67df118130e0cb4e9d4076
BirthVolume ID :   ca38ec6abfe0ca4baa9b54a543fdd84f
BirthObjectId ID : ab3ffba83c67df118130e0cb4e9d4076
Domain ID :        00000000000000000000000000000000

Таким образом, это достаточно очевидно, но как каждый получает эту информацию программно? При рассмотрении WinApi для OpenFileById (...) необходимо смочь получить эту информацию. Можно было бы ожидать, что это будет сделано в "библиотеке Win32 FileID API", все же метод там (GetFileInformationByHandleEx) возвращает структуру FILE_ID_BOTH_DIR_INFO. Эта структура определяет FileId; однако, это - LARGE_INTEGER (64 бита) не полный идентификатор на 128 битов.

Я предполагаю, что можно было использовать WMI для этого, это, где я должен повернуться?

6
задан csharptest.net 14 August 2010 в 05:34
поделиться