Does Windows have Inode Numbers like Linux? How does Windows internally manage files?
The terminology used is a bit different from what you'd find in the Unix world, however in terms of having an integer that uniquely identifies a file, NTFS and some Windows API expose the concept of "file IDs" which is similar.
You can query the file ID of an open handle via GetFileInformationByHandle
. See nFileIndexHigh
, nFileIndexLow
; this is the high and low parts respectively of the file ID which is 64 bits.
NtCreateFile
can also open a file by its ID. See the FILE_OPEN_BY_FILE_ID
flag. You need a volume handle to open by file ID.