Функция 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 .
Код ошибки | Значение |
---|---|
Вызывающая подпрограмма не имеет достаточных привилегий для установки пространства имен. | |
Один или несколько аргументов являются недопустимыми. | |
Произошла неустранимая ошибка. Эта ошибка возвращается при нескольких условиях, включая следующие: поставщик уже установлен, пользователь не имеет прав администратора, необходимых для записи в реестр Winsock, или произошел сбой при создании или установке записи каталога. | |
Системный вызов, который никогда не должен завершаться ошибкой, завершился сбоем. | |
Недостаточно памяти. Эта ошибка возвращается, если памяти недостаточно для выделения новой записи каталога. |
Комментарии
Функции конфигурации пространства имен не влияют на уже запущенные приложения. Недавно установленные поставщики пространств имен не будут видны приложениям, а также не изменятся в состоянии активации поставщика пространства имен. Приложения, запущенные после вызова 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 |