WSCEnableNSProvider32 函式 (ws2spi.h)

WSCEnableNSProvider32函式會啟用或停用指定的 32 位命名空間提供者。 其目的是要讓使用者能夠變更命名空間提供者的狀態。

注意 此呼叫是嚴格 32 位版本的 WSCEnableNSProvider, 可用於 64 位電腦上。 它提供來允許 64 位進程存取 32 位目錄。

 

語法

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

參數

[in] lpProviderId

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

[in] fEnable

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

傳回值

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

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

備註

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

WSCEnableNSProvider32 是嚴格 32 位版本的 WSCEnableNSProvider。 在 64 位電腦上,所有呼叫並非特別 32 位 (,例如,不會以 「32 ) 」 結尾的所有函式都會在原生 64 位目錄上運作。 在 64 位電腦上執行的處理常式必須使用特定的 32 位函式呼叫,以在嚴格 32 位目錄上運作,並保留相容性。 特定 32 位呼叫的定義和語意與其原生對應專案相同。

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

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

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

規格需求

   
最低支援的用戶端 Windows Vista、Windows XP Professional x64 Edition [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008、Windows Server 2003 x64 Edition [僅限桌面應用程式]
目標平台 Windows
標頭 ws2spi.h
程式庫 Ws2_32.lib
Dll Ws2_32.dll

另請參閱

WSCEnableNSProvider

WSCEnumProtocols32

WSCInstallNameSpace32

WSCUnInstallNameSpace32

WSCWriteNameSpaceOrder32