LPWSCUNINSTALLNAMESPACE
コールバックシグネチャ
INT LPWSCUNINSTALLNAMESPACE(
GUID* lpProviderId
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| lpProviderId | GUID* | アンインストールする名前空間プロバイダーのグローバル一意識別子 (GUID) へのポインターです。 |
公式ドキュメント
WSCUnInstallNameSpace 関数は、指定された名前空間プロバイダーをアンインストールします。
戻り値
エラーが発生しなかった場合、 WSCUnInstallNameSpace は NO_ERROR (ゼロ) を返します。それ以外の場合、関数が失敗すると SOCKET_ERROR を返し、 WSAGetLastError 関数を使用して適切なエラーコードを取得する必要があります。
| エラーコード | 意味 |
|---|---|
| lpProviderId パラメーターが、ユーザーアドレス空間の有効な部分にないメモリを指しています。 | |
| 指定された名前空間プロバイダーの識別子が無効です。 | |
| 決して失敗しないはずのシステム呼び出しが失敗しました。 | |
| 使用できるメモリが不足していました。このエラーは、新しいカタログエントリを割り当てるためのメモリが不足している場合に返されます。 |
解説(Remarks)
名前空間の構成を行う関数は、既に実行中のアプリケーションには影響しません。新しくインストールされた名前空間プロバイダーはそれらのアプリケーションからは見えず、名前空間プロバイダーの有効化状態の変更も反映されません。 WSCUnInstallNameSpace の呼び出し後に起動されたアプリケーションには、変更が反映されます。
成功した場合、WSCUnInstallNameSpace は WSAProviderConfigChange を呼び出して変更の通知に登録しているすべてのアプリケーションに通知しようとします。
WSCUnInstallNameSpace 関数を呼び出せるのは、Administrators グループのメンバーとしてログオンしているユーザーだけです。Administrators グループのメンバーでないユーザーが WSCUnInstallNameSpace を呼び出した場合、この関数呼び出しは失敗し、lpErrno パラメーターに WSANO_RECOVERY が返されます。
Windows Vista または Windows Server 2008 が動作しているコンピューターでは、ユーザーアカウント制御 (UAC) が原因でこの関数が失敗することもあります。この関数を含むアプリケーションを、ビルトインの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーが実行した場合、そのアプリケーションのマニフェストファイルで requestedExecutionLevel が requireAdministrator に設定されていない限り、この呼び出しは失敗します。Windows Vista または Windows Server 2008 でアプリケーションにこのマニフェストファイルが無い場合、ビルトインの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーがこの関数を成功させるには、ビルトインの Administrator として昇格したシェル (管理者として実行) でアプリケーションを実行する必要があります。
この関数の呼び出し側は、サービスプロバイダーを完全にアンインストールするために必要な追加のファイルやサービスプロバイダー固有の構成情報を、自分で削除する必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)