WSCInstallNameSpaceEx 関数 (ws2spi.h)
WSCInstallNameSpaceEx 関数は名前空間プロバイダーをインストールします。 複数の名前空間をサポートできるプロバイダーの場合、サポートされている名前空間ごとにこの関数を呼び出す必要があります。また、毎回一意のプロバイダー識別子を指定する必要があります。
構文
INT WSCInstallNameSpaceEx(
[in] LPWSTR lpszIdentifier,
[in] LPWSTR lpszPathName,
[in] DWORD dwNameSpace,
[in] DWORD dwVersion,
[in] LPGUID lpProviderId,
[in] LPBLOB lpProviderSpecific
);
パラメーター
[in] lpszIdentifier
lpProviderId パラメーターで渡されるグローバル一意識別子 (GUID) に関連付けられているプロバイダーを識別する文字列へのポインター。
[in] lpszPathName
プロバイダー DLL への読み込みパスを含む Unicode 文字列へのポインター。 この文字列は、パス解決の通常の規則を観察し、埋め込み環境文字列 ( %SystemRoot%など) を含めることができます。 このような環境文字列は、Ws2_32.dll がアプリケーションの代わりにプロバイダー DLL を読み込む必要がある場合に展開されます。 埋め込まれた環境文字列が展開されると、Ws2_32.dll は結果の文字列を LoadLibrary 関数に渡し、プロバイダーをメモリに読み込みます。 詳細については、「 LoadLibrary」を参照してください。
[in] dwNameSpace
このプロバイダーでサポートされている名前空間。
[in] dwVersion
プロバイダーのバージョン番号。
[in] lpProviderId
プロバイダーの GUID へのポインター。 この GUID は、Uuidgen.exe によって生成される必要があります。
[in] lpProviderSpecific
名前空間エントリに関連付けられているプロバイダー固有のデータ BLOB。
戻り値
エラーが発生しない場合、 WSCInstallNameSpaceEx 関数は NO_ERROR (ゼロ) を返します。 それ以外の場合は、関数が失敗した場合に SOCKET_ERROR を返し、 WSAGetLastError 関数を使用して適切なエラー コードを取得する必要があります。
エラー コード | 意味 |
---|---|
呼び出し元ルーチンには、名前空間をインストールするための十分な特権がありません。 | |
1 つ以上の引数が無効です。 | |
回復不可能なエラーが発生しました。 このエラーは、プロバイダーが既にインストールされている、ユーザーが Winsock レジストリに書き込むのに必要な管理特権がない、カタログ エントリを作成またはインストールするときにエラーが発生した、など、いくつかの条件で返されます。 | |
失敗しないシステム呼び出しが失敗しました。 | |
メモリが不足していました。 このエラーは、新しいカタログ エントリを割り当てるメモリが不足している場合に返されます。 |
注釈
名前空間構成関数は、既に実行されているアプリケーションには影響しません。 新しくインストールされたネームスペース プロバイダーは、アプリケーションに対して表示されず、ネームスペース プロバイダーのアクティブ化状態の変更も表示されません。 WSCInstallNameSpaceEx の呼び出し後に起動されたアプリケーションには、変更が表示されます。
lpProviderInfo パラメーターで渡された名前空間エントリに関連付けられているプロバイダー固有のデータ BLOB は、WSAEnumNameSpaceProvidersEx 関数を使用してクエリを実行できます。
現在、 lpProviderInfo パラメーターを使用する Windows に含まれる名前空間プロバイダーは、NS_EMAIL プロバイダーのみです。 NS_EMAIL名前空間プロバイダーの lpProviderInfo パラメーターが指すバッファーの形式は、 NAPI_PROVIDER_INSTALLATION_BLOB 構造体です。
WSCInstallNameSpaceEx 関数は、Administrators グループのメンバーとしてログオンしているユーザーのみが呼び出すことができます。 Administrators グループのメンバーではないユーザーが WSCInstallNameSpaceEx を呼び出すと、関数呼び出しは失敗します。 Windows Vista または Windows Server 2008 で実行されているコンピューターの場合、この関数はユーザー アカウント制御 (UAC) のために失敗する可能性もあります。 この関数を含むアプリケーションが、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーによって実行された場合、 requestedExecutionLevel が requireAdministrator に設定されたマニフェスト ファイルでアプリケーションがマークされていない限り、この呼び出しは失敗します。 Windows Vista または Windows Server 2008 上のアプリケーションにこのマニフェスト ファイルがない場合、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしたユーザーは、この関数を成功させるために、拡張シェルで組み込みの Administrator (RunAs 管理者) としてアプリケーションを実行する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ws2spi.h |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |