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 中提供特定的錯誤碼。
錯誤碼 | 意義 |
---|---|
lpfnCallback 或 lpdwContext 參數不是進程地址空間的有效部分。 | |
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 |