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

0 ответов

Другие вопросы по тегам