Что означает код ошибки Windows 2250 (ERROR_NOT_CONNECTED)?

 
Предыдущий Следующий
ERROR_BAD_USERNAME ERROR_OPEN_FILES

ERROR_NOT_CONNECTED

Что означает ERROR_NOT_CONNECTED

ERROR_NOT_CONNECTED — указанное сетевое подключение не существует.

Практический смысл и диагностика

Для WNetGetUser этот результат означает, что указанное локальное устройство или сетевой ресурс не соответствует существующему перенаправленному соединению.

  • Не путайте его с ERROR_NO_NET_OR_BAD_PATH: там провайдеры не распознают локальное имя, причём хотя бы для одного подходящего провайдера сама сеть может быть недоступна.
  • Параметр lpName должен содержать имя перенаправленного локального устройства либо удалённого ресурса, с которым реально установлено соединение; передавайте то же имя, которое использовалось при создании подключения.
  • lpnLength задаёт размер буфера lpUserName в символах; если буфер мал, функция возвращает требуемый размер. Это отдельная ошибка и её не следует диагностировать как отсутствие подключения.
  • lpUserName получает имя пользователя для найденного сетевого соединения. Если соединения уже нет, сначала подтвердите его наличие через WNet/сетевые подключения, а не увеличивайте этот буфер.

Команды и примеры

DWORD WNetGetUserW(
 [in]   LPCWSTR lpName,
 [out]   LPWSTR lpUserName,
 [in, out] LPDWORD lpnLength
);
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "mpr.lib")

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <Winnetwk.h>

int wmain(int argc, wchar_t * argv[])
{
  DWORD dwRetVal;

  WCHAR UserName[MAX_PATH];

  DWORD dwNameLength = MAX_PATH;

  if (argc != 2) {
    wprintf
      (L"Usage: %s [Redirected-LocalDevice or Network-Resource-Remote-name\n",
       argv[0]);
    exit(1);
  }

  wprintf(L"Calling WNetGetUser with Network-Resource = %s\n", argv[1]);

  dwRetVal = WNetGetUser(argv[1], UserName, &dwNameLength);
  //
  // If the call succeeds, print the user information.
  //
  if (dwRetVal == NO_ERROR) {

    wprintf(L"WNetGetUser returned success\n");
    wprintf(L"\tUsername=%s  NameLength=%d\n", &UserName, dwNameLength);
    exit(0);
  }

  else {
    wprintf(L"WNetGetUser failed with error: %u\n", dwRetVal);
    exit(1);
  }
}

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.