WPUQueryBlockingCallback 関数 (ws2spi.h)
WPUQueryBlockingCallback 関数は、ブロッキング操作のサービス中にサービス プロバイダーが定期的に呼び出すコールバック関数へのポインターを返します。
構文
int WPUQueryBlockingCallback(
[in] DWORD dwCatalogEntryId,
[out] LPBLOCKINGCALLBACK *lplpfnCallback,
[out] PDWORD_PTR lpdwContext,
[out] LPINT lpErrno
);
パラメーター
[in] dwCatalogEntryId
呼び出し元サービス プロバイダーを識別する記述子。
[out] lplpfnCallback
ブロッキング コールバック関数を受け取るポインター。
[out] lpdwContext
サービス プロバイダーがブロッキング コールバックに渡す必要があるコンテキスト値を受け取るポインター。
[out] lpErrno
エラー コードへのポインター。
戻り値
エラーが発生しない場合、 WPUQueryBlockingCallback は 0 を返し、 lpfnCallback にブロックコールバック関数へのポインターを格納し、関連するコンテキスト値を lpdwContext に格納します。 それ以外の場合はSOCKET_ERRORを返し、 lpErrno で特定のエラー コードを使用できます。
エラー コード | 意味 |
---|---|
lpfnCallback パラメーターまたは lpdwContext パラメーターが、プロセス・アドレス・スペースの有効な部分ではありません。 | |
dwCatalogEntryId パラメーターが無効です。 |
注釈
WPUQueryBlockingCallback 関数は、ブロック操作中に定期的に呼び出される lpfnCallback のコールバック関数へのポインターを返します。 この関数は、ブロック コールバックに渡される lpdwContext のコンテキスト値も返します。
Windows では、この関数は lpfnCallback で null を返すことができます。これは、ユーザー定義ブロッキング フックがインストールされていないことを示します。 この場合、サービス プロバイダーはネイティブ Windows 同期オブジェクトを使用してブロックを実装する必要があります。
LPBLOCKINGCALLBACK は次のように定義されます。
typedef BOOL ( CALLBACK FAR * LPBLOCKINGCALLBACK )( DWORD dwContext );
サービス プロバイダーがブロック操作の完了を待機し続ける場合、ブロッキング コールバックは TRUE を 返します。 ブロック操作が WSPCancelBlockingCall で取り消された場合、FALSE が返されます。
アドレスの欠落しているコンポーネントは、可能であれば既定で妥当な値になります。 たとえば、不足しているポート番号は既定で 0 になります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ws2spi.h |