NetFileEnum несовместим, иногда не возвращает данных
Я работаю над приложением 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? Есть ли более последовательный способ узнать, кто все имеет доступ к общему ресурсу?