WSCInstallNameSpace 函式 (ws2spi.h)
WSCInstallNameSpace函式會安裝命名空間提供者。 對於能夠支援多個命名空間的提供者,每個支援的命名空間都必須呼叫此函式,而且每次都必須提供唯一提供者識別碼。
語法
INT WSCInstallNameSpace(
[in] LPWSTR lpszIdentifier,
[in] LPWSTR lpszPathName,
[in] DWORD dwNameSpace,
[in] DWORD dwVersion,
[in] LPGUID lpProviderId
);
參數
[in] lpszIdentifier
字串的指標,識別與 lpProviderId 參數中傳遞之 GUI) D (全域唯一識別碼相關聯的提供者。
[in] lpszPathName
Unicode 字串的指標,其中包含提供者 DLL 的載入路徑。 此字串會觀察路徑解析的一般規則,而且可以包含內嵌的環境字串 (,例如 %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 函式擷取適當的錯誤碼。
錯誤碼 | 意義 |
---|---|
呼叫常式沒有足夠的許可權可安裝命名空間。 | |
一或多個引數無效。 | |
發生無法復原的錯誤。 此錯誤會在下列幾個情況下傳回:提供者已安裝、使用者缺少寫入 Winsock 登錄所需的系統管理許可權,或建立或安裝類別目錄專案時發生失敗。 | |
應該永遠不會失敗的系統呼叫失敗。 | |
記憶體不足。 當記憶體不足而無法配置新的目錄專案時,就會傳回此錯誤。 |
備註
namespace-configuration 函式不會影響已執行的應用程式。 應用程式將不會看到新安裝的命名空間提供者,也不會顯示命名空間提供者啟用狀態中的變更。 呼叫 WSCInstallNameSpace 之後啟動的應用程式將會看到變更。
WSCInstallNameSpace函式只能由以 Administrators 群組成員身分登入的使用者呼叫。 如果 WSCInstallNameSpace 是由不是 Administrators 群組成員的使用者呼叫,則函式呼叫將會失敗。 對於在 Windows Vista 或 Windows Server 2008 上執行的電腦,此函式也會因為使用者帳戶控制 (UAC) 而失敗。 如果包含此函式的應用程式是由以內建系統管理員以外的 Administrators 群組成員身分登入的使用者所執行,除非應用程式已在資訊清單檔案中標示 為 requestedExecutionLevel 設定為 requireAdministrator,否則此呼叫將會失敗。 如果 Windows Vista 或 Windows Server 2008 上的應用程式缺少此資訊清單檔案,則以系統管理員群組成員身分登入的使用者,而不是內建系統管理員,則必須在增強殼層中執行應用程式,因為內建的 Administrator (RunAs 系統管理員) ,此函式才能成功。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | ws2spi.h |
程式庫 | Ws2_32.lib |
Dll | Ws2_32.dll |