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


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

Функция WSCDeinstallProvider32 удаляет указанный 32-разрядный поставщик транспорта из базы данных конфигурации системы.

Примечание Этот вызов позволяет 64-разрядному процессу управлять 32-разрядным каталогом Winsock, так как WSCDeinstallProvider на 64-разрядных компьютерах управляет только собственным 64-разрядным каталогом сокетов Windows.

 

Синтаксис

int WSCDeinstallProvider32(
  [in]  LPGUID lpProviderId,
  [out] LPINT  lpErrno
);

Параметры

[in] lpProviderId

Указатель на глобальный уникальный идентификатор (GUID) для поставщика. Это значение хранится в каждой WSAProtocol_Info структуре.

[out] lpErrno

Указатель на код ошибки в случае сбоя функции.

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

Если ошибка не возникает, WSCDeinstallProvider32 возвращает ноль. В противном случае он возвращает SOCKET_ERROR, и в lpErrno доступен определенный код ошибки.

Код ошибки Значение
WSAEINVAL
Параметр lpProviderId не указывает допустимый поставщик.
WSAEFAULT
Параметр lpErrno не находится в допустимой части адресного пространства пользователя.
WSANO_RECOVERY
Произошла неустранимая ошибка. Эта ошибка возвращается при нескольких условиях, включая следующие: у пользователя отсутствуют права администратора, необходимые для записи в реестр сокетов Windows, или произошел сбой при открытии записи каталога.
WSA_NOT_ENOUGH_MEMORY
Недостаточно памяти. Эта ошибка возвращается, если памяти недостаточно для выделения новой записи каталога.

Комментарии

WSCDeinstallProvider32 — это строго 32-разрядная версия WSCDeinstallProvider. На 64-разрядном компьютере все вызовы не только 32-разрядные (например, все функции, которые не заканчиваются на "32"), работают в собственном 64-разрядном каталоге. Процессы, выполняемые на 64-разрядном компьютере, должны использовать определенные вызовы 32-разрядных функций для работы со строго 32-разрядным каталогом и сохранения совместимости. Определения и семантика конкретных 32-разрядных вызовов совпадают с собственными аналогами.

Функция WSCDeinstallProvider32 удаляет общие сведения о конфигурации Windows Sockets 2 для указанного 32-разрядного поставщика. После успешного завершения этой процедуры сведения о конфигурации, хранящиеся в реестре, будут изменены. Однако все экземпляры Ws2_32.dll, находящиеся в памяти, не смогут распознать это изменение.

При успешном выполнении WSCDeinstallProvider32 попытается оповещать все заинтересованные приложения, зарегистрированные для уведомления об изменении, вызвав WSAProviderConfigChange.

Функция WSCDeinstallProvider32 может вызываться только пользователем, вошедшим в систему как член группы Администраторы. Если WSCDeinstallProvider32 вызывается пользователем, не включаемым в группу Администраторы, вызов функции завершится ошибкой и WSANO_RECOVERY возвращается в параметре lpErrno .

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

Вызывающий объект этой функции должен удалить все дополнительные файлы или сведения о конфигурации поставщика услуг, необходимые для полного удаления поставщика услуг.

Требования

Требование Значение
Минимальная версия клиента Windows Vista, Windows XP Professional x64 Edition [только классические приложения]
Минимальная версия сервера Windows Server 2008, Windows Server 2003 x64 Edition [только классические приложения]
Целевая платформа Windows
Header ws2spi.h
Библиотека Ws2_32.lib
DLL Ws2_32.dll

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

WSAProviderConfigChange

WSCDeinstallProvider

WSCEnumProtocols32

WSCInstallProvider64_32