WSCEnableNSProvider 函式 (ws2spi.h)

WSCEnableNSProvider 函式會變更指定命名空間提供者的狀態。 其目的是要讓用戶能夠變更命名空間提供者的狀態。

語法

INT WSCEnableNSProvider(
  [in] LPGUID lpProviderId,
  [in] BOOL   fEnable
);

參數

[in] lpProviderId

命名空間提供者的全域唯一標識符指標 (GUID) 。

[in] fEnable

布爾值,如果 為 TRUE,則提供者會設定為使用中狀態。 如果 為 FALSE,則會停用提供者,且無法用於查詢作業或服務註冊。

傳回值

如果沒有發生錯誤, WSCEnableNSProvider 函式會傳回 NO_ERROR (零) 。 否則,如果函式失敗,則會傳回 SOCKET_ERROR ,而且您必須使用 WSAGetLastError 函式擷取適當的錯誤碼。

錯誤碼 意義
WSAEFAULT
lpProviderId 參數指向不在使用者位址空間有效部分的記憶體。
WSAEINVAL
指定的命名空間提供者識別碼無效。
WSASYSCALLFAILURE
不應該失敗的系統呼叫失敗。
WSA_NOT_ENOUGH_MEMORY
記憶體不足。 當記憶體不足而無法配置新的目錄專案時,就會傳回此錯誤。

備註

WSCEnableNSProvider 函式旨在用來變更命名空間提供者的狀態。 獨立軟體廠商 (ISV) 通常不應該取消啟用另一個 ISV 命名空間提供者,才能啟動自己的。 選擇應保留給使用者。

WSCEnableNSProvider 函式不會影響已經執行的應用程式。 應用程式看不到新安裝的命名空間提供者,也不會顯示命名空間提供者啟用狀態的變更。 呼叫 WSCEnableNSProvider 之後啟動的應用程式將會看到變更。

只有以 Administrators 群組成員身分登入的使用者才能呼叫 WSCEnableNSProvider 函式。 如果 WSCEnableNSProvider 是由不是 Administrators 群組成員的使用者呼叫,函式呼叫將會失敗。

對於執行 Windows Vista 或 Windows Server 2008 的電腦,此函式也可能因為使用者帳戶控制 (UAC) 而失敗。 如果包含此函式的應用程式是由使用者以系統管理員以外的系統管理員群組成員身分登入來執行,除非應用程式已在指令清單檔中標示為 requestedExecutionLevel 設定為 requireAdministrator,否則此呼叫將會失敗。 如果 Windows Vista 或 Windows Server 2008 上的應用程式缺少此指令清單檔案,則使用者以系統管理員以外的系統管理員群組成員身分登入,則必須在增強的殼層中執行應用程式,因為內建系統管理員 (RunAs 系統管理員) ,此函式才能成功。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 ws2spi.h
程式庫 Ws2_32.lib
Dll Ws2_32.dll

另請參閱

WSCEnumProtocols

WSCInstallNameSpace

WSCUnInstallNameSpace

WSCWriteNameSpaceOrder