共用方式為


SetServiceA 函式 (nspapi.h)

SetService 函式會註冊或從登錄中移除一或多個命名空間內的網路服務。 函式也可以新增或移除一或多個命名空間內的網路服務類型。

NoteSetService 函式已經過時。 Protocol-Independent 名稱解析 中詳述的函式在 Windows Sockets 2 中提供對等的功能。 為了方便 Windows Sockets 1.1 開發人員,參考數據如下所示。
 

語法

INT SetServiceA(
  [in]           DWORD                dwNameSpace,
  [in]           DWORD                dwOperation,
  [in]           DWORD                dwFlags,
  [in]           LPSERVICE_INFOA      lpServiceInfo,
  [in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
  [out]          LPDWORD              lpdwStatusFlags
);

參數

[in] dwNameSpace

命名空間或一組預設命名空間,函式將在其內運作。

使用下列其中一個常數來指定命名空間。

價值 意義
NS_DEFAULT
一組預設命名空間。 函式會查詢此集合中的每個命名空間。 預設命名空間集合通常包含安裝在系統上的所有命名空間。 不過,系統管理員可以從集合中排除特定命名空間。 NS_DEFAULT是大部分應用程式應該用於 dwNameSpace的值。
NS_DNS
因特網中用來解析主機名稱的域名系統。
NS_NDS
NetWare 4 提供者。
NS_NETBT
透過 TCP/IP 層的 NetBIOS。 所有 Windows 系統都會向 NetBIOS 註冊其電腦名稱。 此命名空間可用來將計算機名稱轉換成使用此註冊的IP位址。
NS_SAP
NetWare 服務廣告通訊協定。 如果適當的話,這可以存取 NetWare 系結。 NS_SAP是一個動態命名空間,可讓您註冊服務。
NS_TCPIP_HOSTS
<systemroot>\system32\drivers\etc\posts 檔案中的查閱值。
NS_TCPIP_LOCAL
本機 TCP/IP 名稱解析機制,包括對主機快取中本機主機名和查閱值與 IP 位址對應的比較。

[in] dwOperation

函式將執行的作業。 使用下列其中一個值來指定作業:

價值 意義
SERVICE_REGISTER
向命名空間註冊網路服務。 這項作業可以搭配SERVICE_FLAG_DEFER和SERVICE_FLAG_HARD位旗標使用。
SERVICE_DEREGISTER
從登錄中移除命名空間中的網路服務。 這項作業可以搭配SERVICE_FLAG_DEFER和SERVICE_FLAG_HARD位旗標使用。
SERVICE_FLUSH
執行任何呼叫的作業,並將 SERVICE_FLAG_DEFER 位旗標設定為一個。
SERVICE_ADD_TYPE
將服務類型新增至命名空間。

針對此作業,請使用 ServiceSpecificInfoSERVICE_INFO 結構的成員,lpServiceInfo 來傳遞 SERVICE_TYPE_INFO_ABS 結構。 您也必須設定 SERVICE_INFO 結構的 ServiceType 成員。 會忽略其他 SERVICE_INFO 成員。

SERVICE_DELETE_TYPE
從命名空間中移除先前指定SERVICE_ADD_TYPE作業的呼叫所新增的服務類型。

[in] dwFlags

一組修改函式作業的位旗標。 您可以設定下列一或多個位旗標:

價值 意義
SERVICE_FLAG_DEFER
只有當作業是SERVICE_REGISTER或SERVICE_DEREGISTER時,這個位旗標才有效。

如果這個位旗標是一個,而且有效,命名空間提供者應該延遲註冊或取消註冊作業,直到要求SERVICE_FLUSH作業為止。

SERVICE_FLAG_HARD
只有當作業是SERVICE_REGISTER或SERVICE_DEREGISTER時,這個位旗標才有效。

如果這個位旗標是一個,而且有效,命名空間提供者會在執行作業時更新任何相關的永續性存放區資訊。

例如:如果作業涉及在使用永續性存放區的命名空間中取消註冊,命名空間提供者會移除相關的永續性存放區資訊。

[in] lpServiceInfo

SERVICE_INFO 結構的指標,其中包含網路服務或服務類型的相關信息。

[in, optional] lpServiceAsyncInfo

保留供日後使用。 必須設定為 NULL

[out] lpdwStatusFlags

接收函式狀態資訊的一組位旗標。 定義下欄位旗標:

價值 意義
SET_SERVICE_ PARTIAL_SUCCESS
一或多個命名空間提供者無法順利執行要求的作業。

傳回值

如果函式失敗,傳回值會SOCKET_ERROR。 若要取得擴充的錯誤資訊,請呼叫 GetLastErrorGetLastError 可以傳回下列擴充錯誤值。

錯誤碼 意義
已註冊 ERROR_ALREADY_
函式嘗試註冊已註冊的服務。

言論

注意

nspapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetService 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 nspapi.h
連結庫 Mswsock.lib
DLL Mswsock.dll

另請參閱

GetService

SERVICE_INFO

SERVICE_TYPE_INFO_ABS

Winsock 函式

Winsock 參考