WSCDeinstallProvider 関数 (ws2spi.h)
WSCDeinstallProvider 関数は、指定されたトランスポート プロバイダーをシステム構成データベースから削除します。
構文
int WSCDeinstallProvider(
[in] LPGUID lpProviderId,
[out] LPINT lpErrno
);
パラメーター
[in] lpProviderId
プロバイダーのグローバル一意識別子 (GUID) へのポインター。 この値は、各WSAProtocol_Info構造体内 に 格納されます。
[out] lpErrno
関数が失敗した場合のエラー コードへのポインター。
戻り値
エラーが発生しない場合、 WSCDeinstallProvider は 0 を返します。 それ以外の場合は 、SOCKET_ERRORを返し、 lpErrno で特定のエラー コードを使用できます。
エラー コード | 意味 |
---|---|
lpProviderId パラメーターは、有効なプロバイダーを指定していません。 | |
lpErrno パラメーターは、ユーザー・アドレス・スペースの有効な部分にありません。 | |
回復不可能なエラーが発生しました。 このエラーは、Windows Sockets レジストリへの書き込みに必要な管理特権がユーザーに不足しているか、カタログ エントリを開くときにエラーが発生したなど、いくつかの条件で返されます。 | |
メモリが不足していました。 このエラーは、新しいカタログ エントリを割り当てるメモリが不足している場合に返されます。 |
注釈
WSCDeinstallProvider 関数は、指定されたプロバイダーの一般的な Windows ソケット 2 構成情報を削除します。 このルーチンが正常に完了すると、レジストリに格納されている構成情報が変更されます。 ただし、現在メモリ内にある Ws2_32.dll インスタンスは、この変更を認識できません。
成功すると、 WSCDeinstallProvider は、 WSAProviderConfigChange を呼び出して、変更の通知を登録したすべての関心のあるアプリケーションに対して警告を出そうとします。
WSCDeinstallProvider 関数は、Administrators グループのメンバーとしてログオンしているユーザーのみが呼び出すことができます。 Administrators グループのメンバーではないユーザーが WSCDeinstallProvider を呼び出すと、関数呼び出しは失敗し、lpErrno パラメーターでWSANO_RECOVERYが返されます。
Windows Vista または Windows Server 2008 を実行しているコンピューターの場合、ユーザー アカウント制御 (UAC) が原因でこの関数が失敗する可能性もあります。 この関数を含むアプリケーションが、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーによって実行された場合、 requestedExecutionLevel が requireAdministrator に設定されたマニフェスト ファイルでアプリケーションがマークされていない限り、この呼び出しは失敗します。 Windows Vista または Windows Server 2008 上のアプリケーションにこのマニフェスト ファイルがない場合、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしたユーザーは、この関数を成功させるために、拡張シェルで組み込みの Administrator (RunAs 管理者) としてアプリケーションを実行する必要があります。
この関数の呼び出し元は、サービス プロバイダーを完全にアンインストールするために必要な追加のファイルまたはサービス プロバイダー固有の構成情報を削除する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ws2spi.h |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |