Поделиться через


Функция WSCInstallNameSpace (ws2spi.h)

Функция WSCInstallNameSpace устанавливает поставщик пространства имен. Для поставщиков, которые могут поддерживать несколько пространств имен, эта функция должна вызываться для каждого поддерживаемого пространства имен и каждый раз должен предоставляться уникальный идентификатор поставщика.

Синтаксис

INT WSCInstallNameSpace(
  [in] LPWSTR lpszIdentifier,
  [in] LPWSTR lpszPathName,
  [in] DWORD  dwNameSpace,
  [in] DWORD  dwVersion,
  [in] LPGUID lpProviderId
);

Параметры

[in] lpszIdentifier

Указатель на строку, которая идентифицирует поставщика, связанного с глобально уникальным идентификатором (GUID), переданным в параметре lpProviderId .

[in] lpszPathName

Указатель на строку Юникода, содержащую путь загрузки к библиотеке DLL поставщика. Эта строка соблюдает обычные правила разрешения путей и может содержать строки внедренной среды (например , %SystemRoot%). Такие строки среды расширяются, когда Ws2_32.dll должен впоследствии загрузить библиотеку DLL поставщика от имени приложения. После развертывания строк внедренной среды Ws2_32.dll передает полученную строку функции LoadLibrary , которая загружает поставщик в память. Дополнительные сведения см. в разделе LoadLibrary.

[in] dwNameSpace

Пространство имен, поддерживаемое этим поставщиком.

[in] dwVersion

Номер версии поставщика.

[in] lpProviderId

Указатель на GUID для поставщика. Этот GUID должен быть создан Uuidgen.exe.

Возвращаемое значение

Если ошибка не возникает, функция WSCInstallNameSpace возвращает NO_ERROR (ноль). В противном случае он возвращает SOCKET_ERROR , если функция завершается сбоем, и необходимо получить соответствующий код ошибки с помощью функции WSAGetLastError .

Код ошибки Значение
WSAEACCES
Вызывающая подпрограмма не имеет достаточных привилегий для установки пространства имен.
WSAEINVAL
Один или несколько аргументов являются недопустимыми.
WSANO_RECOVERY
Произошла неустранимая ошибка. Эта ошибка возвращается при нескольких условиях, включая следующие: поставщик уже установлен, пользователь не имеет прав администратора, необходимых для записи в реестр Winsock, или произошел сбой при создании или установке записи каталога.
WSASYSCALLFAILURE
Системный вызов, который никогда не должен завершаться ошибкой, завершился сбоем.
WSA_NOT_ENOUGH_MEMORY
Недостаточно памяти. Эта ошибка возвращается, если памяти недостаточно для выделения новой записи каталога.

Комментарии

Функции конфигурации пространства имен не влияют на уже запущенные приложения. Недавно установленные поставщики пространств имен не будут видны приложениям, а также не изменятся в состоянии активации поставщика пространства имен. Приложения, запущенные после вызова WSCInstallNameSpace , увидят изменения.

Функция WSCInstallNameSpace может вызываться только пользователем, вошедшим в систему как член группы Администраторы. Если WSCInstallNameSpace вызывается пользователем, не включаемым в группу Администраторы, вызов функции завершится ошибкой. Для компьютеров под управлением Windows Vista или Windows Server 2008 эта функция также может завершиться сбоем из-за контроля учетных записей пользователей (UAC). Если приложение, содержащее эту функцию, выполняется пользователем, вошедшего в систему как участник группы администраторов, отличный от встроенного администратора, этот вызов завершится ошибкой, если приложение не было отмечено в файле манифеста параметром requestedExecutionLevel , для которого задано значение requireAdministrator. Если в приложении в Windows Vista или Windows Server 2008 отсутствует этот файл манифеста, пользователь, вошедший в систему как член группы администраторов, отличный от встроенного администратора, должен выполнять приложение в расширенной оболочке в качестве встроенного администратора (администратора запуска от имени) для успешного выполнения этой функции.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ws2spi.h
Библиотека Ws2_32.lib
DLL Ws2_32.dll

См. также раздел

WSCDeinstallProvider

WSCEnumProtocols

WSCInstallNameSpace32

WSCInstallNameSpaceEx

WSCUnInstallNameSpace