次の方法で共有


LPNSPGETSERVICECLASSINFO コールバック関数 (ws2spi.h)

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

構文

LPNSPGETSERVICECLASSINFO Lpnspgetserviceclassinfo;

INT Lpnspgetserviceclassinfo(
  [in]      LPGUID lpProviderId,
  [in, out] LPDWORD lpdwBufSize,
  [in, out] LPWSASERVICECLASSINFOW lpServiceClassInfo
)
{...}

パラメーター

[in] lpProviderId

サービス クラス スキーマの取得元となる特定の名前空間プロバイダーの GUID へのポインター。

[in, out] lpdwBufSize

入力時に、 lpServiceClassInfo パラメーターによって指されるバッファーのサイズ (バイト単位)。

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

[in, out] lpServiceClassInfo

名前空間固有のマッピング情報へのサービス クラスを含む WSASERVICECLASSINFOW 構造体へのポインターを返します。 返される WSASERVICECLASSINFOW レコードを示すには、lpServiceClassId パラメーターを入力する必要があります。

戻り値

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

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

解説

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

要件

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

関連項目

NSPInstallServiceClass

NSPLookupServiceBegin

NSPRemoveServiceClass

NSPSetService

WSAGetServiceClassInfo

WSAGetServiceClassNameByClassId

WSASERVICECLASSINFOW

WSASetLastError