SetServiceA 函式 (nspapi.h)
SetService 函式會註冊或從登錄中移除一或多個命名空間內的網路服務。 函式也可以新增或移除一或多個命名空間內的網路服務類型。
語法
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
命名空間或一組預設命名空間,函式將在其內運作。
使用下列其中一個常數來指定命名空間。
[in] dwOperation
函式將執行的作業。 使用下列其中一個值來指定作業:
價值 | 意義 |
---|---|
|
向命名空間註冊網路服務。 這項作業可以搭配SERVICE_FLAG_DEFER和SERVICE_FLAG_HARD位旗標使用。 |
|
從登錄中移除命名空間中的網路服務。 這項作業可以搭配SERVICE_FLAG_DEFER和SERVICE_FLAG_HARD位旗標使用。 |
|
執行任何呼叫的作業,並將 SERVICE_FLAG_DEFER 位旗標設定為一個。 |
|
將服務類型新增至命名空間。
針對此作業,請使用 ServiceSpecificInfoSERVICE_INFO 結構的成員,lpServiceInfo 來傳遞 SERVICE_TYPE_INFO_ABS 結構。 您也必須設定 SERVICE_INFO 結構的 ServiceType 成員。 會忽略其他 SERVICE_INFO 成員。 |
|
從命名空間中移除先前指定SERVICE_ADD_TYPE作業的呼叫所新增的服務類型。 |
[in] dwFlags
一組修改函式作業的位旗標。 您可以設定下列一或多個位旗標:
[in] lpServiceInfo
SERVICE_INFO 結構的指標,其中包含網路服務或服務類型的相關信息。
[in, optional] lpServiceAsyncInfo
保留供日後使用。 必須設定為 NULL。
[out] lpdwStatusFlags
接收函式狀態資訊的一組位旗標。 定義下欄位旗標:
價值 | 意義 |
---|---|
|
一或多個命名空間提供者無法順利執行要求的作業。 |
傳回值
如果函式失敗,傳回值會SOCKET_ERROR。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 GetLastError 可以傳回下列擴充錯誤值。
錯誤碼 | 意義 |
---|---|
|
函式嘗試註冊已註冊的服務。 |
言論
注意
nspapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetService 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | nspapi.h |
連結庫 | Mswsock.lib |
DLL | Mswsock.dll |