| Предыдущий | Следующий |
| 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);
}
}
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
