Может кто-нибудь помочь мне с Windows API NetApi32?

Я пытаюсь получить список акций на определенной машине. Поэтому я решил использовать Windows API NetApi32.dll. Вот мой фрагмент кода:

Dim svr As String = Environment.MachineName
Dim level As Integer = 2
Dim sharesRead As Integer, totalEntries As Integer, nRet As Integer, hResume As Integer = 0
Dim pBuffer As IntPtr = IntPtr.Zero

nRet = NetApi32.NetShareEnum(svr, level, pBuffer, -1, sharesRead, totalEntries, hResume)

Я получаю код возврата 1231, но, похоже, не могу найти, что это значит. Кто-нибудь может указать мне правильное направление о том, как это сделать, если это неправильный путь?

2 ответа

Решение

http://msdn.microsoft.com/en-us/library/ms681383(VS.85).aspx

ERROR_NETWORK_UNREACHABLE 1231 (0x4CF)

Сетевое местоположение не может быть достигнуто.

Вы уверены, что ваше определение NetShareEnum действительно? Я не очень знаком с VB.NET, но я работал с netapi32 в C# в прошлом и вообще без проблем.

Но в любом случае, если вы хотите перечислить все общие ресурсы на вашем компьютере, вы можете сделать это по-другому. В следующем разделе реестра вы можете найти все текущие общие папки компьютера:

HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Акции

Существует одна пара ключ-значение на акцию. Значение типа REG_MULTI_SZ, которое выглядит как простой ini. Проверьте наличие "type=0" (общий доступ к файлам) и прочитайте путь.

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