次の方法で共有


WSAGetServiceClassNameByClassIdA 関数 (winsock2.h)

WSAGetServiceClassNameByClassId 関数は、指定した型に関連付けられているサービスの名前を取得します。 この名前は、FTP や SNA などの汎用サービス名であり、そのサービスの特定のインスタンスの名前ではありません。

構文

INT WSAAPI WSAGetServiceClassNameByClassIdA(
  [in]      LPGUID  lpServiceClassId,
  [out]     LPSTR   lpszServiceClassName,
  [in, out] LPDWORD lpdwBufferLength
);

パラメーター

[in] lpServiceClassId

サービス クラスの GUID へのポインター。

[out] lpszServiceClassName

サービス名へのポインター。

[in, out] lpdwBufferLength

入力時に、lpszServiceClassNameによって返されるバッファー 長さ (文字単位)。 出力時に、lpszServiceClassNameにコピーされたサービス名の長さ (文字数)。

戻り値

WSAGetServiceClassNameByClassId 関数は、成功した場合は 0 の値を返します。 それ以外の場合は、SOCKET_ERROR値が返され、WSAGetLastError呼び出すことによって特定のエラー番号を取得できます。

エラー コード 意味
WSA_INVALID_PARAMETER
指定 lpServiceClassId パラメーターが無効です。
WSA_NOT_ENOUGH_MEMORY
操作を実行するためのメモリが不足していました。
WSAEACCES の
呼び出し元ルーチンには、情報にアクセスするための十分な特権がありません。
WSAEFAULT の
lpszServiceClassName 指す指定されたバッファーが小さすぎます。 より大きなバッファーを渡します。
WSAENOBUFS の
使用できるバッファー領域がありません。
WSAEOPNOTSUPP の
この操作は、参照されるオブジェクトの種類ではサポートされていません。 このエラーは、サービス クラス情報の取得をサポートしていない一部の名前空間プロバイダーによって返されます。
WSANO_DATA
lpServiceClassId は有効ですが、要求された型のデータが見つかりませんでした。
WSANOTINITIALIZED の
WS2_32.DLLが初期化されていません。 アプリケーションは、Windows ソケット関数を呼び出す前 WSAStartup を最初に呼び出す必要があります。

備考

手記

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

必要条件

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

関連項目

WSAStartup の

Winsock Functions

Winsock リファレンス