公司给了道笔试题,是这么说的:
“请写一个小程序,能够检查出所有本机当前打开的所有文件的信息。”

我目前正在尝试使用ZwQuerySystemInformation方法获得所有句柄,然后从中筛选出文件句柄;
然而我得到文件句柄之后,却不知道如何通过句柄访问句柄所指向的文件对象了!
我的问题就在这里,不知道有没有API能够达到“通过句柄访问句柄所指向的文件对象”,我要读取出文件对象的一些基本信息,至少要知道目录和文件名。
谢谢!

学习一下

感谢一楼的回答,可是我查了你给的API,是VISTA才能用的,我想知道有没有XP能用的呢?

typedef struct _BY_HANDLE_FILE_INFORMATION {
  DWORD dwFileAttributes;
  FILETIME ftCreationTime;
  FILETIME ftLastAccessTime;
  FILETIME ftLastWriteTime;
  DWORD dwVolumeSerialNumber;
  DWORD nFileSizeHigh;
  DWORD nFileSizeLow;
  DWORD nNumberOfLinks;
  DWORD nFileIndexHigh;
  DWORD nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION,
  *PBY_HANDLE_FILE_INFORMATION;

BOOL WINAPI GetFileInformationByHandle(
  __in  HANDLE hFile,
  __out  LPBY_HANDLE_FILE_INFORMATION lpFileInformation
);

学习