Win32 API 日本語リファレンス
ホーム › Networking.WinSock › LPNSPGETSERVICECLASSINFO

LPNSPGETSERVICECLASSINFO

コールバック

シグネチャ

INT LPNSPGETSERVICECLASSINFO(
    GUID* lpProviderId,
    DWORD* lpdwBufSize,
    WSASERVICECLASSINFOW* lpServiceClassInfo
);

パラメーター

フィールド型説明
lpProviderIdGUID*サービスクラスのスキーマの取得元となる、特定の名前空間プロバイダーの GUID へのポインター。
lpdwBufSizeDWORD*

入力時は、lpServiceClassInfo パラメーターが指すバッファーのサイズ (バイト単位)。

出力時は、関数が失敗してエラーが WSAEFAULT であった場合、このパラメーターにはレコードを取得するために必要な、lpServiceClassInfo パラメーターが指すバッファーの最小サイズ (バイト単位) が格納されます。

lpServiceClassInfoWSASERVICECLASSINFOW*サービスクラスと名前空間固有の情報との対応付けを格納した WSASERVICECLASSINFOW 構造体へのポインターを返します。どの WSASERVICECLASSINFOW レコードを返すかを示すため、lpServiceClassId パラメーターを設定しておく必要があります。

公式ドキュメント

NSPGetServiceClassInfo 関数は、名前空間プロバイダーに関連するすべてのクラス情報 (スキーマ) を取得します。この呼び出しでは、SAP の接続情報や SAP または TCP のポート情報など、サービスのすべてのインスタンスに共通する名前空間固有の情報を取得します。

戻り値

エラーが発生しない場合、NSPGetServiceClassInfo 関数は NO_ERROR (ゼロ) を返します。それ以外の場合は SOCKET_ERROR (–1) が返され、名前空間プロバイダーは WSASetLastError を使用して適切なエラーコードを設定する必要があります。

エラーコード 意味
WSA_NOT_ENOUGH_MEMORY
この操作を実行するために使用できるメモリが足りません。
WSAEACCES
呼び出し元のルーチンには、この情報にアクセスするための十分な権限がありません。
WSAEFAULT
lpServiceClass パラメーターが指すバッファーが小さすぎて、WSASERVICECLASSINFOW 構造体を格納できませんでした。アプリケーションはより大きなバッファーを渡す必要があります。
WSAEINVAL
指定されたサービスクラス識別子または名前空間プロバイダー識別子が無効です。このエラーは、lpProviderId、lpServiceClassId、lpdwBufSize、または lpServiceClassInfo の各パラメーターが **NULL** の場合に返されます。
WSAEOPNOTSUPP
この操作はサポートされていません。このエラーは、名前空間プロバイダーがこの関数を実装していない場合に返されます。
WSANO_DATA
要求された名前は有効ですが、要求された種類のデータは見つかりませんでした。
WSATYPE_NOT_FOUND
指定されたクラスが見つかりませんでした。

解説(Remarks)

W2_32.dll は、この関数を使用して WSAGetServiceClassNameByClassId 関数を実装するほか、 NSPLookupServiceBegin および NSPSetService の各関数に渡される名前空間固有の情報を取得します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)