QUOTE(jcoalson @ Oct 20 2006, 11:41)

but at least for me on NT4 with MSVC6 the inode is always 0.
QUOTE
The inode, and therefore st_ino, has no meaning in the FAT, HPFS, or NTFS file systems.
QUOTE(jcoalson @ Oct 20 2006, 11:41)

so does anyone know what the win-specific way to do this?
hope this will be useful
GetFileInformationByHandle,
BY_HANDLE_FILE_INFORMATION,
CreateFile.
QUOTE(BY_HANDLE_FILE_INFORMATION)
nFileIndexHigh
High-order part of a unique identifier that is associated with a file. For more information, see nFileIndexLow.
nFileIndexLow
Low-order part of a unique identifier that is associated with a file.
This value is useful only while the file is open by at least one process. If no processes have it open, the index may change the next time the file is opened.
The identifier (low and high parts) and the volume serial number that uniquely identify a file on a single computer. To determine whether two open handles represent the same file, combine this identifier and the volume serial number for each file and compare them.
QUOTE
#include <Windows.h>
#include <Winbase.h>
...
HANDLE hFile = CreateFile("D:\\audio\\flac.exe", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
BY_HANDLE_FILE_INFORMATION info;
GetFileInformationByHandle(hFile, &info);
CloseHandle(hFile);
printf("File info %ld-%ld\n", info.nFileIndexHigh, info.nFileIndexLow);