Hard links:
You can detect if multiple names are pointing to the same "data chunk" or "file content" by invoking the Win32 API function GetFileInformationByHandle. The nNumberOfLinks member of the returned BY_HANDLE_FILE_INFORMATION structure contains the total number of links
Mount Points:
You can iterate through all the mount points on a volume using FindFirstVolumeMountPoint and FindNextVolumeMountPoint. Also FindVolumeMountPointClose should be used to close the search handle.
From .NET
Doing this from .NET will require some P/Invoke magic