WSCDeinstallProvider32 関数 (ws2spi.h)

WSCDeinstallProvider32 関数は、指定された 32 ビット トランスポート プロバイダーをシステム構成データベースから削除します。

メモ この呼び出しにより、64 ビット コンピューター上の WSCDeinstallProvider はネイティブの 64 ビット Windows ソケット カタログのみを操作するため、64 ビット プロセスで 32 ビット Winsock カタログを操作できます。

 

構文

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

パラメーター

[in] lpProviderId

プロバイダーのグローバル一意識別子 (GUID) へのポインター。 この値は、各WSAProtocol_Info構造体内 格納されます。

[out] lpErrno

関数が失敗した場合のエラー コードへのポインター。

戻り値

エラーが発生しない場合、 WSCDeinstallProvider32 は 0 を返します。 それ以外の場合は 、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 関数は、指定された 32 ビット プロバイダーの一般的な Windows ソケット 2 構成情報を削除します。 このルーチンが正常に完了すると、レジストリに格納されている構成情報が変更されます。 ただし、現在メモリ内の Ws2_32.dll インスタンスは、この変更を認識できません。

成功すると、 WSCDeinstallProvider32、WSAProviderConfigChange を呼び出して、変更の通知を登録したすべての関心のあるアプリケーションにアラートを送信しようとします。

WSCDeinstallProvider32 関数は、Administrators グループのメンバーとしてログオンしているユーザーのみが呼び出すことができます。 Administrators グループのメンバーではないユーザーによって WSCDeinstallProvider32 が呼び出された場合、関数呼び出しは失敗し、 WSANO_RECOVERYlpErrno パラメーターで返されます。

Windows Vista または Windows Server 2008 を実行しているコンピューターの場合、ユーザー アカウント制御 (UAC) が原因でこの関数が失敗する可能性もあります。 この関数を含むアプリケーションが、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーによって実行された場合、 requestedExecutionLevelrequireAdministrator に設定されたマニフェスト ファイルでアプリケーションがマークされていない限り、この呼び出しは失敗します。 Windows Vista または Windows Server 2008 上のアプリケーションにこのマニフェスト ファイルがない場合、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーは、この関数を成功させるために、組み込みの管理者 (RunAs 管理者) として拡張シェルでアプリケーションを実行する必要があります。

この関数の呼び出し元は、サービス プロバイダーを完全にアンインストールするために必要な追加のファイルまたはサービス プロバイダー固有の構成情報を削除する必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista、Windows XP Professional x64 Edition [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008、Windows Server 2003 x64 Edition [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ws2spi.h
Library Ws2_32.lib
[DLL] Ws2_32.dll

こちらもご覧ください

WSAProviderConfigChange

WSCDeinstallProvider

WSCEnumProtocols32

WSCInstallProvider64_32