Так что NTFS использует 128-битный Guid для идентификации файлов и каталогов, вы можете легко просмотреть эту информацию:
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 Library", но метод там (GetFileInformationByHandleEx) возвращает FILE_ID_BOTH_DIR_INFO. Эта структура определяет FileId; однако это LARGE_INTEGER (64 бита), а не полный 128-битный идентификатор.
Я предполагаю, что для этого можно использовать WMI, это то, к чему я должен обратиться?