NetFileEnum不一致,偶尔不返回任何数据

时间:2018-09-24 06:23:43

标签: windows winapi netapi32

我正在使用一个C ++应用程序,该应用程序检测共享文件夹上发生的更改(使用ReadDirectoryChangesW),并在该修改后的文件/文件夹上调用NetFileEnum。这样,我知道可能的候选人修改文件/文件夹。

根据NetFileEnum文档:

  

根据指定的参数返回有关服务器上某些或所有打开文件的信息。

但是,NetFileEnum不一致,它并不总是告诉我谁当前正在访问资源。似乎只有50%到60%的时间有效。

更具体地说,假设我修改了\\172.20.30.40\myshare\file.txt(本地路径:C:\myshare\file.txt)。
然后使用以下参数调用NetFileEnum

fStatus = NetFileEnum(L"\\\\172.20.30.40",
            (LPWSTR)szLocalPathStr.c_str(), // C:\\myshare\\file.txt
            pszUserName,                    // NULL
            dLevel,                         // 3
            (LPBYTE*)&pFile,
            dPrefMaxLen,
            &dEntriesRead,
            &dTotalEntries,
            NULL);

fStatus返回NERR_success(0)。但是,在40-50%的时间内,dEntriesRead为0。这是NetFileEnum的已知问题吗?有没有一种更一致的方式来知道谁都在访问共享资源?

0 个答案:

没有答案