Так что 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, вот куда мне обратиться?