Функция WNetUseConnectionA (winnetwk.h)
Функция WNetUseConnection устанавливает подключение к сетевому ресурсу. Функция может перенаправлять локальное устройство в сетевой ресурс.
Функция WNetUseConnection аналогична функции WNetAddConnection3 . Разница main заключается в том, что WNetUseConnection может автоматически выбрать неиспользуемое локальное устройство для перенаправления на сетевой ресурс.
Синтаксис
DWORD WNetUseConnectionA(
[in] HWND hwndOwner,
[in] LPNETRESOURCEA lpNetResource,
[in] LPCSTR lpPassword,
[in] LPCSTR lpUserId,
[in] DWORD dwFlags,
[out] LPSTR lpAccessName,
[in, out] LPDWORD lpBufferSize,
[out] LPDWORD lpResult
);
Параметры
[in] hwndOwner
Обработка окна, которое поставщик сетевых ресурсов может использовать в качестве окна владельца для диалоговых окон. Используйте этот параметр, если вы задали значение CONNECT_INTERACTIVE в параметре dwFlags .
[in] lpNetResource
Указатель на структуру NETRESOURCE , которая указывает сведения о предполагаемом подключении. Структура содержит сведения о сетевом ресурсе, локальном устройстве и поставщике сетевых ресурсов.
Необходимо указать следующие элементы структуры NETRESOURCE .
Функция WNetUseConnection игнорирует другие элементы структуры NETRESOURCE . Дополнительные сведения см. в следующих описаниях для параметра dwFlags .
[in] lpPassword
Указатель на константную строку, завершающуюся значением NULL, которая указывает пароль, используемый при подключении к сети.
Если lpPassword имеет значение NULL, функция использует текущий пароль по умолчанию, связанный с пользователем, указанным в lpUserID.
Если lpPassword указывает на пустую строку, функция не использует пароль.
Если подключение завершается сбоем из-за недопустимого пароля и в параметре dwFlags задано значение CONNECT_INTERACTIVE, функция отображает диалоговое окно с запросом на ввод пароля.
[in] lpUserId
Указатель на константную строку, завершающуюся значением NULL, которая указывает имя пользователя для соединения.
Если lpUserID имеет значение NULL, функция использует имя пользователя по умолчанию. (Контекст пользователя для процесса предоставляет имя пользователя по умолчанию.)
Параметр lpUserID указывается, когда пользователи хотят подключиться к сетевому ресурсу, для которого им назначено имя пользователя или учетная запись, отличные от имени пользователя или учетной записи по умолчанию.
Строка имени пользователя представляет контекст безопасности. Он может быть специфичным для сетевого поставщика.
[in] dwFlags
Набор битовых флагов, описывающих подключение. Этот параметр может быть любым сочетанием следующих значений.
Значение | Значение |
---|---|
|
Если этот флаг установлен, операционная система может взаимодействовать с пользователем для проверки подлинности. |
|
Этот флаг предписывает системе не использовать параметры по умолчанию для имен пользователей или паролей, не предлагая пользователю возможность предоставить альтернативу. Этот флаг игнорируется, если не задано CONNECT_INTERACTIVE. |
|
Этот флаг принудительно выполняет перенаправление локального устройства при подключении.
Если элемент lpLocalNamenetRESOURCE указывает локальное устройство для перенаправления, этот флаг не действует, так как операционная система по-прежнему пытается перенаправить указанное устройство. Когда операционная система автоматически выбирает локальное устройство, член dwType не должен быть равен RESOURCETYPE_ANY. Если этот флаг не установлен, локальное устройство автоматически выбирается для перенаправления, только если сеть требует перенаправления локального устройства. Windows XP: Когда система автоматически назначает буквы сетевого диска, назначаются буквы, начинающиеся с Z:, затем Y:, и заканчивающиеся C:. Это снижает вероятность конфликта между буквами дисков для каждого входа (например, буквами сетевых дисков) и буквами глобальных дисков (например, дисков). Обратите внимание, что в предыдущих выпусках были назначены буквы диска, начинающиеся с C: и заканчивающиеся буквами Z:. |
|
Этот флаг указывает операционной системе сохранить подключение к сетевым ресурсам.
Если этот битовый флаг установлен, операционная система автоматически пытается восстановить подключение при входе пользователя в систему. Система запоминает только успешные подключения, которые перенаправляют локальные устройства. Он не запоминает неудачные подключения или подключения без устройства. (Подключение без устройства возникает, если lpLocalName имеет значение NULL или указывает на пустую строку.) Если этот битовый флаг не установлен, операционная система не восстанавливает подключение автоматически при входе в систему. |
|
Если этот флаг установлен, операционная система запрашивает проверку подлинности пользователя с помощью командной строки, а не графического пользовательского интерфейса (GUI). Этот флаг игнорируется, если не задано CONNECT_INTERACTIVE.
Windows 2000/NT и Windows Me/98/95: Это значение не поддерживается. |
|
Если этот флаг установлен и операционная система запрашивает учетные данные, диспетчер учетных данных должен сохранить учетные данные. Если диспетчер учетных данных отключен для сеанса входа вызывающего абонента или поставщик сети не поддерживает сохранение учетных данных, этот флаг игнорируется. Этот флаг также игнорируется, если вы не задали флаг CONNECT_COMMANDLINE.
Windows 2000/NT и Windows Me/98/95: Это значение не поддерживается. |
[out] lpAccessName
Указатель на буфер, который получает системные запросы к подключению. Этот параметр может принимать значение NULL.
Если этот параметр указан, а элемент lpLocalName структуры NETRESOURCE указывает локальное устройство, этот буфер получает имя локального устройства. Если lpLocalName не указывает устройство и сеть требует перенаправления локального устройства или если задано значение CONNECT_REDIRECT, этот буфер получает имя перенаправленного локального устройства.
В противном случае в буфер копируется имя удаленного ресурса. Если этот буфер указан, размер этого буфера должен быть не меньше строки, на которую указывает элемент lpRemoteName .
[in, out] lpBufferSize
Указатель на переменную, указывающую размер буфера lpAccessName в символах. Если вызов завершается сбоем из-за недостаточно большого размера буфера, функция возвращает требуемый размер буфера в этом расположении. Дополнительные сведения см. в описании параметра lpAccessName и коде ошибки ERROR_MORE_DATA в разделе Возвращаемые значения.
[out] lpResult
Указатель на переменную, которая получает дополнительные сведения о подключении. Этот параметр может иметь следующее значение.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение будет NO_ERROR.
Если функция завершается сбоем, возвращаемое значение представляет собой системный код ошибки, например одно из следующих значений.
Код возврата | Описание |
---|---|
|
Вызывающий объект не имеет доступа к сетевому ресурсу. |
|
Локальное устройство, указанное членом lpLocalName , уже подключено к сетевому ресурсу. |
|
Недопустимое значение, указанное параметром lpLocalName . |
|
Значение, указанное членом lpRemoteName , недопустимо для любого поставщика сетевых ресурсов, так как недопустимое имя ресурса или невозможность найти именованный ресурс. |
|
Значение, указанное членом lpProvider , не соответствует ни одному поставщику. |
|
Попытка установить подключение была отменена пользователем через диалоговое окно от одного из поставщиков сетевых ресурсов или с помощью вызываемого ресурса. |
|
Произошла ошибка, относявшаяся к сети. Чтобы получить описание ошибки, вызовите функцию WNetGetLastError . |
|
Вызывающий объект передает указатель на буфер, к которому не удается получить доступ. |
|
Эта ошибка возникает в результате одного из следующих условий:
|
|
Указанный пароль недопустим, а флаг CONNECT_INTERACTIVE не установлен. |
|
Буфер lpAccessName слишком мал.
Если перенаправляется локальное устройство, буфер должен быть достаточно большим, чтобы содержать имя локального устройства. В противном случае буфер должен быть достаточно большим, чтобы содержать строку, на которую указывает lpRemoteName, или имя подключаемого ресурса, псевдоним которого указывает на lpRemoteName. Если эта ошибка возвращается, подключение не установлено. |
|
Операционная система не может автоматически выбрать локальное перенаправление, так как используются все допустимые локальные устройства. |
|
Операция не может быть завершена либо из-за того, что сетевой компонент не запущен, либо из-за того, что указанное имя ресурса не распознано. |
|
Сеть недоступна. |
Комментарии
Windows Server 2003 и Windows XP: Функции WNet создают и удаляют буквы сетевых дисков в пространстве имен устройств MS-DOS, связанном с сеансом входа, так как устройства MS-DOS идентифицируются по идентификатору authenticationID. (AuthenticationID — это локальный уникальный идентификатор (LUID), связанный с сеансом входа в систему.) Это может повлиять на приложения, которые вызывают одну из функций WNet для создания буквы сетевого диска при входе одного пользователя, но запрашивают существующие буквы сетевых дисков при входе другого пользователя. Примером такой ситуации может быть создание второго входа пользователя в сеансе входа, например путем вызова функции CreateProcessAsUser , а при втором входе запускается приложение, которое вызывает функцию GetLogicalDrives . GetLogicalDrives не возвращает буквы сетевых дисков, созданные функцией WNet при первом входе в систему. Обратите внимание, что в предыдущем примере первый сеанс входа по-прежнему существует, и этот пример может применяться к любому сеансу входа, включая сеанс служб терминалов. Дополнительные сведения см. в разделе Определение имени устройства MS-DOS.
Примечание
Заголовок winnetwk.h определяет WNetUseConnection в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winnetwk.h |
Библиотека | Mpr.lib |
DLL | Mpr.dll |