Win32 API 日本語リファレンス
ホーム › Networking.WinSock › LPWSCENABLENSPROVIDER

LPWSCENABLENSPROVIDER

コールバック

シグネチャ

INT LPWSCENABLENSPROVIDER(
    GUID* lpProviderId,
    BOOL fEnable
);

パラメーター

フィールド型説明
lpProviderIdGUID*名前空間プロバイダーのグローバル一意識別子 (GUID) へのポインターです。
fEnableBOOLブール値です。TRUE の場合、プロバイダーはアクティブな状態に設定されます。FALSE の場合、プロバイダーは無効になり、クエリ操作やサービス登録には使用できなくなります。

公式ドキュメント

WSCEnableNSProvider 関数は、指定された名前空間プロバイダーの状態を変更します。これは、エンドユーザーが名前空間プロバイダーの状態を変更できるようにすることを目的としています。

戻り値

エラーが発生しなかった場合、 WSCEnableNSProvider 関数は NO_ERROR (ゼロ) を返します。それ以外の場合、関数が失敗すると SOCKET_ERROR を返し、 WSAGetLastError 関数を使用して適切なエラー コードを取得する必要があります。

エラー コード 意味
WSAEFAULT
lpProviderId パラメーターが、ユーザー アドレス空間の有効な部分にないメモリを指しています。
WSAEINVAL
指定された名前空間プロバイダーの識別子が無効です。
WSASYSCALLFAILURE
決して失敗しないはずのシステム呼び出しが失敗しました。
WSA_NOT_ENOUGH_MEMORY
利用できるメモリが不足していました。このエラーは、新しいカタログ エントリを割り当てるためのメモリが不足している場合に返されます。

解説(Remarks)

WSCEnableNSProvider 関数は、名前空間プロバイダーの状態を変更するために使用します。独立系ソフトウェア ベンダー (ISV) は通常、自社の名前空間プロバイダーを有効にするために他の ISV の名前空間プロバイダーを無効にすべきではありません。その選択はユーザーに委ねるべきです。

WSCEnableNSProvider 関数は、既に実行中のアプリケーションには影響しません。新しくインストールされた名前空間プロバイダーはアプリケーションからは見えず、名前空間プロバイダーの有効状態の変更も反映されません。 WSCEnableNSProvider の呼び出し後に起動されたアプリケーションには、変更が反映されます。

WSCEnableNSProvider 関数は、Administrators グループのメンバーとしてログオンしているユーザーのみが呼び出せます。Administrators グループのメンバーでないユーザーが WSCEnableNSProvider を呼び出した場合、この関数呼び出しは失敗します。

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

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)