次の方法で共有


GetServiceA 関数 (nspapi.h)

GetService 関数は、一連の既定の名前空間または指定された名前空間のコンテキストで、ネットワーク サービスに関する情報を取得します。 ネットワーク サービスは、その種類と名前で指定されます。 サービスに関する情報は、一連の NS_SERVICE_INFO データ構造として取得されます。

注意GetService 関数は、Windows Sockets 1.1 仕様に対する Microsoft 固有の拡張機能です。 この関数は廃止されています。 Windows Sockets 1.1 開発者の利便性のために、このリファレンス 資料が含まれています。
 
メモ Windows ソケット 2 で同等の機能 Protocol-Independent 名前解決 で詳しく説明されている機能です。
 

構文

INT GetServiceA(
  [in]           DWORD                dwNameSpace,
  [in]           LPGUID               lpGuid,
  [in]           LPSTR                lpServiceName,
  [in]           DWORD                dwProperties,
  [out]          LPVOID               lpBuffer,
  [in, out]      LPDWORD              lpdwBufferSize,
  [in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
);

パラメーター

[in] dwNameSpace

オペレーティング システムが指定したネットワーク サービスに関する情報を照会する名前空間または既定の名前空間のセット。

名前空間を指定するには、次のいずれかの定数を使用します。

価値 意味
NS_DEFAULT
既定の名前空間のセット。 オペレーティング システムは、このセット内の各名前空間に対してクエリを実行します。 既定の名前空間のセットには、通常、システムにインストールされているすべての名前空間が含まれます。 ただし、システム管理者は、セットから特定の名前空間を除外できます。 NS_DEFAULTは、ほとんどのアプリケーションが dwNameSpace使用する必要がある値です。
NS_DNS
ホスト名解決のためにインターネットで使用されるドメイン ネーム システム。
NS_NETBT
NETBIOS over TCP/IP レイヤー。 すべてのオペレーティング システムは、コンピューター名を NetBIOS に登録します。 この名前空間は、この登録を使用してコンピューター名を IP アドレスに解決するために使用されます。 NS_NETBTは WINS サーバーにアクセスして解決を実行できることに注意してください。
NS_SAP
NetWare サービス アドバタイズ プロトコル。 これにより、必要に応じて NetWare バインダーにアクセスできます。 NS_SAPは、サービスの登録を許可する動的名前空間です。
NS_TCPIP_HOSTS
<systemroot>\system32\drivers\etc\hosts ファイルでホスト名と IP アドレスを検索します。
NS_TCPIP_LOCAL
ローカル TCP/IP 名前解決メカニズム。ローカル ホスト名との比較や、ホストから IP アドレスへのマッピングのキャッシュ内のホスト名と IP アドレスの検索を含みます。
 

GetService を するほとんどの呼び出しでは、特別な値NS_DEFAULTを使用する必要があります。 これにより、クライアントは、インターネットワークで使用可能な名前空間を知らなくても取得できます。 システム管理者が名前空間へのアクセスを決定します。 名前空間は、クライアントが変更を認識しなくても行き来できます。

[in] lpGuid

ネットワーク サービスの種類を指定するグローバル一意識別子 (GUID) へのポインター。 Svcguid.h ヘッダー ファイルには、DNS および SAP 名前空間内の多くの既知のサービスからの GUID サービスの種類が含まれています。

Svcguid.h ヘッダー ファイルは、Winsock2.h ヘッダー ファイルには自動的に含まれません。

[in] lpServiceName

サービス名を一意に表す、0 で終わる文字列へのポインター。 たとえば、"MY SNA SERVER" などです。

[in] dwProperties

関数が取得するサービス情報を指定するビット フラグのセット。 PROP_ALL以外のこれらのビット フラグ定数はそれぞれ、SERVICE_INFO データ構造の特定のメンバーに対応します。 フラグが設定されている場合、この関数は、 *lpBufferに格納されているデータ構造の対応するメンバーに情報を入れます。 次のビット フラグが定義されています。

価値 意味
PROP_COMMENT
このフラグが設定されている場合、関数は、 *lpBufferに格納されているデータ構造の lpComment メンバーにデータを格納します。
PROP_LOCALE
このフラグが設定されている場合、関数は、 *lpBufferに格納されているデータ構造の lpLocale メンバーにデータを格納します。
PROP_DISPLAY_HINT
このフラグが設定されている場合、関数は、 *lpBufferに格納されているデータ構造の dwDisplayHint メンバーにデータを格納します。
PROP_VERSION
このフラグが設定されている場合、関数は 、 *lpBufferに格納されているデータ構造体の dwVersion メンバーにデータを格納します。
PROP_START_TIME
このフラグが設定されている場合、関数は、 *lpBufferに格納されているデータ構造体の dwTime メンバーにデータを格納します。
PROP_MACHINE
このフラグが設定されている場合、関数は、 *lpBufferに格納されているデータ構造の lpMachineName メンバーにデータを格納します。
PROP_ADDRESSES
このフラグが設定されている場合、関数は、 *lpBufferに格納されているデータ構造体の lpServiceAddress メンバーにデータを格納します。
PROP_SD
このフラグが設定されている場合、関数は、 *lpBufferに格納されているデータ構造体の ServiceSpecificInfo メンバーにデータを格納します。
PROP_ALL
このフラグが設定されている場合、関数は 、 *lpBufferに格納されているデータ構造のすべてのメンバーにデータを格納します。

[out] lpBuffer

NS_SERVICE_INFO 構造体と関連するサービス情報の配列を受け取るバッファーへのポインター。 各 NS_SERVICE_INFO 構造体には、特定の名前空間のコンテキストでサービス情報が含まれています。 dwNameSpace NS_DEFAULT場合、関数はバッファーに複数の構造体を格納します。それ以外の場合は、1 つの構造体だけが格納されます。

NS_SERVICE_INFO 構造体には、SERVICE_INFO 構造体が含まれています。 これらの SERVICE_INFO 構造体のメンバーには、dwProperties パラメーターに設定されているビット フラグに基づく有効なデータが含まれます。 dwPropertiesでメンバーの対応するビット フラグ 設定されていない場合、メンバーの値は未定義です。

この関数は、バッファーの先頭から開始して、NS_SERVICE_INFO 構造体を連続する配列に格納します。 格納されている SERVICE_INFO 構造体内のポインターは、NS_SERVICE_INFO 構造体の末尾とバッファーの末尾の間のバッファーに格納されている情報を指します。

[in, out] lpdwBufferSize

入力時に lpBufferが指すバッファーのサイズをバイト単位で格納する変数へのポインター 。 出力時に、この変数には、要求された情報を格納するために必要なバイト数が含まれます。 この出力値が入力値より大きい場合、バッファー サイズが不足しているため、関数は失敗しました。

[in, optional] lpServiceAsyncInfo

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

戻り値

関数が成功した場合、戻り値は *lpBufferに格納されている NS_SERVICE_INFO 構造体の数です。 ゼロは、構造体が格納されなかったことを示します。

関数が失敗した場合、戻り値は SOCKET_ERROR ( – 1) になります。 拡張エラー情報を取得するには、GetLastErrorを呼び出します。これは、次のいずれかの拡張エラー値を返します。

エラー コード 意味
ERROR_INSUFFICIENT_BUFFER
lpBuffer 指すバッファーが小さすぎて、要求されたすべての情報を受信できません。 *lpdwBufferSizeで返される値と同じ大きさのバッファーを使用して関数を呼び出します。
ERROR_SERVICE_NOT_FOUND
指定したサービスが見つからなかったか、指定した名前空間が使用されていません。 この場合、関数の戻り値は 0 です。

備考

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー nspapi.h
ライブラリ Mswsock.lib
DLL Mswsock.dll

関連項目

NS_SERVICE_INFO

SERVICE_INFO

SetService の

Winsock Functions

Winsock リファレンス