ws2spi.h) ws2spi.h (WPUQueryBlockingCallback 函式

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 會傳回零,並將封鎖回呼函式的指標儲存在 lpfnCallback 中,並將相關聯的內容值儲存在 lpdwContext 中。 否則,它會傳回SOCKET_ERROR,而且 lpErrno 中提供特定的錯誤碼。

錯誤碼 意義
WSAEFAULT
lpfnCallbacklpdwContext 參數不是進程地址空間的有效部分。
WSAEINVAL
dwCatalogEntryId 參數無效。
 
 

備註

WPUQueryBlockingCallback 函式會傳回 lpfnCallback 中回呼函式的指標,以在封鎖作業期間定期叫用。 此函式也會傳回 lpdwContext 中要傳遞至封鎖回呼的內容值。

在 Windows 中,此函式可以在 lpfnCallback 中傳回 null,表示未安裝任何使用者定義的封鎖勾點。 在此情況下,服務提供者應該使用原生 Windows 同步處理對象來實作封鎖。

LPBLOCKINGCALLBACK 的定義如下:

typedef BOOL ( CALLBACK FAR * LPBLOCKINGCALLBACK )( DWORD dwContext );

如果服務提供者要繼續等候封鎖作業完成,則封鎖回呼會傳回 TRUE 。 如果使用 WSPCancelBlockingCall 取消封鎖作業,則會傳回 FALSE

如果可能的話,位址的任何遺漏元件都會預設為合理的值。 例如,遺漏的埠號碼預設為零。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 ws2spi.h

另請參閱

WSPCancelBlockingCall