SetServiceW 関数 (nspapi.h)

SetService 関数は、1 つ以上の名前空間内のネットワーク サービスをレジストリに登録または削除します。 関数は、1 つ以上の名前空間内のネットワーク サービスの種類を追加または削除することもできます。

メモSetService 関数は廃止されました。 「プロトコルに依存しない名前解決」で詳しく説明されている関数は、Windows ソケット 2 で同等の機能を提供します。 Windows Sockets 1.1 開発者の便宜上、参考資料は次のとおりです。
 

構文

INT SetServiceW(
  [in]           DWORD                dwNameSpace,
  [in]           DWORD                dwOperation,
  [in]           DWORD                dwFlags,
  [in]           LPSERVICE_INFOW      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 ビット フラグを 1 に設定して呼び出されたすべての操作を実行します。
SERVICE_ADD_TYPE
名前空間にサービスの種類を追加します。

この操作では、lpServiceInfo が指すSERVICE_INFO構造体の ServiceSpecificInfo メンバーを使用して、SERVICE_TYPE_INFO_ABS構造体を渡します。 SERVICE_INFO構造体の ServiceType メンバーも設定する必要があります。 その他 のSERVICE_INFO メンバーは無視されます。

SERVICE_DELETE_TYPE
名前空間から、SERVICE_ADD_TYPE操作を指定する前の呼び出しによって追加されたサービスの種類を削除します。

[in] dwFlags

関数の操作を変更するビット フラグのセット。 次のビット フラグの 1 つ以上を設定できます。

意味
SERVICE_FLAG_DEFER
このビット フラグは、操作がSERVICE_REGISTERまたはSERVICE_DEREGISTERの場合にのみ有効です。

このビット フラグが 1 で有効な場合、名前空間プロバイダーは、SERVICE_FLUSH操作が要求されるまで、登録または登録解除の操作を延期する必要があります。

SERVICE_FLAG_HARD
このビット フラグは、操作がSERVICE_REGISTERまたはSERVICE_DEREGISTERの場合にのみ有効です。

このビット フラグが 1 で有効な場合、名前空間プロバイダーは、操作の実行時に関連する永続ストア情報を更新します。

たとえば、永続的ストアを使用する名前空間で操作の登録解除が必要な場合、名前空間プロバイダーは関連する永続ストア情報を削除します。

[in] lpServiceInfo

ネットワーク サービスまたはサービスの種類に関する情報を含む SERVICE_INFO 構造体へのポインター。

[in, optional] lpServiceAsyncInfo

将来利用するために予約されています。 NULL に設定する必要があります。

[out] lpdwStatusFlags

関数の状態情報を受け取るビット フラグのセット。 次のビット フラグが定義されています。

意味
SET_SERVICE_ PARTIAL_SUCCESS
1 つ以上の名前空間プロバイダーが、要求された操作を正常に実行できませんでした。

戻り値

関数が失敗した場合、戻り値はSOCKET_ERROR。 詳細なエラー情報を得るには、GetLastError を呼び出します。 GetLastError は 、次の拡張エラー値を返すことができます。

エラー コード 意味
ERROR_ALREADY_登録済み
関数は、既に登録されているサービスを登録しようとしました。

注釈

注意

nspapi.h ヘッダーは、SetService をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー nspapi.h
Library Mswsock.lib
[DLL] Mswsock.dll

こちらもご覧ください

GetService

SERVICE_INFO

SERVICE_TYPE_INFO_ABS

Winsock 関数

Winsock リファレンス