Функция NetShareGetInfo возвращает всегда 2310 (эта доля не существует) - PullRequest
0 голосов
/ 15 мая 2019

Я хочу восстановить свойства общей папки.Я использую функцию NetShareGetInfo, но она возвращает мне ошибку 2310.Эта папка не существует.Вот мой код:

 NET_API_STATUS pStatus;
 SHARE_INFO_2 pBuffer;
 //here status return 2310 -  This shared resource does not exist.
 pStatus=NetShareGetInfo(nullptr,  L"\\\\PCRT-S35521\\sharedFolder", 2, reinterpret_cast<LPBYTE*>(&pBuffer));

Кто-нибудь знает, откуда может возникнуть эта проблема?Потому что правильный сетевой путь и правильные права

1 Ответ

2 голосов
/ 15 мая 2019

В документации сказано, что если первый аргумент, имя сервера, NULL, то используется локальный компьютер.Вот почему ваш код возвращает NERR_NetNameNotFound.

. Кроме того, вы неправильно передаете последний параметр.Вам нужен дополнительный уровень косвенности, потому что функция выделяет буфер.

Это должно выглядеть примерно так:

NET_API_STATUS pStatus;
SHARE_INFO_2 *pBuffer;
pStatus = NetShareGetInfo(L"PCRT-S35521", L"sharedFolder", 2, (LPBYTE)&pBuffer);

Не забудьте следовать инструкциям, приведенным в документации по уничтожению буфера:

Этот буфер выделяетсясистема и должна быть освобождена с помощью функции NetApiBufferFree.

...