WSCInstallNameSpace 関数 (ws2spi.h)
WSCInstallNameSpace 関数は名前空間プロバイダーをインストールします。 複数の名前空間をサポートできるプロバイダーの場合、サポートされている名前空間ごとにこの関数を呼び出す必要があります。また、毎回一意のプロバイダー識別子を指定する必要があります。
構文
INT WSCInstallNameSpace(
[in] LPWSTR lpszIdentifier,
[in] LPWSTR lpszPathName,
[in] DWORD dwNameSpace,
[in] DWORD dwVersion,
[in] LPGUID lpProviderId
);
パラメーター
[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 によって生成される必要があります。
戻り値
エラーが発生しない場合、 WSCInstallNameSpace 関数は NO_ERROR (ゼロ) を返します。 それ以外の場合は、関数が失敗した場合に SOCKET_ERROR を返し、 WSAGetLastError 関数を使用して適切なエラー コードを取得する必要があります。
エラー コード | 意味 |
---|---|
呼び出し元ルーチンには、名前空間をインストールするための十分な特権がありません。 | |
1 つ以上の引数が無効です。 | |
回復不可能なエラーが発生しました。 このエラーは、プロバイダーが既にインストールされている、ユーザーが Winsock レジストリに書き込むのに必要な管理特権がない、カタログ エントリを作成またはインストールするときにエラーが発生した、など、いくつかの条件で返されます。 | |
失敗しないシステム呼び出しが失敗しました。 | |
メモリが不足していました。 このエラーは、新しいカタログ エントリを割り当てるメモリが不足している場合に返されます。 |
解説
名前空間構成関数は、既に実行されているアプリケーションには影響しません。 新しくインストールされた名前空間プロバイダーは、アプリケーションには表示されず、名前空間プロバイダーのアクティブ化状態の変更も表示されません。 WSCInstallNameSpace の呼び出し後に起動されたアプリケーションには、変更が表示されます。
WSCInstallNameSpace 関数は、Administrators グループのメンバーとしてログオンしているユーザーのみが呼び出すことができます。 Administrators グループのメンバーではないユーザーが WSCInstallNameSpace を呼び出すと、関数呼び出しは失敗します。 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 |